2021-10-14

session技术

1. HttpSession对象创建过程
当客户端浏览器第一次访问服务器时,服务器为每个浏览器创建不同的HttpSession对象。在服务器端使用request.getSession()方法来获得HttpSession对象,并以此来使用HttpSession接口为我们提供的方法,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

<%
//创建HttpSession对象
HttpSession session = request.getSession(true);
或者
HttpSession session =request.getSession();

//获取session的ID
SessionId=session.getId();

//cookie 对象创建
Cookie cookie = new Cookie(“JSESSIONID”,session.getId());

//设置cookie的存在时间
cookie.setMaxAge(30);//这个今天老师上课也提到了

//销毁session对象
session.invalidate();
%>

2. 内置对象session与httpSession对象是同一个东西吗?
据我了解:在jsp中session是一个内置对象。而在servlet 中想使用session就需要先得到session。
根据资料显示:HttpSession是Java平台对session的实现规范,因为它仅仅是一个街口,具体到每一个web应用服务器的提供商,除了对规范支持之外,仍然会有一些规范里面没有的细微差异。
1.Session 对象是javax.servlet.htp.Http session类的实例,主要用来保持在服务器与一个客户端之间需要保留的数据。
2.HttpSession是Java平台对session机制的实现规范,仅仅是个接口。Weblogic Server提供了一系列的参数来控制HttpSession的实现。

3. 如果不确定客户端是否禁用cookie,则可以使用URL重写技术
浏览器会话(session)跟踪的实现方式主要是cookie与URL重写,cookie是默认的方式,当不确定客户端是否禁用cookie的时候,可以用URL重写技术实现会话跟踪。

可以通过HttpServletResponse的encodeURL()方法和encodeRedirectURL()方法实现URL重写,其中,encodeRedirectURL()方法主要对使用sendRedirect()方法的URL进行重写。

URL重写方法根据请求信息中是否包含Set-Cookie请求头来决定是否进行URL重技术的写。若包含了该请求头,将URL原样输出:若不包含,则将会话标识JSEESIONID重写到URL中。URL重写示例代码如下:
//对重定向的URL进行重写
String encodeURL = response.encodeRedirectURL(“toRedirectServlet”);
response.sendRedirect(“encodeURL”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值