飞道的博客

Session入门案例

421人阅读  评论(0)

Session入门案例

  1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。
  2. 入门案例:
    (1)使用:
    ①.获取HttpSession对象:
    HttpSession session = request.getSession();
    ②.使用HttpSession对象:
    存储数据
    void setAttribute( String name,Object value )
    获取数据
    Object getAttribute( String name )
    void removeAttribute( String name )
    (2)创建WEB工程
    ①.在src文件里创建co.itcast.session包,然后在里面创建SessionDemo1和SessionDemo2文件
    ②.目录结构:

    ③.创建方法为右击cn.itcast.session包,然后选择new,然后选择Create new Servlet。将其命名为 SessDemo1和SessionDemo2。
    ④.SessionDemo1文件内容为:
package cn.itcast.session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/SessionDemo1")
public class SessionDemo1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用session共享数据

        //1.获取session
        HttpSession session = request.getSession();
        //2.存储数据
        session.setAttribute("msg","hello session");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

⑤.SessionDemo2文件内容为:

package cn.itcast.session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/SessionDemo2")
public class SessionDemo2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用session获取数据

        //1.获取session
        HttpSession session = request.getSession();
        //2.获取数据
        Object msg = session.getAttribute("msg");
        System.out.println(msg);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

⑥.然后根据下图tomcat的配置地址,首先在浏览器上输入 “相关的地址+SessionDemo1”,在这里输入的是http://localhost:8080/CookieDemo01/SessionDemo1

当输入后按回车,虽然idea控制台和浏览器都没有输出显示什么内容,但是我们可以从浏览器的控制台中找到发送的数据,第一次访问的时候,请求头没有任何的Cookie信息,但是响应头会有Cookie的信息,并且带着JSESSIONID

当我们然后再在浏览器中输入 “相关的地址+SessionDemo2”,在这里输入的是http://localhost:8080/CookieDemo01/SessionDemo2,同样我们也可以从浏览器的控制台中找到接受的数据.
第二次访问的时候,请求头会有的Cookie信息,并且带着JSESSIONID(并且和刚才响应头的JSESSIONID是一样的)。但是响应头没有会有Cookie的信息。

⑦.当输入http://localhost:8080/CookieDemo01/SessionDemo2后,同时idea控制台也有所输出

  1. 实现原理
    Session的实现是依赖于Cookie的
    服务器在一次会话范围内,多次获取Session对象是同一个

转载:https://blog.csdn.net/qq_44096670/article/details/105867016
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场