JSP的会话跟踪技术
JSP的会话跟踪技术
Cookie:服务器在一个应答首部传递给浏览器的名称/值对。浏览器保存的时间由cookie的过期时间属性来指定。当浏览器向某个服务器发送一个请求时,它会检查其保存的cookie,并在请求首部中包含从同一台服务器上接收到的所有cookie。
Session tracking:在浏览器和服务器之间不直接传送所有的状态信息,而只是传递表示符(session ID)。浏览器发送sessionID,服务器跟踪与该会话相关联的所有信息。传递sessionID可以通过cookie和URL复写技术,大部分容器都支持这两种技术。服务器无法分辨用户是否关闭了浏览器,因此关闭浏览器意味着与先前的会话关联的所有会话数据都保留在服务器上,直到会话超时,服务器销毁会话对像。
®跟踪同一会话中的请求的会话ID可以有多种方法,主要有cookie和url复写。
URL复写:把会话ID编码在URL中。
例:counter.jjsp;jsessionnid=be8d697876787876befdbde898789098980
这样,即使浏览器不支持cookie,也能够实现会话跟踪。
对于URL复写,服务器从请求的URI中提取出会话ID,并把该请求与相应的会话关联起来,然后在访问会话数据的时候,JSP页面所进行的处理方式就和使用cookie跟踪会话id时所使用的方式完全相同。所以sesssion的实现要依靠cookie或URL复写技术。
如果想为不支持cookie的浏览器提供会话跟踪,就必须使用<c:url>行为对应用程序中的所有URL进行复写。这意味着应用程序中的所有页面(至少是那些带有对其他页面引用的页面)都必须是JSP页面,这样页面引用才能以动态方式进行编码,如果遗漏了一个ur,那么服务就会失去对会话的跟踪。
隐藏表单域:隐藏表单域是将会话ID添加到HTML的隐藏表单中(类型为hidden的input)。
重定向和转发
可以使用两种方法来调用另一个页面,重定向和转发。
i) 转发:<jsp:forward page=”userInfo.jsp”/>
转发,JSP容器将使用一个内部方法来调用目标页面,新的页面继续处理同一个请求,而浏览器不会知道这个过程涉及到了多个页面。浏览器URL会保持不变。
ii) 重定向:<c:redirect url=&rdqu
相关文档:
在提交表单的页里加上
<%
org.apache.struts.util.TokenProcessor.getInstance().saveToken(request);
%>
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="<%=session.getAttribute("org.apache.struts.action.TOKEN")%>" />
struts action里
if(isTokenValid(request ......
JSP/Servlet:Servlet/JSP会话跟踪机制
在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法。
一、Servlet的会话管理机制
在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的 ......
----*web.xml *----
----*web.xml *----
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>cray.util.MyFilter</filter-class>
</filter>
<filter-mapping>
<fi ......
转自:http://java.chinaitlab.com/Tomcat/33170.html
经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题,于是总结了一下如何tomcat下配置jsp、servlet和ben,希望对那些初学者有所帮助。
一、开发环境配置
第一步:下载j2sdk和tomcat:到sun官方站(http://java.sun.com/j2se/1.5.0 ......
jsp学习心得
学习JSP技术也快半年多了吧,自己也动手编写了一些简单的动态网页吧。众所周知动态网页三大技术ASP,JSP,PHP基本上是三分天下,当然还有其他语言像Ruby,Python等也占据不小的份额。
学习JSP过程中我感触最深的是如下几点:
1.JSP是一种表示层的技术
&nb ......