会话技术cookie和session

it2022-05-09  27

1.Session:服务器端保存会话数据的技术

Session是Servlet三大域对象之一(ServletContext、Session、request)

Session的生命周期:浏览器打开访问这个网站开始,到退出这个网站或者超时之后结束

Session作用域:被整个浏览器的任何页面共享

 

在Servlet的doget()方法中获取session

HttpSession session =request.getSession();

session.setAttribute("username", "小明");

在项目下新建页面,用el表达式取username

${username}

在浏览器中访问Servlet,再去访问页面,每个页面都可以取到 小明

 

 

何时失效?Tomca默认失效时间30min

可以设置何时失效时间-->session.setMaxInactiveInterval(10);//10s后失效

2.cookie:客户端(浏览器端)保存会话数据的技术

创建Cookie

Cookie cookie = new Cookie("pwd", "123");

设置cookie失效时间

cookie.setMaxAge(60*60);

把cookie加到浏览器

response.addCookie(cookie);

 

获取cookie

//获取request提交上来的所有的cookie的数组

Cookie[] cookies = request.getCookies();

if(cookies != null){

for(Cookie coo : cookies){//遍历数组

System.out.println(coo.getName());//名字

System.out.println(coo.getValue());//值

}

}

 

查看coookie

可以选择360极速浏览器,查看设置的cookie

在jsp界面打印cookie

<% Cookie[] cookies = request.getCookies(); String username = ""; String pwd = ""; if(cookies != null){ for(Cookie cookie : cookies){ if(cookie.getName().equals("pwd")){ pwd = cookie.getValue(); } } } %> cookie中的pwd: <%=pwd %>

先要通过Servlet创建cookie,再访问页面才能显示cookie的值

3.session依赖cookie

Session的运行依赖sessionid,而sessionid时存在cookie中的,,也就是说如果浏览器禁用了cookie,session也会失效(但是可以通过URL重写实现)

4.session的活化和钝化

Session的钝化:将session的信息从内存中写到硬盘中

Session的活化:将session的信息从硬盘中读到内存中

 

一个直观感受: 访问Servlet且创建了session,停止服务器,在work目录下生成session.ser文件

再次启动服务器 session.ser文件没了 跑到内存中去了


最新回复(0)