session

session是什么?
session是浏览器和服务器的一次会话,它保存一些数据,这是为了实现各个http请求之间建立联系。为什么http请求之间没有联系呢?因为它们是无状态的,不会记录它们之间的关系。比如登录一个网站,我们想要只登陆一次就可以一直访问这个网站所有网页,没有session,我们没打开一个网页就要登录一次,而在session中我们可以记录下账户和密码,这样在网站的域名下,session就是一个全局变量,所有网页可以从session中获取账户名和密码。在session之前,我们是用cookie实现这个功能的,cookie把用户数据存储在浏览器,用户可以查看并修改,为了避免用户操作,使用存储在服务器的用户独占的session。

session怎么让服务器记住用户?
浏览器第一次请求服务器,服务器会创建一个session,并把session id以cookie的形式返回给浏览器,下一次访问,浏览器会把存储在cookie中的JSESSIONIDY一并传递给服务器,服务器会根据session id 匹配各个用户的session对象。

禁用cookie怎么使用session?
两个方法:
1.response.encodeURL(String url) 重写表单action和超链接url

String url = request.getContextPath + "/Demo1servlt?id=" + a.getId();
url = response.encodeURL(url);
response.getWriter().println("<a href='" + url "'></a>");

2.response.encodeRedirectURL(String url)

String url = response.encodeRedirectURL(request.getContextPath + "/DemoServlet");
response.senRedirect(url);

session的销毁。
代码:

session.invalidate();

web.xml
默认30分钟销毁

<session-config>
    <session-timeout>30</session-config>
</session-config>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值