HTTPSession对象
HTTPSession对象的特点;
1.HTTPSession对象是保存在服务器端的;
2.HTTPSession允许存储任何数据类型;
3.HTTPSession存储数据大小无限制;
4.HTTPSession对象存储数据结构为key:value
HTTPSession对象的使用
创建HTTPSession对象;
在HttpSession对象的创建是通过request.getSession();方法创建的,这个方法会判断请求中是否有sessionID,如果有则返回此ID对应的HTTPSession对象,如果没有则会创建一个新的HTTPSession对象并为此对象创建一个sessionID,在响应中通过cookie写回到客户端浏览器中;
Request.getSession()方法还有一个重载方法,为request.getSession(true|false);如果参数为true则作用于无参方法相同,如果参数为false则会根据sessionID返回对应的HTTPSession对象,如果没有sessionID则不会创建新的HTTPSession对象;
代码示例:
(包括向session对象中添加数据,配置session对象销毁时间,以及销毁方法)
package com.bjsxt.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
/**
* HttpSession对象创建过程
* */
public class CreateHttpSessionServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*(前提是只有ie和谷歌浏览器)获取请求头,利用请求头判断是什么客户端浏览器如果含有Chrome则是谷歌浏览器,如果没有则是ie*/
String header = req.getHeader("User-Agent");
HttpSession session = req.getSession();
//HttpSession session = req.getSession(false);
if(header.indexOf("Chrome")</