一、Session(会话)以及常用的API方法
Session是基于Cookie的一种会话机制。数据存放在服务器端。
1 2 3 4 5 6 7 8 9 10 11 12 13
| HttpSession session = request.getSession(); //和Cookie一样由request调用得到 //得到会话的ID String id = session.getId(); //存值 session.setAttribute(name, value); //设置值 //取值 session.getAttribute(name); //移除值 session.removeAttribute(name);
|
二、Session简单使用
创建
如果有在servlet里面调用了 request.getSession()
销毁
session是存放在服务器的内存中的一份数据,当然可以持久化,Redis。即使关闭浏览器也不会销毁
- 关闭服务器
- session会话时间过期(默认有效期:30分钟)
举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package Servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //使用字节流/字符流需要使用文字编码 response.setContentType("text/html;charset=utf-8"); //使用session的getId()获得id String sessionid = request.getSession().getId(); System.out.println("sessionid="+sessionid);//JAVA的控制台输出
response.getWriter().write("收到请求了!"); //浏览器输出 }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
}
|