zoukankan      html  css  js  c++  java
  • 8.用户注销

    <a href="/LogoutServlet">注销</a>

    当用户点击注销的时候,前台会向服务器的LogoutServlet发送请求,然后后台执行注销逻辑

    package cn.bingou.web;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LogoutServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            // 执行注销逻辑
            // 销毁用户绑定的session
            req.getSession().invalidate();// 请求重定向
            resp.sendRedirect(req.getContextPath()+"/index.jsp");
        }
    
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            doGet(req, resp);
        }
    
    }

    注销就是将服务器端存储的用户的session删除。

    Session概述
            Session是将会话中产生的数据保存在了服务器端, 是服务器端技术

            Session是一个域对象
                setAttribute(String name, Object value);
                getAttribute(String name);
                removeAttribute(String name)
                getAttributeNames()
            
                生命周期:
                    当第一次调用request.getSession()方法时创建Session

                    超时: 如果一个Session超时30分钟(可以在web.xml中来修改, 在根目录下通过<session-config>来配置)未被使用, 则认为Session超时, 销毁session

                    自杀: 当调用session.invalidate()方法的时session立即销毁!!

                    意外身亡: 当服务器非正常关闭时, 随着应用的销毁, session销毁. 当服务器正常关闭, 则未超时的session将会以文件的形式保存在tomcat服务器work目录下, 这个过程叫做session的钝化. 当服务器再次启动时, 钝化着的session还可以恢复过来, 这个过程叫做session的活化。
                    
                作用范围: 当前会话范围
                    
                主要功能: 保存当前会话相关的数据
        -----------------------------------------------
    Session的原理
            Session是基于一个JSESSIOINID的Cookie工作的
            -------------------------------------------
            怎么解决浏览器关闭之后, 无法使用浏览器关闭之前的Session??
                (注意: 在访问一个jsp时, 默认一上来就会创建session!!)
            -------------------------------------------
            禁用Cookie的情况下使用Session
                URL重写: 就是在传入的URL地址后拼接JSESSIOINID返回一个新的地址, 用来在禁用Cookie的情况下用url地址来携带JSESSIOINID
                    response.encodeURL(String url);
                    //--如果是普通的地址用这个方法
                    response.encodeRedirectURL(String url);
                    //--如果地址是用来进行重定向的,用这个方法

  • 相关阅读:
    ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决
    asp.net core 3 Swagger 添加 Authorization [Bearer token]
    asp.net core3 发布到IIS
    asp.net core 3.1 使用log4net
    asp.net core 3 跨域
    解决'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件的方法
    ReSharper 安装没有提示功能
    Python3 安装MySQL驱动
    win10 安装 Python 和 pip 详解
    Win10下 80端口被system(pid=4)占用的解决方法
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9772382.html
Copyright © 2011-2022 走看看