JSP 痛定思痛。 2021-09-12 04:28 368阅读 0赞 **JSP ** Java Server Pages JSP程序由JSP Engine(JSP引擎) 先将它转换成Servlet代码,接着将它编译成类文件载入执行。 只有当客户端第一次请求JSP时,才需要将其转换、编译 **Directive 指令 ** Directive是编译期间执行的指令,常见的指令有:page include taglib page:指明与JSP Container(JSP容器)的沟通方式 <%@ **page language**="java" **import**="java.io.\*,java.util.\*" 引入包和类 **errorPage**="errorPageUrl" 如果页面出现错误,跳转到哪个页面 **isErrorPage**="false" 当前页面是否为一个错误页面 **contentType**="text/html; charset=GB2312"字符编码形式 **extends**="index.jsp" 指明这个jsp页面是从哪个jsp继承过来的 **buffer**="8KB" 缓冲区,默认为8K。none代表不缓冲 **session**="true" 是否使用session,默认为true **autoFlush**="true" 页面输出完成后,是否自动刷新到客户端 **info**="InfoText" 指明JSP相关的描述信息 %> include: JSP Engine会在jsp程序的转换期间先把file属性设定的文件包含进来,然后开始执行转换及编译 <%@ **include file**="index.jsp"%>//index.jsp后面不能接参数。因为这是一个编译指令 **Declaration 声明** <% **int** i = 0;//这种声明,i为局部变量 %> <%! **int** j = 0;//这种声明,j为成员变量(全局变量) **public void** getMessage()\{\}//我们可以在此定义成员方法 %> **Action 运行期间的指令** Action是运行期间的指令,常见的指令有:jsp:useBean jsp:include jsp:forward jsp:include 用于动态的JSP程序或HTML文件 除非这个指令被执行到,否则它是不会被Tomcat等JSP Engine编译 <**jsp:include page**="URLSpec"> <**jsp:param name**="ParamName" **value**="ParmValue"/> //用来设定include文件时的参数和值 <**/jsp:include**> jsp:forward 用于将一个jsp页面的内容传送到page所指定的jsp程序或者servlet中处理 <**jsp:forward page**="index.jsp"> <**jsp:param name**="paramName" **value**="paramValue"/> <**/jsp:forward**> <jsp:forward>与response.sendRedirect的区别 <jsp:forward> 1、跳转发生在服务器端,跳转后,客户端的URL地址依然是1.jsp的地址 2、<jsp:forward>在跳转的过程中,使用的是同一个request对象 3、工作流程:客户端发出请求,传递到服务器1.jsp页面,1.jsp页面解析代码到<jsp:forward>语句后跳转到2.jsp页面。服务器将2.jsp页面的内容传递给客户端 response.sendRedirect 1、跳转后,客户端的URL地址发生改变 2、response.sendRedirect在跳转过程中,是不同的request对象 3、工作流程:客户端发出请求后,传递到1.jsp页面。1.jsp向客户端发出响应,通知客户端重新访问2.jsp页面。客户端得到请求后,再向2.jsp发出请求。2.jsp将响应内容传递给客户端 <jsp:useBean> Bean的基本要素: 1、必须要有一个不带参数的构造器(构造函数),在jsp元素创建Bean时会调用空构造器 2、Bean类应该没有任何公共实例变量。也就是说不允许直接访问实例变量,变量名称首字母必须小写 3、通过getter()和setter()方法来读或写变量值,并且将对应的变量首字母改成大写 4、Bean要有包,不能使用裸体类 <**jsp:useBean id**="beanName" **class**="cn.wyd.testBean" **scope**="page" **type**="int"> <**/jsp:useBean**> id:Bean对象的实例名称 class:包名+类名 scope:这个Bean的作用范围,共有page,request,session,application四个值,默认为page,表示这个Bean只在当前页面有效。 type:Bean的实例类型,如果这个选择的是Object,则表示父类引用指向子类对象 <**jsp:setProperty property**="count" **name**="beanName" **value**="50"**/**> 设置Bean的属性,property="Bean中的变量名" 这句话相当于beanName.setCount(50); <**jsp:getProperty property**="count" **name**="beanName" **/**> 得到Bean的属性,相当于beanName.getCount(); **JSP内置对象** 内置对象是在JSP里直接可以使用的对象,包括: out request response pageContext session application config exception page JSP内置对象out out内置对象是一个缓冲的输出流,用来给客户端返回信息。 它是javax.servlet.jsp.JspWriter类的一个实例 常用方法: println():向客户端输出各种类型的数据 write(): newline():输出一个换行符 close():关闭输出流 flush():输出缓冲区里的数据 clearBuffer():清除缓冲区里的数据,同时把数据输出到客户端 clear():清除缓冲区里的数据 getBufferSize():返回缓冲区的大小 JSP内置对象request request内置对象表示的是调用JSP页面的请求。 它是javax.servlet.http.HttpServletRequest接口的一个实例 可以用此对象取得请求的Header信息,请求方式(get/post),请求的参数名称、参数值、客户端主机名等 常用方法: getParameter(String paramName) 获得form提交过来的参数值,此参数值由paramName指定 getMethod():返回客户端向服务器传送数据的方法 getParameterNames():获得客户端传送给服务器的所有参数名,返回枚举类型(Enumeration) getParameterValues(String name):获得指定参数的所有值,由name指定 getRequestURI():获得发出请求字符串的客户端地址 getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的机器名称 getServerName():获取服务器的名字 getServerPort():获取服务器端的端口 JSP内置对象response 表示的是返回给客户端的响应 它是javax.servlet.http.HttoServletResponse接口的一个实例 经常用于设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL 常用方法: sendRedirect(String url):重定向JSP文件 setContentType(String contentType):设置MIME类型和编码方式 addCookie(Cookie cookie):添加一个cookie对象,用于在客户端保存特定的信息 addHeader(String name,String value):添加HTTP头信息,该Header信息将发送到客户端 containsHeader(String name):判断指定名字的HTTP头文件是否存在 sendError(int):向客户端发送错误的信息 JSP内置对象session 常用方法: setAttribute(String name ,Object value) getAttribute(String name) isNew() getSessionId() **Servlet和JSP的通信** 从JSP调用Servlet可用<jsp:forward>或者sendRedirect,请求信息自动跳转到servlet 从servlet调用JSP使用ResquestDispatcher接口的forward(request,response)方法或者使用sendRedirect跳转到JSP页面
相关 JSP基础:jsp注释 > HTML注释:<!-- -->是相对浏览器的,浏览器会忽略注释的部分不显示在页面上。 > Java注释: // ,/\ \/ 是相对于编译器的,编译器会忽略注释的代码,生 拼搏现实的明天。/ 2023年10月08日 23:37/ 0 赞/ 9 阅读
相关 JSP 我们都知道静态页面html,但是在我们淘宝购物的时候,每个用户的购物车界面是不一样的,那么这个购物车的界面又是如何生成的呢?是通过动态JSP生成的。 > JSP:Java S 蔚落/ 2022年06月05日 07:28/ 0 赞/ 144 阅读
相关 jsp 目录 出错页面 包含其他页面的两种方法 两种方法的比较: 网页跳转的两种方法 跳转携带参数 jsp内置对象 四个作用域对象 ------------ ╰半夏微凉°/ 2022年03月29日 02:44/ 0 赞/ 169 阅读
相关 JSP 1. 概念:Java Server Pages Java服务器端页面 一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。 你的名字/ 2022年03月01日 19:08/ 0 赞/ 177 阅读
相关 jsp ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 男娘i/ 2022年02月12日 19:09/ 0 赞/ 171 阅读
相关 jsp 动态页面技术 一、JSP 1. 简介 JSP:Java Server Page,Java服务器端页面技术,是Sun公司提供的一套规范。表面上是HTML+ 心已赠人/ 2022年02月05日 12:36/ 0 赞/ 196 阅读
相关 JSP 1.JSP有哪些内置对象?作用分别是什么? 答案: 1. JSP有9个内置对象: (1)request:封装客户端的请求,其中包含来自GET或POST请求的参数; 川长思鸟来/ 2022年01月10日 06:17/ 0 赞/ 237 阅读
相关 JSP 一、JSP简介 1. 什么是 JSP JSP全名为 Java Server Pages,中文名叫 java服务器页面。 它是在传统的网页HTML文件(.htm,. た 入场券/ 2022年01月07日 15:23/ 0 赞/ 231 阅读
相关 JSP jsp简介 JSP(Java Server Pages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据。 jsp: 作为请求发起页 喜欢ヅ旅行/ 2021年11月02日 14:46/ 0 赞/ 289 阅读
还没有评论,来说两句吧...