众所周知,在JSP页面上可直接通过session.setAttribute(name,object)设置session,可如果想在servlet使用session 的话,就和在JSP有点区别了。在servlet中通过HttpSession session=request.getSession(boolean create);得到一个session对象(准确来说,得到的应该是一个HttpSession 对象),然后,就可以像在JSP页面中直接使用它了。
参数Boolean create说明:如果当前请求不属于任何会话,而且create参数为true,则创建一个会话,否则返回null.当然如果为false的时候,那就和不带参数的HttpSession session=request.getSession();等价了。
其实,jsp中的session和servlet中的HttpSession其实根本没有区别,JSP页面在编译时会通过Jsp container将session对象变换为javax.servlet.http.HttpSession对象。
捎带介绍下HttpSession的方法吧。
//将value对象以name名称绑定到会话
public void setAttribute(String name,Object value);
//取得name的属性值,如果属性不存在则返回null
public object getAttribute(String name);
//从会话中删除name属性,如果不存在不会执行,也不会抛处错误.
public void removeAttribute(String name);
//返回和会话有关的枚举值
public Enumeration getAttributeNames();
//使会话失效,同时删除属性对象
public void invalidate();
//用于检测当前客户是否为新的会话
public Boolean isNew();
//返回会话创建时间
public long getCreationTime();
//返回在会话时间内web容器接收到客户最后发出的请求的时间
public long getLastAccessedTime();
//返回在会话期间内客户请求的最长时间.秒
public int getMaxInactiveInterval();
//允许客户客户请求的最长时间
public void setMasInactiveInterval(int seconds);
//返回当前会话的上下文环境,ServletContext对象可以使Servlet与web容器进行通信
ServletContext getServletContext();
//返回会话期间的识别号
public String getId();