• request与session的区别


    request对象和session对象的最大区别是生命周期与范围。

    request

    request范围较小一些,只是一个请求。

    request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,request里边的内容也将被释放点掉。

    就是你在页面上的一个操作,request.getParameter()就是从上一个页面中的url、form中获取参数。

    例如:js

    function goback(){
        var jfssq = $("#jfssq").val();
        var qxdm = $("#qxdm").val();
        window.location.href='/GHGL/shuiwu_sys/tjbb-cjbbgoback?sjq='+jfssq+'&qxdm='+qxdm;
    
    }

    java

    @RequestMapping("shuiwu_sys/tjbb-cjbbgoback")
        public String toTjbbcjbbgoback(HttpServletRequest request) {
            String sjq = request.getParameter("sjq");
            request.setAttribute("sjq", sjq);
            return "shuiwu_sys/tjbb-cjbb";
        }

    a.jsp

    <input type="hidden" value="<%= request.getAttribute("sjq")%>" id="sjq" />    

    如上第一次返回到 a.jsp 是可以获得参数值的,当再次刷新这个页面就没有这个参数了。

    session

    而session的生命周期也是针对一个客户端,但是却是在别人设置的会话周期内(一般是20-30分钟),session里边的内容将一直存在,即便关闭了这个客户端浏览器 session也不一定会马上释放掉的。

    @RequestMapping("shuiwu_sys/tjbb-cjbbgoback")
        public String toTjbbcjbbgoback(HttpServletRequest request) {
            String sjq = request.getsession.getParameter("sjq");
            request.getSession.setAttribute("sjq", sjq);
         return "shuiwu_sys/tjbb-cjbb";
        }

     b.jsp

    <input type="hidden" value="<%= request.getSession.getAttribute("sjq")%>" id="sjq" />    

    当请求后多次请求 b.jsp页面还是可以得到这个参数值

    总结

    1、资源

    request占用资源比较少,安全性也比较高,可是相对来说缺乏持续性。

    session则相对来说对资源的消耗会大点,安全性相对来说也会稍微低点,可是它能实现比如会话跟踪技术。

    2、生命周期

    当连接超时或浏览器关闭时session才销毁。

    所以说作用的范围是不一样,session也就可以跟踪用户的状态。login的变量应该放在session中

     session相当于是一个客户端的全局变量,生命周期是一次会话连接,request是某一次访问的局域变量,生命周期只是一次请求。

    3、作用范围

     A机与服务器第一次访问时设置session.setAttribute("aaa")="ComputerA".则在A机访问继续访问的任意一个页面都可以取的session.getAttribute("aaa")的值是ComputerA;  

    request仅限于2个相邻的页面

    美好生活
  • 相关阅读:
    MySQL 数据库报错 Too many connections
    C# 字符串倒序输出
    C# Guid.NewGuid()
    C# MongoDB 查询所有集合名
    MongoDB 错误be UuidLegacy, not UuidStandard
    jstree 反选,测试400条数据左右有点卡
    js Date对象日期格式化
    敏捷开发-Scrum
    linux centos7 和 windows下 部署 .net core 2.0 web应用
    部署SSL站点 IIS+asp.net
  • 原文地址:https://www.cnblogs.com/ssbydk/p/10237398.html
Copyright © 2020-2023  润新知