文档详情

教学目的本讲继续讲述JSP内置对象的功能和使用方法1.ppt

发布:2017-08-28约9.43千字共37页下载文档
文本预览下载声明
* 第四讲 JSP 内置对象(2) 教学目的 本讲继续讲述JSP内置对象的功能和使用方法 1 session 对象 2 application 对象 3 out 对象 4.1 session对象 HTTP协议是一种无状态协议。一个客户向服务器发出请求(request)然后服务器返回响应(respons),连接就被关闭了。在服务器端不保留连接的有关信息,因此当下一次连接时,服务器已没有以前的连接信息了,无法判断这一次连接和以前的连接是否属于同一客户。因此,必须使用会话记录有关连接的信息。 从一个客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器称做一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面反复连接、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种办法知道这是同一个客户,这就需要session(会话)对象。 第四讲 JSP内置对象(2) 4.1.1 session对象的Id 当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个secssion对象,这个session对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息,比如,姓名、号码等信息。这个session对象被分配了一个String类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在客户的Cookie中。这样,session对象和客户之间就建立起一一对应的关系,即每个客户都对应着一个session对象(该客户的会话),这些session对象互不相同,具有不同的Id号码。我们已经知道,JSP引擎为每个客户启动一个线程,也就是说,JSP为每个线程分配不同的session对象。当客户再访问连接该服务器的其它页面时,或从该服务器连接到其它服务器再回到该服务器时,JSP引擎不再分配给客户的新session对象,而是使用完全相同的一个,直到客户关闭浏览器后,服务器端该客户的session对象被取消,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。 在下面的例子1中,客户在服务器的三个页面之间进行连接,只要不关闭浏览器,三个页面的session对象是完全相同的。客户首先访问session.jsp页面,从这个页面再连接到tom.jsp页面,然后从tom.jsp再连接到jerry.jsp页面。 %@ page contentType=text/html;charset=GB2312 % HTML BODY P % String s=session.getId(); % P 您的session对象的ID是: BR %=s% P输入你的姓名连接到tom.jsp FORM action=tom.jsp method=post name=form INPUT type=text name=boy INPUT TYPE=submit value=送出 name=submit /FORM /BODY /HTML 例子1 session.jsp: tom.jsp: %@ page contentType=text/html;charset=GB2312 % HTML BODY P我是Tom页面 % String s=session.getId(); % P 您的在Tom页面中的session对象的ID是: %=s% P 点击超链接,连接到Jerry的页面。 A HREF=jerry.jsp BR 欢迎到Jerry屋来! /A /BODY /HTML jerry.jsp: %@ page contentType=text/html;charset=GB2312 % HTML BODY P我是Jerry页面 % String s=session.getId(); % P 您在Jerry页面中的session对象的ID是: %=s% P 点击超链接,连接到session的页面。 A HREF=session.jsp BR 欢迎到session屋来! /A /BODY /HTML 4.1.2 session对象与URL重写 session对象能和客户建立起一一对应关系依赖于客户的浏览器是否支持Cookie。如果客户端不支持Cookie,那么客户在不同网页之间的session对象可能是互不相同的,因为服务器无法将Id存放到客户端,就不能建立session对象和客户的一一对应关系。我们将浏览器的C
显示全部
相似文档