- HttpSession接口
- 如何获取HttpSession对象
- HttpSession接口的常用方法
- 使用HttpSession的示例
- 绑定对象
- 查看和操作有关会话的信息, 例如会话标识符, 创建时间和上次访问时间。
文章图片
如何获得HttpSession对象?
HttpServletRequest接口提供了两种方法来获取HttpSession的对象:
- public HttpSession getSession():返回与此请求关联的当前会话, 或者如果该请求没有会话, 则创建一个。
- public HttpSession getSession(boolean create):返回与此请求关联的当前HttpSession;如果没有当前会话且create为true, 则返回一个新会话。
- public String getId():返回包含唯一标识符值的字符串。
- public long getCreationTime():返回创建此会话的时间, 以格林尼治标准时间1970年1月1日午夜以来的毫秒数为单位。
- public long getLastAccessedTime():返回客户端最后一次发送与此会话相关联的请求的时间, 以格林尼治标准时间1970年1月1日午夜以来的毫秒数为单位。
- public void invalidate():使此会话无效, 然后取消绑定到该会话的任何对象。
在此示例中, 我们在一个servlet的会话范围内设置属性, 并从另一个servlet的会话范围获取该值。为了在会话范围内设置属性, 我们使用了HttpSession接口的setAttribute()方法, 并且为了获取属性, 我们使用了getAttribute方法。
index.html
<
form action="servlet1">
Name:<
input type="text" name="userName"/>
<
br/>
<
input type="submit" value="http://www.srcmini.com/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='http://www.srcmini.com/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>
下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
【Servlet会话追踪(HttpSession接口)】下载此示例(使用Netbeans IDE开发)
推荐阅读
- 改善Servlet性能(从数据库中获取记录)
- Servlet会话追踪(隐藏表格栏位)
- 如何使用Servlet将数据写入PDF()
- 2个有用的过滤器示例
- Servlet过滤器(FilterConfig用法)
- Servlet如何显示图像()
- servlet将文件上传到服务器的示例
- Servlet中的注册表单示例
- 金馆长微信表情包:二人联合嘲讽表情包_微信