第4章JSP语法进阶20

上传人:仙*** 文档编号:47996100 上传时间:2021-12-28 格式:PPT 页数:39 大小:185.52KB
收藏 版权申诉 举报 下载
第4章JSP语法进阶20_第1页
第1页 / 共39页
第4章JSP语法进阶20_第2页
第2页 / 共39页
第4章JSP语法进阶20_第3页
第3页 / 共39页
资源描述:

《第4章JSP语法进阶20》由会员分享,可在线阅读,更多相关《第4章JSP语法进阶20(39页珍藏版)》请在装配图网上搜索。

1、【案例【案例10】简单访问计数器】简单访问计数器4.4Response对象对象1.含义含义2.特点特点3.常用方法常用方法4. (1)setContentType()5. (2)setHeader()6. (3)setRedirect()7. (4)setStatus() HTTP协议是无状态的,即信息无法协议是无状态的,即信息无法通过通过HTTP协议本身进行传递。为了跟踪协议本身进行传递。为了跟踪用户的操作状态,用户的操作状态,JSP使用使用session对象来对象来实现这一功能。实现这一功能。 即:当客户访问一个服务器时,可能即:当客户访问一个服务器时,可能会在这个服务器的几个页面之间反复

2、连接,会在这个服务器的几个页面之间反复连接,反复刷新一个页面,因此服务器应当通过反复刷新一个页面,因此服务器应当通过某种办法知道这是同一个客户,这就需要某种办法知道这是同一个客户,这就需要session对象。对象。 从一个客户打开浏览器连接到服务器的从一个客户打开浏览器连接到服务器的某个服务目录某个服务目录(这其间,客户访问的是同一这其间,客户访问的是同一web目录中的网页目录中的网页),到客户关闭浏览器,这,到客户关闭浏览器,这一过程称为一个会话。这时,在服务器端,一过程称为一个会话。这时,在服务器端,系统为该客户创建了一个系统为该客户创建了一个session对象。在客对象。在客户端,系统为

3、该客户创建了户端,系统为该客户创建了Cookie对象。一对象。一个客户对同一服务目录中不同网页的访问属个客户对同一服务目录中不同网页的访问属于同一会话。于同一会话。 当一个客户首次访问服务目录中的一个当一个客户首次访问服务目录中的一个JSP页页面时,面时,JSP引擎为该客户创建一个引擎为该客户创建一个session对象。同对象。同一客户访问的服务目录不同,一客户访问的服务目录不同,JSP引擎为该客户创引擎为该客户创建不同的建不同的session对象。从时间上看,若客户离开先对象。从时间上看,若客户离开先前的服务目录,连接到其它服务器或者服务目录,前的服务目录,连接到其它服务器或者服务目录,当再

4、次回到先前服务目录时,当再次回到先前服务目录时,JSP引擎不再给客户引擎不再给客户分配新的分配新的session对象,而是使用先前的对象,而是使用先前的session对象。对象。只有当客户关闭浏览器或这个只有当客户关闭浏览器或这个session对象达到了最对象达到了最大生存时间,该客户的大生存时间,该客户的session 对象才被取消,这对象才被取消,这时服务器与客户的会话关系消失。时服务器与客户的会话关系消失。 当当JSP引擎为客户创建一个引擎为客户创建一个session对象对象后,这个后,这个session对象被分配了一个对象被分配了一个String类类型的型的ID号,号,JSP引擎同时将

5、此引擎同时将此ID号发送到客号发送到客户端,存放在户端,存放在Cookie中这样,代表同一客中这样,代表同一客户会话的户会话的session对象和对象和Cookie对象建立了一对象建立了一一对应关系即,每一客户会话信息保存在一对应关系即,每一客户会话信息保存在session/Cokkie对中对中 当多个客户点击同一页面时,当多个客户点击同一页面时,JSP引擎引擎为每个客户启动一个线程,这就是说,一个为每个客户启动一个线程,这就是说,一个客户对应一个线程,每个线程对应一个客户对应一个线程,每个线程对应一个session对象,每个线程的对象,每个线程的session对象不同。对象不同。 从一个客户

6、会话开始到会话结束这段时从一个客户会话开始到会话结束这段时间称为间称为session对象的生命周期。具体上说,对象的生命周期。具体上说,指客户访问某指客户访问某web目录下的页面到关闭浏览目录下的页面到关闭浏览器,离开该器,离开该web目录,这段时间成为目录,这段时间成为session对象的生命周期。对象的生命周期。 用户登陆网站时,系统将为其生成一用户登陆网站时,系统将为其生成一个独一无二的个独一无二的session对象,用以记录该用对象,用以记录该用户的个人信息,一旦用户退出网站,那么户的个人信息,一旦用户退出网站,那么所对应的所对应的session对象将被注销。对象将被注销。sessio

7、n对对象可以绑定若干个用户信息或者象可以绑定若干个用户信息或者JSP对象,对象,不同不同session对象的同名变量是不会相互干对象的同名变量是不会相互干扰的。扰的。 session对象在服务器上设置了一个对象在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动分钟的过期时间,当客户停止活动后自动失效。失效。session中保存和检索的信息不能是中保存和检索的信息不能是基本数据类型如基本数据类型如int,double等,必须是等,必须是java相应的对象,如相应的对象,如Integer,Double等。等。 session对象源于对象源于javax.servlet.http.HttpS

8、ession,它是一个,它是一个建立在建立在Cookie机制上的友好的界面,机制上的友好的界面,session的信息保存在服务器端,的信息保存在服务器端,session的的id保存在客户机的保存在客户机的Cookie中。事实上,在中。事实上,在许多服务器上,如果浏览器支持的话它们许多服务器上,如果浏览器支持的话它们就使用就使用Cookie,session自动为每个流程提自动为每个流程提供方便的存储信息的方法。供方便的存储信息的方法。session对象的常用方法对象的常用方法 session对象表示目前用户的会话状态,对象表示目前用户的会话状态,用来识别每个用户,与之相关的常用方法用来识别每个用

9、户,与之相关的常用方法如下。如下。(1 1)Object getAttribute(String name)Object getAttribute(String name) 获取与指定名字相关联的获取与指定名字相关联的session属性属性值。值。(2 2)Enumeration getAttributeNames(Enumeration getAttributeNames( ) ) 取得取得session内所有属性的集合。内所有属性的集合。(3 3)long getCreationTime(long getCreationTime( ) ) 获取获取session的创建时间,最小单位为的创建

10、时间,最小单位为千分之一秒。千分之一秒。(4 4)String getId(String getId( ) ) 获取获取session标识。此方法返回惟一的标识。此方法返回惟一的标识,这些标识为每个标识,这些标识为每个session而产生。当而产生。当只有一个单一的值与一个只有一个单一的值与一个session联合时,联合时,或当日志信息与先前的或当日志信息与先前的sessions有关时,它有关时,它被当做键名用。被当做键名用。(5 5)long getLastAccessedTime(long getLastAccessedTime( ) ) 获取与当前获取与当前session相关的客户端最后

11、相关的客户端最后一次访问的时间,由一次访问的时间,由1970-01-01算起,单算起,单位为毫秒。位为毫秒。(6 6)int getMaxInactiveInterval(int int getMaxInactiveInterval(int interval) interval) 获取总时间,以秒为单位,表示获取总时间,以秒为单位,表示session的有效时间。的有效时间。1为永不过期。为永不过期。(7 7)ServletContext ServletContext getServletContext(getServletContext( ) ) 获取一个该获取一个该JSP页面对应的页面对应的

12、ServletContext对象实例。对象实例。(8 8)void invalidate(void invalidate( ) ) 销毁销毁session对象。对象。(9 9)boolean isNew(boolean isNew( ) ) 判断一个判断一个session是否由服务器产生,是否由服务器产生,但是客户端并没有使用。但是客户端并没有使用。(1010)void setAttribute(String name, void setAttribute(String name, String value) String value) 设置指定名称的设置指定名称的session属性值,会替属

13、性值,会替换掉任何以前同一用户的同名值。换掉任何以前同一用户的同名值。(1111)void setMaxInactiveInterval(int void setMaxInactiveInterval(int interval) interval) 设置设置session的有效期。的有效期。(1212)void removeAttribute(String void removeAttribute(String name)name) 移除指定名称的移除指定名称的session属性。属性。P149 setAttr.jsp getAttr.jsp问题问题1:将购买者的姓名、商品名保存在将购买者的姓

14、名、商品名保存在session对象中,实现同一对象中,实现同一web目录下的页面目录下的页面对对session对象中的信息共享。对象中的信息共享。分析如下:sessionex.jsp: 创建一个包含文本控件的表单,用此文本控件录入姓名second.jsp: 1获取客户端输入的姓名(xm) 2将属性名-值对,即(name,xm)添加到session对象中 3创建一个包含文本控件的表单,用此文本控件录入商品名account.jsp:.定义一个对字符串s进行编码的方法: public String getString(String s) .获取客户端录入的商品名(sp) .将属性名-值对,即(goo

15、ds,sp)添加到session对象中 .从session对象中获取姓名和商品名 .将姓名和商品名输出到客户端启动启动IE窗口运行如下窗口运行如下JSP,如果连续刷新,如果连续刷新5次,输次,输出结果是什么?出结果是什么?重新启动一个新的重新启动一个新的IE窗口运行该窗口运行该JSP,如果连续,如果连续刷新刷新3次,输出结果是什么?次,输出结果是什么? 不同的客户与服务器连接时有不同的不同的客户与服务器连接时有不同的session对象,同一客户浏览同一服务器的对象,同一客户浏览同一服务器的不同目录时,有不同的不同目录时,有不同的session对象。对象。 与与session对象不同的是对象不同

16、的是application对象。服对象。服务器启动后,就产生了务器启动后,就产生了application对象。对象。所有客户的所有客户的application对象是相同的一个,对象是相同的一个,即,所有客户共享这个内置的即,所有客户共享这个内置的application对象。对象。 application对象随着服务器启动而创对象随着服务器启动而创建,随着服务器关闭而消失。建,随着服务器关闭而消失。application对象的生命周期指从对象的生命周期指从application对象创建对象创建到服务器关闭这段时间。到服务器关闭这段时间。 当多个客户点击同一页面时,当多个客户点击同一页面时,JSP

17、引引擎为每个客户启动一个线程,这些线程共擎为每个客户启动一个线程,这些线程共享同一个享同一个application对象由于所有客户对象由于所有客户共享同一个共享同一个application 对象,任何客户对对象,任何客户对application对象中数据的改变都会影响到对象中数据的改变都会影响到其它的客户,因此,对该对象的操作需要其它的客户,因此,对该对象的操作需要实现同步处理。实现同步处理。下面列出了下面列出了application对象常用的方法。对象常用的方法。(1 1)Object getAttribute(String name) 获取由获取由name指定的指定的application

18、属性。属性。(2 2)Enumeration getAttributes(Enumeration getAttributes( ) ) 获取所有的获取所有的application属性。属性。(3 3)void removeAttribute(String name)void removeAttribute(String name) 移除指定名称的移除指定名称的application属性。属性。(4 4)void setAttribute(String name, void setAttribute(String name, Object value)Object value) 设置指定的设置指

19、定的application属性的值,属属性的值,属性值必须是对象而不能是简单数据类型性值必须是对象而不能是简单数据类型(如(如int)。)。(5 5)ServletContext getContext(String ServletContext getContext(String uripath) uripath) 获取当前应用的获取当前应用的ServletContext对象。对象。(6 6)String getInitParameter(String String getInitParameter(String name)name) 获取由获取由name指定的指定的application属性

20、的属性的初始值。初始值。(7 7)Enumeration getInitParameters(Enumeration getInitParameters( ) ) 获取所有的获取所有的application属性的初始值属性的初始值的集合。的集合。(8 8)RequestDispatcher RequestDispatcher getNamedDispatcher(String name)getNamedDispatcher(String name) 为指定名字的为指定名字的Servlet对象返回一个对象返回一个RequestDispatcher对象的实例。对象的实例。(9 9)RequestD

21、ispatcher RequestDispatcher getRequestDispatcher(String path)getRequestDispatcher(String path) 获取一个获取一个RequestDispatcher对象的实对象的实例。例。(1010)String getServerInfo(String getServerInfo( ) ) 获取应用服务器版本信息。获取应用服务器版本信息。(1111)String getServletContextName(String getServletContextName( ) ) 获取当前获取当前web应用的名称。应用的名称

22、。P151 application.jsp问题:问题: 输出本页面所在的实际路径、使用输出本页面所在的实际路径、使用 的的JSP引擎、引擎、application对象对应对象对应 的字符串。的字符串。编写简易聊天室,实现编写简易聊天室,实现“发言发言”和和“清空清空”两个功能。不要求自动刷新。两个功能。不要求自动刷新。问题:问题:要求使用三个页面来实现留言的功能。要求使用三个页面来实现留言的功能。 一个页面提供留言输入窗口;一个页一个页面提供留言输入窗口;一个页 面获取当前留言,并将留言添加到向面获取当前留言,并将留言添加到向 量中;一个页面将向量中的所有客户量中;一个页面将向量中的所有客户

23、留言输出到客户端。留言输出到客户端。application对象与对象与session对象的异同对象的异同 application对象与对象与session对象都可以对象都可以实现实现Web应用中信息的存储,但两者具有应用中信息的存储,但两者具有不同的作用域,不同的作用域,session对象是针对用户的,对象是针对用户的,进入网站时,每一个用户都会分配到一个进入网站时,每一个用户都会分配到一个单独的单独的session对象,即使该用户设置了与对象,即使该用户设置了与其他用户相同名称的其他用户相同名称的session属性,也不会属性,也不会发生冲突。发生冲突。 与与session不同的是,所有用户的不同的是,所有用户的application对象都是同一个,即所有用户对象都是同一个,即所有用户共享这个内置的共享这个内置的application对象,每一个对象,每一个用户都可以从各自浏览的用户都可以从各自浏览的JSP页面访问这页面访问这个对象。个对象。P152 setAttr.jsp getAttrib.jspapplicationapplication对象与对象与sessionsession对象的异对象的异同同-实例实例

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!