Session入门案例
- 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。
- 入门案例:
(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控制台也有所输出
- 实现原理
Session的实现是依赖于Cookie的
服务器在一次会话范围内,多次获取Session对象是同一个
转载:https://blog.csdn.net/qq_44096670/article/details/105867016
查看评论