javaweb学习15:Session(重点)
2022/3/27 17:23:20
本文主要是介绍javaweb学习15:Session(重点),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
javaweb学习15:Session(重点)
-
Session:
-
服务器会给每一个用户(浏览器)创建一个Session对象;
-
一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在;
-
-
Session和Cookie的区别:
-
Cookie:把用户的数据写给用户的浏览器;浏览器保存;(可以保存多个)
-
Session:把用户的数据写到用户独占的Session中,服务器端保存;(保存重要信息,减少服务器资源的浪费)
-
Session对象由服务器创建;
-
-
使用场景:
-
保存登录用户的信息;
-
保存购物车的信息;
-
在整个网站中经常会使用的数据,我们将它保存在Session中;
-
-
代码案例:创建Session信息
/** * Session */ public class SessionDemo01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码问题 req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); //得到session HttpSession session = req.getSession(); session.setAttribute("name",new Person("张三",1)); //获取session的ID String id=session.getId(); //判断session是不是新创建的 if(session.isNew()){ resp.getWriter().write("session创建成功,id为:"+id); }else{ resp.getWriter().write("session已经在服务器中存在了"); } //Session创建的时候做了什么事情: /*Cookie cookie = new Cookie("JSESSIOONID",id); resp.addCookie(cookie);*/ } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
-
代码案例:获取Session信息;
public class SessionDemo02 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码问题 req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); //得到session HttpSession session = req.getSession(); Person person= (Person) session.getAttribute("name"); resp.getWriter().write(person.toString()); System.out.println(person.toString()); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
-
代码案例:注销Session
public class SessionServlet03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //得到session HttpSession session = req.getSession(); session.removeAttribute("name");//取消session session.invalidate();//手动注销session } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
-
代码案例:会话自动过期:以分钟为单位
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> <!--设置Session默认注销时间--> <session-config> <!--1分钟后,session自动失效;以分钟为单位--> <session-timeout>1</session-timeout> </session-config> </web-app>
这篇关于javaweb学习15:Session(重点)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23JAVA语音识别项目入门教程
- 2024-11-23Java云原生学习:从入门到实践
- 2024-11-22Java创业学习:初学者的全面指南
- 2024-11-22JAVA创业学习:零基础入门到实战应用教程
- 2024-11-22Java创业学习:从零开始的Java编程入门教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22JAVA对接阿里云智能语音服务学习教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22Java副业学习:零基础入门到实战项目
- 2024-11-22Java副业学习:零基础入门指南