• 如何获得 request, "request.getSession(true).setAttribute("a",a);"与“request.setAttribute("a",a);”区别


    protected ServletContext getServletContext() { return ServletActionContext.getServletContext();
    }

    protected HttpSession getSession(boolean paramBoolean) { return ServletActionContext.getRequest().getSession(paramBoolean);
    }

    protected HttpSession getSession() { return ServletActionContext.getRequest().getSession();
    }

    protected HttpServletRequest getRequest() { return ServletActionContext.getRequest();
    }

    protected HttpServletResponse getResponse() { return ServletActionContext.getResponse();
    }
    HttpServletRequest request = ServletActionContext.getRequest();

    getSession()是返回当前用户的会话对象,参数的区别在于     
      参数为true,则如果“当前用户的会话对象”为空(第一次访问时)则创建一个新的会话对象返回   
      参数为false,则如果“当前用户的会话对象”为空,则返回null(即不自动创建会话对象)
    注意request.getSession() 等同于 request.getSession(true),除非我们确认session一定存在或者sesson不存在时明确有创建session的需要,否则请尽量使用request.getSession(false)。

    request.setAttribute一次传参数,速度快,缺点是参数只能取一次。
    request.getSession().setAttribute保存参数,将参数放入后主要不清,就一直在,随时可以取来用。缺点是比较占用资源。
    setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。

    1、request.getSession()可以帮你得到HttpSession类型的对象,通常称之为session对象session对象的作用域为一次会话,通常浏览器不关闭,保存的值就不会消失,当然也会出现session超时。服务器里面可以设置session的超时时间,web.xml中有一个session time out的地方,tomcat默认为30分钟
    2、session.setAttribute("key",value);是session设置值的方法,原理同java中的HashMap的键值对,意思也就是key现在为“user”;存放的值为userName,userName应该为一个String类型的变量吧?看你自己的定义。
    3、可以使用session.getAttribute("key");来取值,以为着你能得到userName的值。
    4、注意:getAttribute的返回值类型是Object,需要向下转型,转成你的userName类型的,简单说就是存什么,取出来还是什么。
    5、setAttribute和getAttribute就是基于HashMap的put方法和get方法实现的,一般叫键值对或者key-value,即通过键找到值。例如你的名字和你的人的关系,只要一叫你的名字,你就会喊到,通过你的名字来找你的人,简单说这就是键值对的概念。
  • 相关阅读:
    渗透测试-实用版
    微观传输原理:协议、端口、套接字接口
    如何暂停和继续运行Linux程序
    QUIC:基于udp的传输新技术
    ops运维工具
    日志监控工具安装:windows上安装elk
    python实现图片隐藏信息技术
    让网站不去请求favicon.ico图标
    nginx 内核优化
    nginx 模块介绍
  • 原文地址:https://www.cnblogs.com/yuhoukongshan/p/5822577.html
Copyright © 2020-2023  润新知