`
ianylb
  • 浏览: 74410 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

回归JSP基础:重新理解请求作用域

    博客分类:
  • Jsp
阅读更多
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止.
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:会话超时,或者服务器端强制使会话失效.
request:请求作用域,就是客户端的一次请求.
page:一个JSP页面.

以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward以及filter).举个简单的例子:
jsp1.jsp
<jsp:useBean id="beanID" class="xxx .xxx.BeanClass" scope="request" />
<jsp:include page="jsp2.jsp" />
-----------
jsp2.jsp
<jsp:getProperty name="beanID" property="sample" />

运行jsp1.jsp可以正常显示数据,因为作用范围是request,相当于调用了request.setAttribute()方法,

jsp2页通过request.getAttribute来获得这个bean.如果把request改为page,就会抛出NullPointerExceptioin.

一个请求可以跨好几个JSP(include和forword)和Servlet(如filter).不过这里有一个需要注意的就是区别<jsp:include> 和<%@ include %>.如果上面的<jsp:include page="jsp2.jsp" />改为<%@ include file="jsp2.jsp" %>,即使scope为page也是正确的,<%@ include %>是编译时包含,<jsp:include>是运行时包含.前者就相当于宏,编译时替代,后者相当于函数,运行时返回.


分享到:
评论
1 楼 xfei6868 2012-06-10  
标题让我感兴趣了,但是进来一看原来是这些内容。

我最近在思考的一个问题是:request的作用域本身跟线程是什么关系,在即将到来的nio或者是servlet3中的异步中这种关系是否会发生变化这样的问题。

相关推荐

    JSP内置对象及四种作用域

    在JavaServer Pages ...通过JSP的内置对象和理解不同作用域,开发者能够更好地控制和管理服务器与客户端之间的数据交互,从而实现更复杂的功能。在实践中,结合使用这些概念,可以构建出功能丰富的动态Web应用程序。

    JSP中的常见的四种作用域

    JSP中的四种作用域 JSP 中的四种作用域是指 page、request、session 和 application,这四种作用域都是用于存储和共享数据的,下面对每种作用域进行详细的解释: 1. Page 作用域 Page 作用域是 JSP 页面的内置...

    jsp九大内置对象和四大作用域详解.docx

    jsp九大内置对象和四大作用域详解 jsp中的九大内置对象和四大作用域是jsp编程中非常重要的概念,它们提供了访问和操作服务器端资源的能力,帮助开发者快速构建动态Web应用程序。 一、request对象 request对象代表...

    request、session作用域的理解

    Request、Session 作用域的理解 Request 作用域: * Request 作用域是指在当前请求中有效的信息共享范围 * 在 Servlet/JSP 中,Request 作用域是通过 HttpServletRequest 接口实现的 * Request 作用域的信息共享是...

    JSP的九个内置对象及四个作用域

    JSP 九个内置对象及四个作用域 JSP(Java Server Pages)是一种基于Java的服务器端脚本...JSP四个作用域包括page、request、session和application四个作用域,分别对应着页面、请求、会话和应用程序四个级别的作用域。

    jsp的四个作用域

    jsp四个作用域 jsp作为一个动态网页技术,在web开发中起着重要的作用。了解jsp的四个作用域是...jsp的四个作用域是mastering jsp技术的基础,正确地选择和使用这些作用域是开发高效、可维护的web应用程序的关键。

    jsp基础教程精讲 jsp基础教程精讲

    - **动作**:`&lt;jsp:action&gt;`,用于执行JSP动作,如包含文件或调用自定义标签。 理解并熟练掌握这些基本概念和元素是学习JSP的基础,它们构成了JSP开发的核心。通过结合静态内容和动态逻辑,你可以构建出功能丰富的...

    JSP 内置对象:作用域通信对象.pptx

    作用域通信对象 pageContext request session application

    jsp的九大内置对象和四大作用域

    理解和掌握这些内置对象及作用域对于开发动态Web应用至关重要,它们是构建Web应用程序的基础,使得Web应用能够实现复杂的功能,如用户认证、状态管理、页面布局动态化等。熟练运用这些内置对象和作用域,可以大大...

    JavaBean的作用域.doc

    Request作用域的JavaBean在一次HTTP请求中有效,这意味着它可以在请求从一个页面转发到另一个页面(使用`&lt;jsp:forward&gt;`)的过程中保持其值。Request作用域适合处理跨多个JSP页面但局限于同一HTTP请求的数据,如...

    JSP 中Spring Bean 的作用域详解.docx

    下面将详细介绍JSP中Spring Bean的五种作用域。 1. **Singleton作用域**: Singleton是Spring中最常见的一种作用域,它表示在整个Spring IoC容器中,只有一个Bean实例存在。当容器启动时,Spring会创建这个Bean的...

    《JSP基础教程:黑魔方》(清华版)

    JDK 1.4版本的背景意味着,虽然这个教程可能不包含最新的JSP特性(如JSP 2.3和Java EE 8的更新),但它仍然能提供关于JSP核心概念的扎实基础,这对于理解和学习更现代的JSP版本同样有益。随着对JSP的理解加深,...

    jsp教程 :开发实例

    JSP指令如`&lt;%@ page %&gt;`用于设置页面属性,JSP动作如`&lt;jsp:include&gt;`用于动态包含页面内容。 2. 声明与脚本元素:在JSP中,可以声明变量、方法,也可以编写Java代码块,例如`! %&gt;`和`&lt;% %&gt;`分别用于声明和执行Java...

    JSP基础课件(入门教程)

    - **动作(Actions)**:如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:useBean&gt;`等,它们在页面运行时执行操作,而非编译时。 3. **脚本元素** - **声明(Declarations)**:`! %&gt;`用于声明变量或方法,它们在页面...

    JSP内置对象和作用域[收集].pdf

    JSP(Java Server Pages)是Java技术中用于创建动态网页的一种技术。在JSP中,内置对象是指开发者可以直接使用的预定义对象,...理解并熟练运用这些内置对象和作用域,能够帮助开发者更高效地构建健壮的Web应用程序。

    JSP 中Spring Bean 的作用域详解

    JSP 中Spring Bean 的作用域详解 Bean元素有一个scope属性,用于定义Bean的作用域,该属性有如下五个值: 1&gt;singleton: 单例模式,在整个spring IOC容器中,单例模式作用域的Bean都将只生成一个实例。一般Spring...

    Jsp的经典例题大全

    - `jsp:useBean`:创建或查找JavaBean,并将其作用域设置为页面、请求、会话或应用。 - `jsp:setProperty`和`jsp:getProperty`:设置或获取JavaBean的属性。 6. **内置对象**: - `request`:代表HTTP请求,包含...

    JSP 内置对象作⽤域.md

    ### JSP内置对象作用域详解 #### 一、概述 JSP(Java Server Pages)作为一项服务器端技术,被广泛应用于动态网页开发中。在JSP页面中,开发者可以通过使用一系列预定义的对象来处理客户端请求并生成响应。这些...

    jsp程序设计案例教程

    - EL语言:介绍EL的语法,如何访问和操作页面作用域、请求作用域、session作用域和application作用域的变量。 4. ** chap06 ** - JSP脚本元素与JSTL(JavaServer Pages Standard Tag Library): - Scriptlets:...

Global site tag (gtag.js) - Google Analytics