Session存字符串数据

Session存字符串数据

什么是Session:

  • 服务器会给每一个用户(浏览器)创建一个Session对象

  • 一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在

  • 用户登录之后,整个网站都可以访问 ---->保存用户信息;保存购物车信息 等等..

  • Session能存字符串,也能存入用户信息

Session和Cookie的区别:

  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)

  • Session把用户的数据写到用户独占Session中,服务器保存(保存重要信息,减少服务器资源浪费)

  • Session对象由服务器创建

使用场景:

  • 保存一个登陆用户的信息

  • 购物车信息

  • 在整个网站中经常会使用的数据,我们将它保存在Session中

以下1-5执行的是:在Demo01类中用Session存字符串数据(王赞),在Demo02类中用Session读字符串数据。

1、 建Demo01项目+改web.xml文件

    

 1 package com.wang.servlet;
 2 import javax.servlet.ServletException;
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 import javax.servlet.http.HttpSession;
 7 import java.io.IOException;
 8 public class SessionDemo01 extends HttpServlet {
 9     @Override
10     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
11         //解决乱码问题
12         resp.setCharacterEncoding("UTF-8");
13         req.setCharacterEncoding("UTF-8");
14         resp.setContentType("text/html;charset=UTF-8");
15         //得到Session
16         HttpSession session = req.getSession();
17         //给session中存入东西
18         session.setAttribute("name","王赞");
19         //获取Session的ID
20         String sessionId = session.getId();
21 
22         //判断Session是不是新创建的
23         if(session.isNew())
24         {
25             resp.getWriter().write("Session创建成功,ID:"+sessionId);
26         }
27         else
28         {
29             resp.getWriter().write("Session已经在服务器中存在,ID:"+sessionId);
30         }
31     }
32     @Override
33     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
34         doGet(req, resp);
35     }
36 }
View Code 

2、 注册+映射

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 6                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 7          version="4.0"
 8          metadata-complete="true">
 9     <!--注册和映射-->
10     <servlet>
11         <servlet-name>SessionDemo01</servlet-name>
12         <servlet-class>com.wang.servlet.SessionDemo01</servlet-class>
13     </servlet>
14     <servlet-mapping>
15         <servlet-name>SessionDemo01</servlet-name>
16         <url-pattern>/s1</url-pattern>
17     </servlet-mapping>
18 </web-app>
View Code

3、 建Demo02项目

 

 1 package com.wang.servlet;
 2 
 3 import javax.servlet.ServletException;
 4 import javax.servlet.http.HttpServlet;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7 import javax.servlet.http.HttpSession;
 8 import java.io.IOException;
 9 
10 public class SessionDemo02 extends HttpServlet {
11     @Override
12     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
13         //解决乱码问题
14         resp.setCharacterEncoding("UTF-8");
15         req.setCharacterEncoding("UTF-8");
16         resp.setContentType("text/html;charset=UTF-8");
17         //得到Session
18         HttpSession session = req.getSession();
19 
20         String name = (String) session.getAttribute("name");
21 
22         System.out.println(name.toString());
23     }
24     @Override
25     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
26         doGet(req, resp);
27     }
28 }
View Code

4、 注册+映射

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 6                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 7          version="4.0"
 8          metadata-complete="true">
 9     <!--注册和映射-->
10     <servlet>
11         <servlet-name>SessionDemo01</servlet-name>
12         <servlet-class>com.wang.servlet.SessionDemo01</servlet-class>
13     </servlet>
14     <servlet-mapping>
15         <servlet-name>SessionDemo01</servlet-name>
16         <url-pattern>/s1</url-pattern>
17     </servlet-mapping>
18     <!--注册和映射-->
19     <servlet>
20         <servlet-name>SessionDemo02</servlet-name>
21         <servlet-class>com.wang.servlet.SessionDemo02</servlet-class>
22     </servlet>
23     <servlet-mapping>
24         <servlet-name>SessionDemo02</servlet-name>
25         <url-pattern>/s2</url-pattern>
26     </servlet-mapping>
27 </web-app>
View Code

5、 运行

 

 

posted @ 2020-03-28 14:49  WZ_BeiHang  阅读(801)  评论(0)    收藏  举报