在JSP中,对象有四种范围:page、request、session和application

page范围

            所谓的page范围指单一的JSP页面范围,page范围内的对象只能在创建对象的页面中访问。在page范围内可以使用pageContext对象的setAttribute()和getAttribute()方法来访问具有这种范围类型的对象。page范围内的对象在客户端每次请求JSP页面时创建,在服务器发送响应或请求转发到其它的页面或资源后失效。
例子:
testOne.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'testOne.jsp' starting page</title> <%
String name="page";
pageContext.setAttribute("name", name);
%>
</head>
<body>
<strong>
testOne:<%=pageContext.getAttribute("name") %>
</strong>
<br/> <%
pageContext.include("testTwo.jsp");
%>
</body>
</html>

testTwo.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testTwo.jsp' starting page</title>
</head>
<body>
<strong>
testTwo:<%=pageContext.getAttribute("name") %>>
</strong>
</body>
</html>
查看运行结果:

注:pageContext对象本身也属于page范围,具有page范围的对象被绑定到pageContext对象中.




request 对象范围

相对于在page范围内的对象与pageContext绑定在一起 ,request范围内的对象则与客户端用户的请求绑定在一起,即request范围内的对象在页面转发或包含中有效。在该范围内的对象同样可以通过调用request对象的setAttribute()与getAttribute()方法找到,同时在调用forward()方法转向的页面或者调用include()方法包含的页面时,都可以访问request范围内的对象。




session对象范围

JSP容器为每一次会话创建一个session对象,在会话期间,只要将对象绑定到session中,对象的范围就为session。在会话有效期间,都可以访问session范围内的对象。




application 对象范围

相对于session范围针对一个会话,application的范围则面对整个Web应用程序,即当服务器启动后就会创建一个application对象,被所有用户 所共享,当具有application范围的对象绑定到JSP的application对象中时,在Web应用程序的运行期间,所有的页面都可以访问appliction范围内的对象,其范围最大.
testOne.jsp




JSP 对象的作用范围的更多相关文章

  1. jsp内置对象的作用范围

    内置对象的作用范围是指每个内置对象的某个实例在多长时间和多大的范围中有效,即在什么样的范围内可以有效地访问同一个对象实例. 在javax.servlet.jsp.PageContext的类中定义了4个 ...

  2. JSP的域对象的作用范围

    <%-- Created by IntelliJ IDEA. User: tT丶 Date: 2017-12-12 Time: 14:53 To change this template use ...

  3. EL四大作用域 9个jsp对象有效范围 及 对应的类

    java中request,session,application的作用范围 page,request,session,application四者的作用范围: page的作用范围是当前页面:对应El表达 ...

  4. JavaWeb中四大域对象的作用范围

    JavaWeb的四大作用域为:PageContext,ServletRequest,HttpSession,ServletContext: PageContext域:作用范围是整个JSP页面,是四大作 ...

  5. jsp对象 指令 动作

    转载来源:https://blog.csdn.net/u010897406/article/details/49618413 jsp九大内置对象:1>out 向客户端输出数据,字节流.如out. ...

  6. 域对象的作用范围 & 请求的转发和重定向

    1. 和属性相关的方法: ①. 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name): ...

  7. JSP对象和JavaBean

    1. JSP 客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的,如下图所示: Http请求头对应的内容如下: 对应方 ...

  8. JSP 九个隐含JSP对象

    输入输出对象:request.response.out. 作用域通信对象:session.application.pageContext servlet对象:page.config 错误对象:exce ...

  9. JSP页面以及JSP九大隐式对象

    €JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. €JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

随机推荐

  1. Redis从入门到精通:中级篇

    原文链接:http://www.cnblogs.com/xrq730/p/8944539.html,转载请注明出处,谢谢 本文目录 上一篇文章以认识Redis为主,写了Redis系列的第一篇,现在开启 ...

  2. 安卓高级6 CoordinatorLayout

    原作者大神地址:http://blog.csdn.net/huachao1001/article/details/51554608 曾在网上找了一些关于CoordinatorLayout的教程,大部分 ...

  3. iOS 中隐藏UITableView最后一条分隔线

    如何优雅的隐藏UITableView中最后一条分割线? 这个问题是很常见,却又不太容易解决的. 可能通常的做法都是隐藏UITableView的分割线,自定义一条. 最近在使用弹出菜单的时候,同样遇到了 ...

  4. 1小时学会JQuery

    ---------------------------------------------------------------------------------------------------- ...

  5. ORACLE EBS 表空间控制

    --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741824Bytes S ...

  6. iOS开发之UIWebView的常见一些用法

    虽然现在Xcode8已经开始使用WKWebView这个框架进行网页展示,但是UIWebView也有一些常用的方法需要知道,下面就简单展示一下,仅供大家参考 相关知识:1.设置背景透明:2.加载本地HT ...

  7. Android动态换肤(二、apk免安装插件方式)

    在上一篇文章Android动态换肤(一.应用内置多套皮肤)中,我们了解到,动态换肤无非就是调用view的setBackgroundResource(R.drawable.id)等方法设置控件的背景或者 ...

  8. Ubuntu15.10 安装OpenCV3.1

    wget https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.1.0/opencv-3.1.0.zip/downloa ...

  9. python 子包引用父包和其他子包

    python 子包引用父包和其他子包 python引用子目录很简单, 里面放个__init__.py就可以了. 如何在子目录里面引用其他目录(父目录,爷目录和同辈分目录)呢? 例如: python有项 ...

  10. 06 Activity 4中启动模式

    前言:改变Activity的启动模式可以清单文件AndroidManifest的Activity标签添加属性android:launchMode="standard"中修改如下图: ...