精华内容
下载资源
问答
  • 同一网站,同一客服端,均共享此对象的数据,直到服务器关闭或者重启,应用对象中的数据失效。列如:统计当前在线人数。 ② 会话对象:HttpSession(session) 同一网站,同一客服端,可以共享此对象的数据,直到...

    共享数据,应用对象,请求对象,页面对象,会话对象

    web层共享数据的范围:
    ①   应用对象:ServletContext(application)
    同一网站,同一客服端,均共享此对象的数据,直到服务器关闭或者重启,应用对象中的数据失效。列如:统计当前在线人数。
    
    ②   会话对象:HttpSession(session)
    同一网站,同一客服端,可以共享此对象的数据,直到浏览器关闭,会话中的数据失效。列如:登录用户信息,购物车
    
    ③		请求对象: HttpServletRequest(request)
    在一次请求中有效,列如:保存请求过程中的错误信息
    
    ④		页面对象:PageContext
    
    作用范围:①  >  ②   > ③  >④
    
    共享数据的基本方法:
    setAttribute()
    getAttribute()
    removeAttribute()
    
    

    eg:获取属性值一般在其他页面获取,所以这里注释掉了。
    在这里插入图片描述
    使用场景实例:
    在这里插入图片描述

    在这里插入图片描述
    下一篇是对这些存储数据的使用即页面跳转。

    展开全文
  • 主要用来保存登录信息,比如登录某个网站市场可以看到“记住密码”这就是通过cookie中存入一段辨别用户身份的数据来实现的sessionStorage:会话,是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。...

    基本概念

    1. cookie:主要用来保存登录信息,比如登录某个网站市场可以看到“记住密码”这就是通过cookie中存入一段辨别用户身份的数据来实现的
    2. sessionStorage:会话,是可以将一部分数据在当前的会话中保存下来,刷新页面数据依旧存在。但是页面关闭时,sessionStorage中的数据就会被清空。
    3. localStorage:是HTML5标准找那个新加入的技术,当然早在IE6时代就有一个userData的东西用于本地存储,当时考虑到浏览器的兼容性,更通用的方案是flash,如今localStorage被大多数浏览器所支持。localStorage中的键值对总是以字符串的形式存储。localStorage类似sessionStorage,但其区别在于:存储在localStorage 的数据可以长期保留;
    4. 补充:同源:协议相同/域名相同/端口相同

    区别

    1. 存储大小

    cookie:一般不超过4k

    sessionStorage:5M甚至更多

    localStorage:5M甚至更多

    2. 数据有效期

    cookie:一般由服务器生成,可以设置失效时间;若没有设置时间,关闭浏览器cookie失效,如果设置了时间,cookie就会存储在硬盘中,过期失效

    sessionStorage:仅在当前浏览器窗口关闭之前有效,关闭页面或者浏览器会被清除

    localStorage:永久有效,窗口或者浏览器关闭也会一直保存,除非手动永久删除

    3. 作用域

    cookie:在所有同源窗口中都是共享的

    sessionStorage:在同一个浏览器窗口是共享的(不同浏览器,即使是统一页面也不共享)

    localStorage:在所有同源窗口中共享

    4. 通信

    cookie:cookie在浏览器和服务器之间来回传递,如果使用cookie保存过多数据会造成性能问题

    sessionStorage:仅在客户端(浏览器)中保存,不参与服务器的通信

    localStorage:仅在客户端(浏览器)中保存,不参与服务器的通信

    5. 应用场景

    cookie:判断用户是否登录过网站,以便实现下次自动登录或记住密码;保存事件信息

    sessionStorage:敏感账号一次性登录,单页面用的较多

    localStorage:用于长期登录,适于长期保存在本地的数据

    展开全文
  • page:页面作用域,仅限当前页面,页面跳转或者页面关闭后都失效。 request:请求作用域,从http请求到相应的整个过程,也可以是跨越forward前后的两个页面。 session:会话作用域,用户首次访问浏览器会产生一个...

    先来总结一下 jsp 4大作用域的生命周期吧(scope)(PS:如有总结不到位或有误的地方还请指点)

    page:页面作用域,仅限当前页面,页面跳转或者页面关闭后都失效。

    request:请求作用域,从http请求到相应的整个过程,也可以是跨越forward前后的两个页面。

    session:会话作用域,用户首次访问浏览器会产生一个会话,这个会话直到浏览器关闭或者会话超时才会失效,也就是说从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

    application:应用作用域,从应用启动到应用关闭,生命周期最长,如果不进行收到删除会一直存在。

    总结:application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他人的数据。按照生命周期时间长短排序:page<request<session<application

    下面就来总结一下action获取4大作用域的4种方法

    1.实现ServletRequestAware接口通过IOC机制注入request,IoC方式(即使用ServletRequestAware拦截器)(此方法最麻烦,不推荐使用)

    public class TestAction extends ActionSupport implements ServletRequestAware {
    
    	private static final long serialVersionUID = 1L;
    
    	private HttpServletRequest request;
    	private HttpSession session;
    	private ServletContext application;
    
    	public String execute() {
    		request.setAttribute("r1", "r1");
    		session.setAttribute("s1", "s1");
    		application.setAttribute("a1", "a1");
    		return SUCCESS;
    	}
    
    	@Override
    	public void setServletRequest(HttpServletRequest request) {
    		this.request = request;
    		this.session = request.getSession();
    		this.application = session.getServletContext();
    	}
    
    }


    2.实现Servlet Aware接口通过IOC机制注入request(此方法与第一种类似)

    public class TestAction extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
    
    	private static final long serialVersionUID = 1L;
    
    	private Map<String, Object> request;
    	private Map<String, Object> session;
    	private Map<String, Object> application;
    
    	public String execute() {
    		request.put("r1", "r1");
    		session.put("s1", "s1");
    		application.put("a1", "a1");
    		return SUCCESS;
    
    	}
    
    	@Override
    	public void setRequest(Map<String, Object> request) {
    		this.request = request;
    	}
    
    	@Override
    	public void setSession(Map<String, Object> session) {
    		this.session = session;
    	}
    
    	@Override
    	public void setApplication(Map<String, Object> application) {
    		this.application = application;
    	}
    
    }


    3.使用ActionContext类(此方法与servlet解耦,推荐使用)

    @SuppressWarnings({"rawtypes","unchecked" })
    public class TestAction extends ActionSupport {
    	private static final long serialVersionUID = 1L;
    
    	private Map request;
    	private Map session;
    	private Map application;
    
    	public TestAction() {
    		request = (Map) ActionContext.getContext().get("request");
    		session = ActionContext.getContext().getSession();
    		application = ActionContext.getContext().getApplication();
    	}
    
    	public String execute() {
    		request.put("r1", "r1");
    		session.put("s1", "s1");
    		application.put("a1", "a1");
    		return SUCCESS;
    	}
    
    }


    4.使用ServletActionContext类(此方法与servle耦合)

    public class TestAction extends ActionSupport {
    
    	private static final long serialVersionUID = 1L;
    
    	private HttpServletRequest request;
    	private HttpSession session;
    	private ServletContext application;
    
    	public TestAction() {
    		request = ServletActionContext.getRequest();
    		session = request.getSession();
    		application = session.getServletContext();
    	}
    
    	public String execute() {
    		request.setAttribute("r1", "r1");
    		session.setAttribute("s1", "s1");
    		application.setAttribute("a1", "a1");
    		return SUCCESS;
    	}
    }
    


    展开全文
  • 一、四大作用域 名称 作用域 ...也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后失效。 2、request: 在当前请求中有效。request可以通过setAtt...

    一、四大作用域

    名称 作用域
    page 当前页面有效
    request 当前请求中有效
    session 当前会话中有效
    application 当前应用程序有效

    1、page: 只在当前页面有效。也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后失效。

    2、request: 在当前请求中有效。request可以通过setAttribute()方法实现页面中的信息传递,也可以通过forward()方法进行页面间的跳转,需要注意的是request是转发不是重定向,转发相对于浏览器来说是透明的,也就是无论页面如何跳转,地址栏上显示的依旧是最初的地址。

    3、session: 当前会话中有效。当一台电脑的同一个浏览器对服务器进行多次访问时,在这的多次访问之间传递的信息就是sessio作用域的范围。它从浏览器发出第一个HTTP请求即可认为会话开始,到会话结束之间的范围。

    4、application: 在当前应用程序中有效。也就是当服务器开始到服务器结束这段时间,application作用域中存储的数据都是有效的,同样可以通过setAttribute赋值和getAttribute取值。

    二、九大内置对象

    名称 对象 类型 作用域
    out 输出对象 javax.servlet.jsp.JspWriter page
    config 配置对象 javax.servlet.ServletConfig page
    page 页面对象 javax.lang.Object page
    response 响应对象 javax.servlet.SrvletResponse page
    pageContext 页面上下文对象 javax.servlet.jsp.PageContext page
    exception 例外对象 javax.lang.Throwable page
    request 请求对象 javax.servlet.ServletRequest request
    session 会话对象 javax.servlet.http.HttpSession session
    application 应用程序对象 javax.servlet.ServletContext application

    1、out:
    out对象是JspWriter类的实例,是向客户端输出内容常用的对象 。作用域为page(页面执行期)。

    <%out.print("Hello"); %>
    

    2、config:
    config 对象的主要作用是取得服务器的配置信息。config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。

    3、page:
    page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

    4、response:
    response对象代表的是客户端的响应,主要是将JSP容器处理过的对象传回到客户端。

     <%
       response.addCookie(cokkie);
       response.setContentType("type");
       response.setCharacterEncoding("utf-8");
       response.sendRedirect("重新定位的页面");
       %>
    

    response的常用方法有addCookie(Cookie cookie)向客户端添加cookie,serContentType (String type) 设置HTTP响应的contentType类型,setCharacterEncoding (String charset) 设置响应所采用的字符编码类型,sendRedirect (String location) 将请求重新定位到一个新的地址上,这时地址栏上的地址会改变。

    5、pageContext:
    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

    <%
       Object obj = new Object();
       pageContext.getRequest();
       pageContext.getResponse();
       pageContext.getSession();
       pageContext.getOut();
       pageContext.setAttribute("key",obj);
       pageContext.getAttribute("key");
       pageContext.include("资源地址");
       %>
    

    pageContext的常用方法有getRequest()获取request对象,getResponse()获取response对象,getSession()获得session对象,getOut()获取out对象,setAttribute(String key,Object value)保存属性,getAttribute(String key)获取属性,include(“url”)请求指定的资源,并且将目标资源的响应结果包含在调用页面的响应中。

    6、exception:
    exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

    7、request:
    该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)

     <%
       Object obj = new Object();
           request.getParameter("uname");
           request.getParameterValues("rid");
           request.setCharacterEncoding("UTF-8");
           request.getRequestDispatcher("目标页面").forward(request,response);
       %>
    

    request的常用方法有getParameter(String name)根据表单组件名称获取页面提交数据,getParameterValues(String name)获取一组以相同名称命名的表单组件提交的数据,setCharacterEncoding(String charset)在调用getParameter()方法前进行设定,用于解决中文乱码,getRequestDispatcher(String path)返回一个javax.servlet.RequestDispatcher对象,该对象的forward()方法用于转发请求。

    8、session:
    session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。

    <%
       Object obj = new Object();
       session.setAttribute("key",obj);
       session.getAttribute("key");
       session.setMaxInactiveInterval(100);
       session.getMaxInactiveInterval();
       session.getId();
       session.removeAttribute("key");
       session.invalidate();
       %>
    

    session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使用对象类型。session的常用方法有setAttribute(String key,Object value)以key/value的形式将对象保存到session中,getAttribute(String key)通过key值获取session中保存的value,invalidate()强制session对象失效,getId()获取sessionid,setMaxInactiveInterval(int interval)设置session的非活动时间,getMaxInactiveInterval()获取session的有效非活动时间,removeAttribute(String key)删除session中对应key的value值。

    9、application:
    application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
    实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

      <%
       Object obj = new Object();
       application.setAttribute("key",obj);
       application.getAttribute("key");
       application.getRealPath("路径名");
       %>
    

    application常用方法有setAttribute (String key,Object value) 以key/value的形式将对象存储到application中,getAttribute (String key) 通过key获取application中存储的对象,getRealPath (String path) 返回相对路径的真实路径。

    展开全文
  • JSP内置对象之域对象

    2017-03-06 20:44:58
    属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话,在此期间会话不会失效(要在同一浏览器中) 4、application: 属性的作用范围仅限于当前Web应用(范围最大,只有关闭Tomcat服务器才能失效...
  • 谈谈web登录,sso

    2019-06-28 16:44:02
    在浏览器不关闭时,页面随意切换cookie值一直都在,但是关闭当前浏览器后重新打开页面,不会读取上次cookie的值,cookie重新为空. cookie生命周期默认为浏览器会话期间,驻留内存,关闭浏览器cookie就没了,设置...
  • js 缓存数据的方式

    2021-01-31 11:23:32
    如果仅仅是当前页面不刷新可以使用, 那么使用 js 变量或者向 dom 节点上存储自定义属性数据 (例如 data-xx) 都是可以的 如果想要页面刷新仍然可以获取数据 cookie 分为会话 cookie (浏览器关闭失效) 和永久 ...
  • 2021-05-07

    2021-05-07 16:39:38
    当前会话有效,关闭页面或浏览器失效 数据大小容量 4KB左右 一般5MB 与服务器通信 每次请求都会携带到HTTP请求头中,携带数据过大会影响性能。 仅仅在客户端浏览器保存,不参与服务器通信 ...
  • 2、sessionStorage的有效期是仅保持在当前页面关闭当前会话页或者浏览器后就会失效 3、localStorage的有效期是在不进行手动删除的情况下是一直有效的 二、存储的大小不同 1、cookie的存储是4kb左右,存储量较小...
  • 特性 Cookie localStorage sessionStorage 数据的生命期 一般由服务器生成,可设置... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为5MB 与服务器端通信 ...
  • 浏览器存储

    2018-08-01 10:20:10
    Cookie、session、localStorage、sessionStorage 1、三者的异同 特性 ... 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效... 仅在当前会话下有效,关闭页面或浏览器后被...
  • 代表在当前页面的作用域范围内有效,页面发生跳转,则作用域失效。 2、request: 在一次请求的作用域范围内有效,地址不发生改变。(此作用域最为常用) 3、session: 在一个会话的作用域范围内有效(一个浏览器只要...
  • 参考地址 ...sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。 存放数据大小: cookie:4KB左右 localStorage和sessionStorage:可以保存5MB的信息。 http请求: cookie...
  • 请描述一下cookie、sessionStorage和localStorage的区别 特性 Cookie localStorage sessionStorage 数据的生命期 一般由服务器生成,可... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右
  • page:属于页面层次,当前页面有效,仅限jsp文件; request:属于请求层次,在一次请求中都有效, session:属于会话层次,是用户全局变量,在整个会话期间都有效; application:属于应用层次,是程序全局变量,...
  • 特性 Cookie localStorage sessionStorage ...仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 20M 5M 存放数据位置 1:设置过期时间失效(只要设置了过期时间cookie就会存储在硬盘...
  • cookie/storage

    2019-05-30 21:37:45
    特性 Cookie localStorage sessionStorage ... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4k左右 一般为5MB 一般为5MB 与服务器端通信 每次都会携...
  • sessionStorage:仅在当前网页会话下有效,关闭页面或浏览器后就会被清除 localStorage:除非手动清除,否则永久保存 2. 存放数据大小: cookie:4KB左右 localStorage和sessionStorage:可以保存5MB的信息。 http...
  • Cookie、 LocalStorage 与 SessionStorage区别与用法 特性 Cookie LocalStorage sessionStorage ...仅在当前会话下(同一窗口或标签页)有效,关闭页面或浏览器后被清除 大小 4K左右 一般为5MB...
  • 特性 Cookie localStorage sessionStorage ... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为5MB 与服务器端通信 每次都会携带在HTTP头中,...
  • pageContextpage域-指当前页面,在当前jsp页面有效,跳到其它页面失效 requestrequest域-指一次请求范围内有效,从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward(请求转发)方式跳转多个...
  • cookie,localstorage,sessionstorage 都可以用作本地存储一些信息,三者之间的异同如下 cookie localStorage sessionStorage 数据的声明周期 ... 仅在当前会话下有效,关闭页面即被清除 ...
  • 特性 Cookie localStorage sessionStorage ...一般由服务器生成,是可以设置失效时间。如果在浏览器端生成Cookie...仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为5MB 一般为5MB ...
  • 特性 Cookie localStorage sessionStorage ... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为5MB 与服务器端通信 每次都会携带在HTTP头中,...
  • 特性 Cookie localStorage sessionStorage ... 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为5MB或更大 与服务器端通信 每次都会携带在HTTP...
  • JSP学习--常用作用域

    2015-07-30 22:51:36
    page:当前页面,也就是只要跳到别的页面就失效了 request:一次会话,简单的理解就是一次请求范围内有效 session:浏览器进程,只要当前页面没有被关闭(没有被程序强制清除),不管怎么跳转都是有效的 ...
  • sessionStorage:仅在当前网页会话下有效,关闭页面或者浏览器后会被清除。 存放数据大小: cookie:4kb localStorage 和sessionStorage:可以保存5MB左右的信息 cookie:每次会携带在HTTP头中,使用cookie保存过多...
  • page:当前页面,也就是只要跳到别的页面就失效了request:一次会话,简单的理解就是一次请求范围内有效session:浏览器进程,只要当前页面没有被关闭(没有被程序强制清除),不管怎么跳转都是有效的application:...
  • 今天学习了下JSP四种属性范围。...session:浏览器进程,只要当前页面没有被关闭(没有被程序强制清除),不管怎么跳转都是有效的 application:服务器,只要服务器没有重启(没有被程序强制清除),数据就有效

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

关闭当前页面会话失效