Session会话技术浅谈

1.Session会话
用户打开浏览器后,在浏览器上打开了很多链接,直到用户关闭浏览器,这一个过程都属于会话。服务器可以为每一个用户创建一个会话对象。Session对象有服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
2.Session和Cookie的区别

  • Cookie是把用户的数据写给用户的浏览器
  • Session技术把用户的数据写到用户独占的Session中
    上一篇已经介绍了 Cookie,Cookie 可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些 Cookie,如果 Cookie 很多,则无形增加了客户端与服务端的数据传输量,而 Session 的出现正是为了解决这个问题。
    3.Session实例
    下面用两个代码实例来帮助我们理解和使用Session
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class SessionTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决乱码问题:
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        //Session由服务器自动创建,如何获得session

        //HttpSession 得到的sessioin对象
        HttpSession session = req.getSession();

        //得到sessionID,一次会话,一个seesionID;
        String id = session.getId();
        resp.getWriter().println("获得的sessionId:\n"+id);


        String name = "muzili";
        //向session中存入一个值;
        session.setAttribute("name",name);
        resp.getWriter().println("存入信息成功:"+name);

    }

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

//获得session存入的值
public class SessionTest2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决乱码问题:
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        //获得
        HttpSession session = req.getSession();
        System.out.println("得到的SessionID:"+session.getId());


        String name = (String) session.getAttribute("name");
        resp.getWriter().println("得到的session存入的信息"+name)
        
        //session.invalidate();//通过代码注销会话

    }
}

配置web.xml文件

<?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">
     <servlet>
    <servlet-name>SeesionTest</servlet-name>
    <servlet-class>com.westos.serlvet.SessionTest</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>SeesionTest2</servlet-name>
        <servlet-class>com.westos.serlvet.SessionTest2</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>SeesionTest</servlet-name>
        <url-pattern>/session</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>SeesionTest2</servlet-name>
        <url-pattern>/session2</url-pattern>
    </servlet-mapping>
 </web-app>

然后再启动Tomcat,成功后,打开浏览器,输入指令http://localhost:8081/webtest/session,出现以下界面

在这里插入图片描述

接着输入指令http://localhost:8081/webtest/session2,出现以下界面
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值