JAVA WEB 作用域之间的区别

JAVA WEB 作用域

1、page属性范围(pageContext)

  a、在一个页面设置的属性,跳转到其他页面就无法访问了(包括重定向和)。

  示例:pageScopeDemo01.jsp
    <%@ page import="java.util.*" language="java" contentType="text/html; c harset=UTF-8" pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>page属性范围(pageContext)</title>

    </head>

    <body>

    <%

       //此时设置的属性只能够在本页中取得

       pageContext.setAttribute("name","英雄联盟");//设置属性

       pageContext.setAttribute("date",new Date()); //设置属性

       //注意:这里设置的两个属性的名字分别为name和date,这两个是字符串类型的数据,但对应的属性值英雄联盟和new Date这个两个值却不是字符串类型,而是两个Object类型的数据 。

    %>

    <%

       //取得设置的属性

       String refName = (String)pageContext.getAttribute("name");

       //由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型

       Date refDate = (Date)pageContext.getAttribute("date");

    %>

    <h1>姓名:<%=refName%></h1>

    <h1>⽇日期:<%=refDate%></h1>

    </body>

    </html>

  b、这里说一下,如果需要检验的,使⽤用jsp:forward标签进行服务器器端跳转。

  示例:<jsp:forward page="地址.jsp" />

  c、这里的跳转页面,包括重定向(客户端的URL发生改变)和转发(服务器端的URL不发生改变,进行服务器器端跳转)。


 

2、request属性范围

  a、request属性范围表示在一次服务器跳转中有效,只要是服务器跳转(转发或派发),则设置的 request属性可以一直传递下去。

 


 

3、session属性范围

  a、session设置的属性不管如何跳转,都可以取得的。当然,session只针对一个用户

  b、在第一个页面上设置的属性,跳转(服务器跳转/客户端跳转)到其他页面之后,其他的页面依然可以取得第一个页面上设置的属性。

  c、这里不管是客户端跳转还是服务器端跳转都可以访问第一个页面设置的session属性,条件是只限制于当前用户。如果,此时新开了一个浏览器,则无法访问session的属性值。

 


 

4、application属性范围

   a、application属性范围是在服务器上设置的一个属性,所以一旦设置之后任何用户 都可以浏览到此属性。

   b、如果把Tomcat服务器先关闭后再重新启动,打开浏览器窗口运行,直接去获取 application属性设置的值,是无法获取的。

 

 

                                                            笔者:香草玥儿

                                                            2016-10-19 17:17:02

 

本文为作者原创,不可用于商业用途,转载请注明出处
原文地址:https://www.cnblogs.com/CHENCHAO7367/p/cc_com_javaweb_scope.html