收藏 分享(赏)

第4章 JSP内置对象.ppt

上传人:gnk289057 文档编号:10171544 上传时间:2019-10-16 格式:PPT 页数:97 大小:1.72MB
下载 相关 举报
第4章 JSP内置对象.ppt_第1页
第1页 / 共97页
第4章 JSP内置对象.ppt_第2页
第2页 / 共97页
第4章 JSP内置对象.ppt_第3页
第3页 / 共97页
第4章 JSP内置对象.ppt_第4页
第4页 / 共97页
第4章 JSP内置对象.ppt_第5页
第5页 / 共97页
点击查看更多>>
资源描述

1、第4章 JSP内置对象,引言-HTTP通讯协议的特性,不会持续保持联机:每一次请求和响应都需事先建立联机,当浏览程序提出请求时才会建立联机,在请求后就断线等待响应。 不会保留状态:因为HTTP通讯协议并不会保持联机,所以在联机时,服务端和客户端互相知道对方,一旦请求结束,就互不相干,使用者状态并不会保留。 与数据类型无关:任何种类的数据都可以通过此协议传送到客户端,这就是Content-Type信息指定的MIME数据类型。,引言-状态管理,状态管理是指在JSP程序间传递数据,以便不同的JSP程序能够保留使用者状态。 以状态信息储存的位置,可以区分成两大类:客户端的状态管理 服务端的状态管理 c

2、ookies application表单参数 sessionURL参数 数据库XML文件文本文件,引言-使用URL传递参数,在浏览器地址栏输入的URL网址,或是JSP程序将HTTP请求转发到其它JSP程序时,都可以使用URL参数来传递数据。 方式一:超链接 登录 方式二:请求转发 ,引言-HTML表单的用途,JSP程序是在服务端执行,客户端的HTML窗体只是负责取得使用者输入的数据,然后将输入数据送到服务端进行处理。,客户端,页面表单,Web服务器,JSP程序,填写页面表单,表单数据发送给服务器,处理表单内容,HTTP信息格式,HTTP信息格式,Request信息范例 Response信息范例

3、,POST /index.html HTTP/1.0,HOST:www.nsi- User-Agent:Mozilla/4.5 Accept:image/gif,*/* Accept-language:en Accept-charset:Gbk,*,utf-8,Name=try&value=123,PHTTP/1.0 200 OK,Last-Modified Fri,10 Oct 2008 08:21:28 GMT Date:Fri,10 Oct 2008 08:30:21 GMT Status:200 Content-Type:text/html Content-Length:90, ,引言

4、-表单的属性, name:窗体名称。 method:设置数据送出方式,主要是针对服务端处理,GET方法就是URL网址的参数传递,POST方法是使用HTTP通讯协议的标头来传递字段数据; action:设置JSP窗体处理程序所在的路径,也可以是URL网址; enctype:设置窗体数据传送时的编码方式,预设使用application/x-www-form-urlencoded,除非使用在上传文件,否则并不用设置此属性。,引言-表单的属性,GET与POST的比较,引言-表单输入的验证,客户端表单字段验证: 在尚未送到服务端前,在客户端的浏览程序中进行检查,主要是使用JavaScript或VBScr

5、ipt等脚本语言进行窗体字段检查。 服务端表单字段验证: 相对于客户端的字段验证,服务端的窗体字段验证是在数据送到服务端后,才进行数据检查,也就是使用JSP程序代码进行字段检查。,本章主要内容,JSP内置对象概述request对象response对象session对象application对象out对象其他内置对象,4.1 ASP内置对象概述,JSP内置对象概述,为了Web应用程序开发的方便,在JSP页面中内置了一些默认的对象,这些对象不需要预先声明和实例化就可以在脚本代码和表达式中随意使用。 所有的内置对象只有对脚本程序或者表达式有用,在JSP声明中不可用。在JSP技术内部已经定义了很多对象

6、,可以利用这些内置对象完成很多重要的功能。 不同的资料中还称之为内建对象或隐含对象。,JSP内置对象概述,JSP内置对象概述,从本质上讲,JSP的这些内置对象其实都是由特定的Java类所产生的,在服务器运行时根据情况自动生成。,JSP内置对象概述,客户端的浏览器从Web服务器上获得网页,实际上是使用HTTP协议向服务器端发送了一个请求,服务器在收到来自客户端浏览器发来的请求后要响应请求。JSP通过request获取客户浏览器的请求,通过response对客户浏览器进行响应。而session则一直保存着会话期间所需要传递的数据信息。,4.2 request对象,request对象,request

7、对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或URL参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。 request对象的主要用途如下: 1 访问请求对象 2 在作用域中管理属性 3 获取cookie 4 获取客户信息 5 访问安全信息 6 访问国际化信息,request对象-1访问请求对象,getParameter(String name) 获得客户端传送给服务器端的参数值,参数由name指定,一般是表单控件的名称。 在Web应用程序中,经常还需要完成用户与网站的交互。例如,当用户填写表单后,需要把数据提交给服务器处

8、理,服务器获取到这些信息并进行处理。getParameter()方法可以用来获取用户提交的数据。 String userName = request.getParameter(“name“);,request对象-1访问请求对象,例4-1 访问请求参数示例 index.jsp用户登录 用户名: 密%,request对象-2在作用域中管理属性, setAttribute(String name,Object obj) 设置名字为name的request参数的值,该值是由obj指定的。 getAttribute(String name) 返回以name为命名的属性值,如果属性值不存在返回值为nul

9、l 。 有时,在进行请求转发时,需要把一些数据带到转发后的页面进行处理。这时,就可以使用request对象的setAttribute()/getAttribute()方法设置/获取在request范围内的数据。 request.setAttribute(“key“, Object); request.getAttribute(“key“);,request对象-2在作用域中管理属性,例4-2 在作用域中管理属性示例 使用request对象的setAttribute()方法设置数据,然后在请求转发后取得设置的数据。 index.jsp处理结果 error.jsp 处理结果 ,request对象-

10、3获取cookie,cookie可以为Web应用程序保存用户相关信息,它是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。 用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。例如,当用户访问站点时,可以利用Cookie保存用户首选项或其他信息,这样当用户下次再访问站点时,应用程序就可以检索以前保存的信息。 可以通过request对象中的getCookies()方法获取Cookie中的数据。 Cookie cookie = request.getCookies();,request对象-3获取cookie,例4-3 获取Cookie示例 使用request对

11、象的addCookie()方法实现记录本次及上一次访问网页的时间。“); if(cookie_response!=null) /*输出上一次访问的时间。并设置cookie_response对象为最新时间。*/ out.println(“上一次访问时间:“+cookie_response.getValue(); cookie_response.setValue(new java.util.Date().toString(); /*如果Cookies集为空,创建cookie,并加入到response中*/ if(cookies=null) cookie_response=new Cookie(“A

12、ccessTime“,“); cookie_response.setValue(new java.util.Date().toString(); response.addCookie(cookie_response); %,request对象-4获取客户信息,用来获取客户信息的方法,request对象-4获取客户信息,例4-4 获取客户信息示例 获取客户信息客户提交信息的方式: 使用的协议: 获取发出请求字符串的客户端地址: 获取提交数据的客户端IP地址: 获取服务器端口号: 获取服务器的名称: 获取客户端的机器名称: 获取客户端所请求的脚本文件的文件路径: 获得Http协议定义的文件头信息H

13、ost的值: 获得Http协议定义的文件头信息User-Agent的值: ,request对象-5访问安全信息,request对象提供了对安全属性的访问。,例如,可以通过使用request对象来确定当前请求是否使用了一个类似HTTP的安全协议: 用户安全信息:,request对象-6访问国际化信息,浏览器可以通过HTTP报头向Web服务器指明它所使用的本地语言。request对象中的getLocale()和getLocales()方法可以获取这一信息,获取的信息属于java.util.Local类型(该类型的对象封装了一个国家和一种国家所使用的语言)。,这段代码,如果所在区域为中国,将显示“北

14、京欢迎您”,而所在区域为美国,则显示“Welcome to BeiJing”。,request对象-附加案例,例A4-1 空对象处理 使用request对象获取信息要格外小心,要避免使用空对象,否则会出现NullPointerException异常。 例A4-2 处理汉字信息 当request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。 例A4-3 表单数据的获取和判断 equals与 =。 例A4-4 使用getParameterValues方法。 该方

15、法以字符串数组的形式返回指定参数所有值。,4.3 Response对象,response对象,response对象和request对象相对应,用于响应客户请求,向客户端输出信息。response对象是javax.servlet.http.HttpServletResponse接口类的对象,它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。 response对象的主要用途如下: 1 重定向网页 2 设置HTTP响应报头 3 设置缓冲区,response对象-1重定向网页, sendRedirect(String location) 使用指定的重定向位置URL向客户发送重定向响应,可以使

16、用相对URL 。 sendError(int sc, String msg) 使用指定的状态码和描述性消息向客户发送错误响应。 sendError(int sc) 使用指定的状态码向客户发送错误响应。response.sendRedirect(“login_ok.jsp“); response.sendError(500,“服务器内部错误“) response.sendError(404) sendRedirect()和sendError()都会中止当前的请求和响应。如果HTTP响应已经提交给客户,则不会调用这些方法。,response对象-1重定向网页,HTTP Status Code 1X

17、X Informational 2XX OK,Server能了解并允许Client的请求。 3XX 转向。 4XX Client方面发生的错误。 5XX Server方面发生的错误。 举例: 404 Not Found 不存在,用于表示请求的页面不存在 500 Internal Server Error 服务器内部错误,response对象-1重定向网页,例4-5 重定向网页示例使用request对象的相关方法重定向网页 处理结果 ,response对象-2设置HTTP响应报头,通过设置响应报头的方式,可以控制返回给客户端的文件形式。 默认的响应报头为text/plain(即普通的文本)。如果

18、希望当前网页返回给客户端以word文档或Excel文档的形式就可以使用下面的语句。 response.setHeader(“Content-Type“, “application/msword“); response.setHeader(“Content-Type“, “application/x-msexcel“);,response对象-2设置HTTP响应报头,response对象提供了设置HTTP响应报头的方法。,response对象-2设置HTTP响应报头,技巧:通过设置HTTP头可实现禁用缓存功能 response.setHeader(“Cache-Control“,“no-stor

19、e“); response.setDateHeader(“Expires“,0); 注意:上面的代码必须在没有任何输出发送到客户端之前使用。 例4-6 设置HTTP响应报头示例 将JSP页面保存为word文档。 平平淡淡才是真! 快快乐乐才是福! ,response对象-3缓冲区设置,缓冲可以有效地管理在服务器与客户机之间传输的内容。设置缓冲区容量必须在向响应中写入内容之前完成。较大的缓冲区允许用户在向客户端发送任何内容之前写入更多信息,从而减少网络写入的次数,较小的缓冲区降低服务器的内存负载。,response对象-3缓冲区设置,例4-7 缓冲区配置示例 输出缓冲区的大小并测试强制将缓冲区的

20、内容发送给客户。“); out.print(“缓冲区内容强制提交前“); out.print(“输出内容是否提交:“+response.isCommitted()+“); response.flushBuffer(); out.print(“缓冲区内容强制提交后“); out.print(“输出内容是否提交:“+response.isCommitted()+“); % ,response对象-3缓冲区设置,例A4-6 使用cookie实现网站用户免登录功能,可以使用addCookie()方法将封装好的Cookie对象传送到客户端,再使用request对象的getCookies()方法读取保存到

21、客户端的Cookie。,4.4 Session对象,session对象,为了弥补HTTP协议的“无状态”的这一缺点,JSP提供了一个session对象,这样服务器和客户端之间的连接就会一直保持下去,在一定时间内(系统默认在30分钟内),如果客户端不向服务器发出应答请求,session对象就会自动消失。 在编写程序时,可以修改这个时间限定值,使session对象在特定时间内保存信息。,session对象,从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 可以利用此特性来保存每个用户信息,当一个客户登录一个网站时,系统将为用户生成一个独一无二的会话对象,

22、用以记录该用户的个人信息,一旦该用户退出网站,该会话对象将会被注销。,session对象,一个问题:能否用cookie替代? 由于Cookie数据保存在客户端,这样对于一些敏感数据会带来一些风险。而且Cookie一般只能保存字符串等简单数据。并且大小限制在4KB。如果要保存比较复杂的数据,Cookie可能显得有些不合适。 基于这些原因,在服务端采用一种类似Cookie的机制来存储数据,就是session。所不同的是它是建立在服务端的对象。每一个Session对象代表一个会话。,session对象-1运行机制,客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象的同时分配

23、一个String类型的Id号; jsp引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系; 客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象; 直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失; 当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。,session对象-1运行机制,session对象-2生命周期,当客户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session; 接下来当客户浏览这个Web应

24、用的不同网页时,始终处于同一个Session中; 在以下情况中,Session将结束生命周期,Servlet容器会将Session所占用的资源释放掉: 客户端关闭浏览器; Session过期; 服务器端调用了HttpSession的invalidate()方法。,session对象-3创建及获取客户的会话, setAttribute(String name,Object obj) 设置指定名字name的属性值obj,并将之存储在session对象中。 getAttribute(String) 获取与指定名字name所代表的属性。session.setAttribute(“userName“,

25、“李明“); session.getAttribute(“userName“);,session对象-3创建及获取客户的会话,例4-8 创建及获取客户会话示例 通过setAttribute()方法将数据保存在session中,并通过getAttribute()方法取得数据的值。 index.jsp Forward.jsp,session对象-4从会话中移除指定的对象,JSP页面可以将任何已经保存的对象进行移除。session内置对象使用removeAttribute()方法将所指定名称的对象移除,也就是说,从这个会话删除与指定名称绑定的对象。 session.removeAttribute (

26、String name); 参数name为session对象的属性名,代表要移除的对象名。,session对象-4从会话中移除指定的对象,例4-9 从会话中移除指定对象示例 通过setAttribute()方法将数据保存在session中,然后通过removeAttribute()方法移除指定对象。 index.jsp Forward.jsp,session对象-5销毁session,JSP页面可以将已经保存的所有对象全部删除。session内置对象使用invalidate()方法将会话中的全部内容删除。session.invalidate();,session对象-6会话超时的管理,在一个S

27、ervlet程序或JSP文件中,确保客户会话终止的唯一方法使用超时设置。这是因为Web客户在进入非活动状态时不会通知服务器。 为了清除存储在session对象中的客户申请资源,Servlet程序容器设置一个超时窗口。当非活动的时间超出了窗口的大小时,JSP容器将使session对象无效并撤销所有属性的绑定,从而管理会话的生命周期。,session对象-6会话超时的管理,session对象用于管理会话生命周期的方法,session对象-7补充说明,1.session中保存的信息不能是基本的数据类型,而必须是java的Object对象类型,所以声明变量为int类型时,必须将该int类型的变量转换为

28、Integer类型的对象。 2.只要在同一个会话期间(浏览器未与服务器断开过,在同一个浏览器窗口内访问各个页面未超出指定的时间段),可以利用session实现将数据从一个页面传递到另一个页面。 3.JSP中的session对象对于那些通过多个页面完成一个事务的应用非常有用。,session对象-7补充说明,4.如果客户浏览器禁止Cookie,Servlet容器无法从客户端浏览器中取得作为Cookie的Session ID,也就无法跟踪客户状态,因此每次客户请求支持Session的JSP页面,Servlet容器都会创建一个新的Session,这样就失去了跟踪客户状态的功能。,4.5 applic

29、ation对象,application对象,application对象用于保存所有应用程序中的公有数据,服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。 application对象 application对象与session对象有所区别:session对象和用户会话相关,不同用户的session是完全不同的对象;application对象都是相同的一个对象,即共享这个内置的application对象。,application对象-访问应用程序初始化参数,application对象提供了对应

30、用程序环境属性的访问。例如,通过初始化信息为数据库提供了一个主机名,每一个Servlet程序客户和JSP页面都可以使用它连接到该数据库并检索应用程序数据。为了实现这个目的,Tomcat使用了web.xml文件,它位于应用程序环境目录下的WEB-INF子目录中。,访问应用程序初始化参数的方法,application对象-访问应用程序初始化参数,例4-10 访问应用程序初始化参数示例 通过application对象调用web.xml文件的初始化参数。 index.jsp “); % web.xml database_host1 192.168.1.17 database_host2 192.168

31、.1.66 ,application对象-管理应用程序环境属性,在session中设置的属性只是在当前客户的会话范围内容有效,而在application对象中设置的属性在整个应用程序范围内是有效的,只要不关闭应用服务器,在其中设置的属性仍然是有效的。,application对象管理应用程序环境属性的方法,application对象-管理应用程序环境属性,例4-11 管理应用程序环境属性示例 通过application对象中的setAttribute()和getAttribute()方法实现网页计数器。 index.jsp ,4.6 out对象,out对象,out对象主要用来向客户端输出各种数据

32、类型的内容,并且管理应用服务器上的输出缓冲区(默认值8KB)。 在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。,out对象-管理响应缓冲,out对象用于管理响应缓冲区的方法,out对象-向客户端输出数据,out对象的一个很重要的功能就是向客户端写入内容。由于JspWriter是由java.io.Writer派生而来,因此它的使用与java.io.Writer很相似。 例A4-13 使用out对象的各种方法out对象提供的各类print()和println()方法可以将内容写入响应缓冲区,并在用户访

33、问的页面上显示。,4.7 pageContext对象,pageContext对象,pageContext对象相当于页面中所有其他对象功能的集成,它可以访问除本身外的8个JSP内置对象。该对象主要用于管理对属于JSP中特殊可见部分中已经命名对象的访问,它的创建和初始化都是由容器来完成的。 JSP页面里可以直接使用pageContext对象的句柄,pageContext对象的getXxx()、setXxx()和findXxx()方法可以用来根据不同的对象范围实现对这些对象的管理。,pageContext对象,pageContext对象的常用方法,pageContext对象,pageContext对

34、象相当于页面中所有其他对象功能的集成,它可以访问除本身外的8个JSP内置对象。该对象主要用于管理对属于JSP中特殊可见部分中已经命名对象的访问,它的创建和初始化都是由容器来完成的。 JSP页面里可以直接使用pageContext对象的句柄,pageContext对象的getXxx()、setXxx()和findXxx()方法可以用来根据不同的对象范围实现对这些对象的管理。,4.7 cofig、page和exception对象,config对象,config对象表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet。可以在web.xml文件中为应

35、用程序环境中的Servlet程序和JSP页面提供初始化参数。 只有在JSP页面范围之内才合法。,config对象的常用方法,page对象,page对象是为了执行当前页面应答请求而设置的Servlet类的实体,即显示JSP页面自身,只有在JSP页面内才是合法的。page对象本质上包含当前Servlet接口引用的变量,可以看作是this变量的别名。,page对象比较常用的方法,exception对象,exception内置对象用来处理JSP文件执行时发生的所有错误和异常。 如果在JSP页面中出现没有捕捉到的异常,就会生成exception对象,并把这个exception对象传送到在page指令中设

36、定的错误页面中,然后在错误提示页面中处理相应的exception对象。 exception对象只有在错误页面(在页面指令里有isErrorPage=true的页面)才可以使用。,exception对象,exception对象比较常用的方法,exception对象,例4-12 获取异常信息的exception对象示例 通过exception异常对象将系统出现的异常转向到其他页面。 index.jsp error.jsp 错误提示为:,附1 :关于Cookie,Cookie的分类及保存 cookie是通过将数据保存在客户端的硬盘(永久cookie)或内存(临时Cookie)中来实现数据共享的一种机

37、制。,附1 :关于Cookie,超时时间 每一个Cookie有一个超时时间,如果超过了这个时间,Cookie将自动失效。,Cookie cookie = new Cookie(“key“,“value“); cookie.setMaxAge(3600); / Cookie的超时间为3600秒 response.addCookie(cookie);,附1 :关于Cookie,设置临时cookie 如果不使用setMaxAge方法,Cookie的超时时间为-1,在这种情况下,Cookie就是临时Cookie,也就是说这种Cookie实际上并不保存在客户端硬盘上,而是保存在客户端内存中。 实际上使用

38、setMaxAge将超时时间设为任意的负数都会被客户端浏览器认为是临时Cookie,如下面的代码将在客户端内存中保存一个临时Cookie:,Cookie cookie = new Cookie(“key“,“value“); cookie.setMaxAge(-100); / 将cookie设为临时Cookie response.addCookie(cookie);,附1 :关于Cookie,如何传输 如果第一次将Cookie写入客户端(硬盘或内存),在同一台机器上第二次访问该网站的jsp页面时,会自动将客户端的cookie作为HTTP请求头的Cookie字段值传给服务端,如果有多个Cooki

39、e,中间用“;”隔开。 如下面的HTTP请求头所示: GET /test/First.jsp HTTP/1.1 HOST:localhost . Cookie:key1=value1;key2=value2 .,附1 :关于Cookie,生存周期 永久Cookie在任意新开启的IE窗口都可以生成Cookie。 临时Cookie由于只保存在当前IE窗口,因此,在新开启的IE窗口,是不能生成Cookie字段的,也就是说,新窗口和旧窗口是不能共享临时Cookie的。使用重定向机制弹出的新窗口也无法和旧窗口共享临时Cookie。但在同一窗口可以。,返回request,附2:关于重定向(跳转)功能的实现

40、方式的总结,方式一 在html的head标签中使用下面的代码:效果:在300秒之后正在浏览的页面将会自动变为target.jsp。 可以通过response.setHeader()来实现某页面停留若干秒后,自动重定向到另一页面。,String content=stayTime+“;URL=“+URL; response.setHeader(“REFRESH“,content);,附2:关于重定向(跳转)功能的实现方式的总结,方式二 RequestDispatcher.forward() Servlet引擎传递HTTP请求从当前的Servlet/JSP到另外一个Servlet/JSP/HTML文

41、件。例如表单提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时表单提交的所有信息在 b.jsp都可以获得,参数自动传递。重定向后浏览器地址栏URL不变。 例:在servlet中进行重定向 。,response.setContentType(“text/html; charset=gb2312“); ServletContext sc = getServletContext(); RequestDispatcher rd = null; rd = sc.getRequestDispatcher(“/index.jsp“); /定向的页面 rd.forward(requ

42、est, response);,附2:关于重定向(跳转)功能的实现方式的总结,方式三 response.sendRedirect()sendRedirect()可以带参数传递,同时它可以重定向至不同的主机上。重定向后在浏览器地址栏上会出现重定向页面的URL。 注意:(1)使用response.sendRedirect时,前面不能有HTML输出(2)response.sendRedirect之后,应该紧跟一句return;,response.setContentType(“text/html; charset=gb2312“); response.sendRedirect(“/index.jsp

43、“);,附2:关于重定向(跳转)功能的实现方式的总结,方式四 它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。它不能改变浏览器地址,刷新的话会导致重复提交。,附2:关于重定向(跳转)功能的实现方式的总结,方式五 修改HTTP header的Location属性来重定向,相当于直接修改浏览器的地址栏信息。,% response.setStatus(HttpServletResponse.SC_MOVED

44、_PERMANENTLY); String newLocn = “/newpath/page2.jsp“; response.setHeader(“Location“,newLocn); %,内置对象总结,request 代表请求对象,用来接收客户端通过http协议连接传输到服务器端的数据。 response 代表响应对象,用来向客户端发送数据。 out 主要用于向客户端发送数据。其中JspWriter是out 的基类。,内置对象总结,session 主要用于来分别保存每个用户的个人信息,与请求关联的对话。会话状态的维持是每个web应用开发者都必须面对的问题。 application 主要用于

45、保存用户信息,代码片断的运行环境。它是一个共享的内置对象。即一个容器中多个用户共享一个application对象,故其保存的信息被所有的用户所共享。 pageContext 管理网页的属性,为jsp页面包装页面的上下文,管理对属于jsp中特殊可见部分中已经命名对象的访问。它的创建和初始化的工作都是由容器来自动完成的。,内置对象总结,config 代码片断配置对象,表示对servlet的配置。 page(相当于this) 处理jsp网页,是object类的一个实例。即它也是jsp的本身,只有在jsp的页面范围之内它才是合法的。 exception 处理jsp页面执行时,发生的错误和异常。,思考与

46、练习,4-1 JSP提供的内置对象有哪些?作用分别是什么? 4-2 当表单提交信息中包括汉字时,在获取时应该做怎样的处理? 4-3 如何实现禁用缓存功能? 4-4 如何重定向网页? 4-5 如果用户长时间不操作session对象,用户的session对象会消失吗? 4-6 用户关闭浏览器后,用户的session会立即消失吗? 4-7 如何延长session的过期时间? 4-8 session对象与application对象的区别有哪些?,思考与练习,A4-1 页面page1.jsp要把请求转发给page2.jsp,在转发的时候,希望把用户名 “李明“传给page2.jsp,如何实现? (A)

47、request.setParameter(“李明“); (B) request.setAttribute(“username“, “李明“); (C) page2.jsp?username=李明,思考与练习,A4-2 request的getAttribute()和getParameter ()方法有什么异同? 1.前者返回Object类型的对象,后者返回String类型的对象 2. getAttribute()和setAttribute()对应,getParameter()和setParameter()对应 3.当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法

48、来获得请求参数 4.两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。 5. getParameter()方法传递的数据,会从客户端传到服务器端,代表HTTP请求数据。 6. setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。,思考与练习,A4-3 确立下面的内置对象和方法之间的对应关系 (A) out (1) getParameter (B) request (2) println (C) response (3) setAttribute(D) session (4) sendRedirect(E) exception (5) getMessage A4-4 确立下面内置对象和作用之间的对应关系 (A) out (1) 会话对象 (B) request (2) 应用程序对象 (C) response (3) 输出对象(D) session (4) 请求对象(E) application (5) 响应对象,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报