易截截图软件、单文件、免安装、纯绿色、仅160KB

JSP/Servlet:Servlet/JSP会话跟踪机制

JSP/Servlet:Servlet/JSP会话跟踪机制
在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法。
一、Servlet的会话管理机制
在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题。本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法。
一、Servlet的会话管理机制
根据设计,HTTP是一种无状态的协议。它意味着Web应用并不了解有关同一用户以前请求的信息。维持会话状态信息的方法之一是使用Servlet或者JSP容器提供的会话跟踪功能。Servlet API规范定义了一个简单的HttpSession接口,通过它我们可以方便地实现会话跟踪。
HttpSession接口提供了存储和返回标准会话属性的方法。标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存。简而言之,HttpSession接口提供了一种把对象保存到内存、在同一用户的后继请求中提取这些对象的标准办法。在会话中保存数据的方法是setAttribute(String s, Object o),从会话提取原来所保存对象的方法是getAttribute(String s)。
在HTTP协议中,当用户不再活动时不存在显式的终止信号。由于这个原因,我们不知道用户是否还要再次返回,如果不采取某种方法解决这个问题,内存中会积累起大量的HttpSession对象。
为此,Servlet采用“超时限制”的办法来判断用户是否还在访问:如果某个用户在一定的时间之内没有发出后继请求,则该用户的会话被作废,他的HttpSession对象被释放。会话的默认超时间隔由Servlet容器定义。这个值可以通过getMaxInactiveInterval方法获得,通过setMaxInactiveInterval方法修改,这些方法中的超时时间以秒计。如果会话的超时时间值设置成-1,则会话永不超时。Servlet可以通过getLastAccessedTime方法获得当前请求之前的最后一次访问时间。
要获得HttpSession对象,我们可以调用HttpServletRequest对象的getSession方法。为了正确地维持会话状态,我们必须在发送任何应答内容之前调用getSession方法。
用户会话既可以用手工方法作废,也可以自动作废。作废会话意味着从内存中删除HttpSession对象以及它的数据。例如,如果一定时间之内(默认30分钟)用户不再发送请求,Java Web Server自动地作废他的会话。
Servlet/JSP会话跟踪机制有着一定的局限,比如:
 会话对象保存在内存


相关文档:

JSP内置对象及常用方法

1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding( ......

jsp九种内置对象


JSP九种内置对像,不用定义可直接使用:request,请求对象;response,响应对象;pageContext,页面上下文对象;session,会话对象;application,应用程序对象;out,输出对象;config,配置对象;page,页面对象;exception,例外对象。
......

jquery直接显示jsp返回的数据

jQuery是目前一个很流行的js框架,它也提供了对ajax很好的支持。使用ajax异步请求数据时,如果服务器返回的一个列表数据,通常的做法是把列表数据转换成json格式的数据,然后返回到页面,使用jQuery进行解析并用表格来显示,这要求你对javascript解析json很熟透。
我在这里提供一种投机取巧的做法,使用jQuery发送异步请求 ......

JSP验证码的实现

       最近看SSH需要使用验证码,所以在网上找了一下。这个代码在网上已经流传很久了,大部分都大同小异,贴出来以备后用。
      代码如下(image.jsp):
<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.image ......

jsp 不支持EL表达式,解决办法

以前用WSAD wizard做的,都可以在JSP页面中解析到EL表达式,当然前提是JSP2.0的情况下。
今天遇到了一个莫名其妙的问题。刚下载Eclipse3.3+MyEclipse6.0体验的过程中,遇上了解析不到EL表达式的问题。经过好几个小时的琢磨终于发现了,给大家share一下:
问题就出在建Web Project的时候web.xml声明上。
web.xml声明部 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号