第4章JSP语法进阶20.ppt

上传人:sccc 文档编号:6110422 上传时间:2023-09-25 格式:PPT 页数:39 大小:185.55KB
返回 下载 相关 举报
第4章JSP语法进阶20.ppt_第1页
第1页 / 共39页
第4章JSP语法进阶20.ppt_第2页
第2页 / 共39页
第4章JSP语法进阶20.ppt_第3页
第3页 / 共39页
第4章JSP语法进阶20.ppt_第4页
第4页 / 共39页
第4章JSP语法进阶20.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第4章JSP语法进阶20.ppt》由会员分享,可在线阅读,更多相关《第4章JSP语法进阶20.ppt(39页珍藏版)》请在三一办公上搜索。

1、第4章 JSP语法进阶,回顾,Response对象含义特点常用方法(1)setContentType()(2)setHeader()(3)setRedirect()(4)setStatus(),session对象存在的原因,HTTP协议是无状态的,即信息无法通过HTTP协议本身进行传递。为了跟踪用户的操作状态,JSP使用session对象来实现这一功能。,即:当客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,因此服务器应当通过某种办法知道这是同一个客户,这就需要session对象。,会话,从一个客户打开浏览器连接到服务器的某个服务目录(这其间,客户访问的是同一

2、web目录中的网页),到客户关闭浏览器,这一过程称为一个会话。这时,在服务器端,系统为该客户创建了一个session对象。在客户端,系统为该客户创建了Cookie对象。一个客户对同一服务目录中不同网页的访问属于同一会话。,客户的session对象与服务目录,当一个客户首次访问服务目录中的一个JSP页面时,JSP引擎为该客户创建一个session对象。同一客户访问的服务目录不同,JSP引擎为该客户创建不同的session对象。从时间上看,若客户离开先前的服务目录,连接到其它服务器或者服务目录,当再次回到先前服务目录时,JSP引擎不再给客户分配新的session对象,而是使用先前的session对

3、象。只有当客户关闭浏览器或这个session对象达到了最大生存时间,该客户的session 对象才被取消,这时服务器与客户的会话关系消失。,Session对象与Cookie,当JSP引擎为客户创建一个session对象后,这个session对象被分配了一个String类型的ID号,JSP引擎同时将此ID号发送到客户端,存放在Cookie中这样,代表同一客户会话的session对象和Cookie对象建立了一一对应关系即,每一客户会话信息保存在session/Cokkie对中,Session对象与线程,当多个客户点击同一页面时,JSP引擎为每个客户启动一个线程,这就是说,一个客户对应一个线程,每个

4、线程对应一个session对象,每个线程的session对象不同。,Session对象生命周期,从一个客户会话开始到会话结束这段时间称为session对象的生命周期。具体上说,指客户访问某web目录下的页面到关闭浏览器,离开该web目录,这段时间成为session对象的生命周期。,用户登陆网站时,系统将为其生成一个独一无二的session对象,用以记录该用户的个人信息,一旦用户退出网站,那么所对应的session对象将被注销。session对象可以绑定若干个用户信息或者JSP对象,不同session对象的同名变量是不会相互干扰的。,Session对象特点1,session对象在服务器上设置了一

5、个30分钟的过期时间,当客户停止活动后自动失效。session中保存和检索的信息不能是基本数据类型如int,double等,必须是java相应的对象,如Integer,Double等。,Session对象特点2,session对象源于javax.servlet.http.HttpSession,它是一个建立在Cookie机制上的友好的界面,session的信息保存在服务器端,session的id保存在客户机的Cookie中。事实上,在许多服务器上,如果浏览器支持的话它们就使用Cookie,session自动为每个流程提供方便的存储信息的方法。,Session对象的来源,session对象的常用

6、方法,session对象表示目前用户的会话状态,用来识别每个用户,与之相关的常用方法如下。(1)Object getAttribute(String name)获取与指定名字相关联的session属性值。,(2)Enumeration getAttributeNames()取得session内所有属性的集合。(3)long getCreationTime()获取session的创建时间,最小单位为千分之一秒。,(4)String getId()获取session标识。此方法返回惟一的标识,这些标识为每个session而产生。当只有一个单一的值与一个session联合时,或当日志信息与先前的se

7、ssions有关时,它被当做键名用。,(5)long getLastAccessedTime()获取与当前session相关的客户端最后一次访问的时间,由1970-01-01算起,单位为毫秒。(6)int getMaxInactiveInterval(int interval)获取总时间,以秒为单位,表示session的有效时间。1为永不过期。,(7)ServletContext getServletContext()获取一个该JSP页面对应的ServletContext对象实例。(8)void invalidate()销毁session对象。,(9)boolean isNew()判断一个se

8、ssion是否由服务器产生,但是客户端并没有使用。(10)void setAttribute(String name,String value)设置指定名称的session属性值,会替换掉任何以前同一用户的同名值。,(11)void setMaxInactiveInterval(int interval)设置session的有效期。(12)void removeAttribute(String name)移除指定名称的session属性。,P149 setAttr.jsp getAttr.jsp,Session对象实例分析,问题1:将购买者的姓名、商品名保存在session对象中,实现同一we

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

10、.将姓名和商品名输出到客户端,Session对象实例补充1,启动IE窗口运行如下JSP,如果连续刷新5次,输出结果是什么?重新启动一个新的IE窗口运行该JSP,如果连续刷新3次,输出结果是什么?,不同的客户与服务器连接时有不同的session对象,同一客户浏览同一服务器的不同目录时,有不同的session对象。与session对象不同的是application对象。服务器启动后,就产生了application对象。所有客户的application对象是相同的一个,即,所有客户共享这个内置的application对象。,application对象,application对象生命期,applica

11、tion对象随着服务器启动而创建,随着服务器关闭而消失。application对象的生命周期指从application对象创建到服务器关闭这段时间。,application对象与线程,当多个客户点击同一页面时,JSP引擎为每个客户启动一个线程,这些线程共享同一个application对象由于所有客户共享同一个application 对象,任何客户对application对象中数据的改变都会影响到其它的客户,因此,对该对象的操作需要实现同步处理。,application对象及其方法,下面列出了application对象常用的方法。(1)Object getAttribute(String nam

12、e)获取由name指定的application属性。,(2)Enumeration getAttributes()获取所有的application属性。(3)void removeAttribute(String name)移除指定名称的application属性。,(4)void setAttribute(String name,Object value)设置指定的application属性的值,属性值必须是对象而不能是简单数据类型(如int)。(5)ServletContext getContext(String uripath)获取当前应用的ServletContext对象。,(6)St

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

14、10)String getServerInfo()获取应用服务器版本信息。(11)String getServletContextName()获取当前web应用的名称。,Application对象实例分析,P151 application.jsp,问题:输出本页面所在的实际路径、使用 的JSP引擎、application对象对应 的字符串。,Application对象补充实例1,编写简易聊天室,实现“发言”和“清空”两个功能。不要求自动刷新。,Application对象补充实例2,问题:要求使用三个页面来实现留言的功能。一个页面提供留言输入窗口;一个页 面获取当前留言,并将留言添加到向 量中;

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

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号