HttpSession接口

在这种情况下,容器为每个用户创建一个会话ID。容器使用这个ID来识别特定用户。HttpSession对象可用于执行两项任务:

  1. 绑定对象
  2. 查看和操作会话信息,如会话标识符、创建时间和最后访问时间。

httpsession.jpg

如何获取HttpSession对象?

HttpServletRequest接口提供了两种方法来获取HttpSession对象:

  1. public HttpSession getSession():返回与此请求相关联的当前会话,如果请求没有会话,则创建一个。
  2. public HttpSession getSession(boolean create):返回与此请求相关联的当前HttpSession,如果没有当前会话且create为true,则返回一个新会话。

HttpSession接口的常用方法

  1. public String getId():返回包含唯一标识符值的字符串。
  2. public long getCreationTime():返回此会话创建的时间,以1970年1月1日午夜以来的毫秒为单位。
  3. public long getLastAccessedTime():返回客户端发送与此会话相关联的请求的最后时间,以1970年1月1日午夜以来的毫秒为单位。
  4. public void invalidate():使此会话无效,然后解除绑定到它的任何对象。

使用HttpSession的示例

在这个示例中,我们在一个servlet中设置会话范围内的属性,并在另一个servlet中从会话范围获取该值。为了在会话范围内设置属性,我们使用了HttpSession接口的setAttribute()方法,为了获取属性,我们使用了getAttribute方法。

index.html

<form action="servlet1">  
Name:<input type="text" name="userName"/><br/>  
<input type="submit" value="go"/>  
</form>  

FirstServlet.java

import java.io.*;  
import javax.servlet.*;  
import javax.servlet.http.*;  
  
  
public class FirstServlet extends HttpServlet {  
  
public void doGet(HttpServletRequest request, HttpServletResponse response){  
        try{  
  
        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
          
        String n=request.getParameter("userName");  
        out.print("Welcome "+n);  
          
        HttpSession session=request.getSession();  
        session.setAttribute("uname",n);  
  
        out.print("<a href='servlet2'>visit</a>");  
                  
        out.close();  
  
                }catch(Exception e){System.out.println(e);}  
    }  
  
}  

SecondServlet.java

import java.io.*;  
import javax.servlet.*;  
import javax.servlet.http.*;  
  
public class SecondServlet extends HttpServlet {  
  
public void doGet(HttpServletRequest request, HttpServletResponse response)  
        try{  
  
        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
          
        HttpSession session=request.getSession(false);  
        String n=(String)session.getAttribute("uname");  
        out.print("Hello "+n);  
  
        out.close();  
  
                }catch(Exception e){System.out.println(e);}  
    }  
      
  
}  

web.xml

<web-app>  
  
<servlet>  
<servlet-name>s1</servlet-name>  
<servlet-class>FirstServlet</servlet-class>  
</servlet>  
  
<servlet-mapping>  
<servlet-name>s1</servlet-name>  
<url-pattern>/servlet1</url-pattern>  
</servlet-mapping>  
  
<servlet>  
<servlet-name>s2</servlet-name>  
<servlet-class>SecondServlet</servlet-class>  
</servlet>  
  
<servlet-mapping>  
<servlet-name>s2</servlet-name>  
<url-pattern>/servlet2</url-pattern>  
</servlet-mapping>  
  
</web-app>  

标签: java, Java Servlet, Java Servlet语言, Java Servlet开发, Java Servlet语法, Java Servlet脚本, Java Servlet教程, Java Servlet入门, Java Servlet入门教程, Java Servlet进阶, Java Servlet宝典, Java Servlet学习, Java Servlet指南, Java Servlet大全