`

变量存取范围及JSP、JSTL和Struts技术中变量的存取方法

 
阅读更多

http://blog.csdn.net/yiyi735/article/details/2500567

JSP中变量的定义范围实际有5种:本地范围,页面范围(page),请求范围(request),会话范围(session)和应用程序范围(application)。
以下介绍在各种技术中的变量存取方法。
u       JSP中:
存储:
本地范围变量直接定义,如:
   String name="name in page";
page范围变量保存在pageContext隐式对象中,如:
   pageContext.setAttribute("nameContext","name in pageContext");
request范围变量保存在request隐式对象中,如:
   request.setAttribute("nameRequest","name in Request");
session范围变量保存在session隐式对象中,如:
   session.setAttribute("nameSession","name in Session");
application范围变量保存在application隐式对象中,如:
   application.setAttribute("nameApplication","name in Application");
读取:
   name:<%=name%><br/>
nameContext:<%=pageContext.getAttribute("nameContext").toString()%><br/>
nameRequest:<%=request.getAttribute("nameRequest").toString() %><br/>
nameSession:<%=session.getAttribute("nameSession").toString() %><br/>
nameApplication:<%=application.getAttribute("nameApplication").toString() %>
u       JSTL中
JSTL中没有本地范围的概念。只有page,request,session和application范围的变量。
存储
使用c:set存储变量。
scope属性默认为page, 若不指定则变量存储在page范围里:
   <c:set var="name" value="name in where"/>
   <c:set var="namePage" value="name in pageScope" scope="page"></c:set>
   <c:set var="nameRequest" value="name in requestScope" scope="request"></c:set>
   <c:set var="nameSession" value="name in sessionScope" scope="session"></c:set>
   <c:set var="nameApplication" value="name in ApplicationScope" scope="page"></c:set>
读取
使用c:out读取变量
c:out标签依次从page,request,session,application范围查找指定变量然后输出。也可以指定查找范围。
   nameSession - <c:out value="${nameSession}"/> - 依次搜索至session范围,找到nameSession变量,然后输出。<br/>
   namePage - <c:out value="${pageScope.namePage }"/> - 指定搜索范围为page范围<br>
   nameRequest - <c:out value="${requestScope.nameRequest }"/> - 指定搜索范围为request范围<br>
   nameSession - <c:out value="${sessionScope.nameSession }"/> - 指定搜索范围为session范围<br>
   nameApplication - <c:out value="${applicationScope.nameApplication }"/> - 指定搜索范围为application范围<br>
   name - <c:out value="${pageScope.name }"/>
struts
JSTL一样,只有page,request,session,application范围。
存储
使用bean:define
toScope
属性指定存储范围,默认为page, 若不指定则变量存储在page范围里
读取
使用bean:write
scope
属性指定读取范围,若没有设置此属性,则依次从page,request,session,application范围查找指定变量然后输出。

分享到:
评论

相关推荐

    JSTL、EL、ONGL、Struts标签的区别

    例如,在 JSP 页面中,可以使用 JSTL 来控制流程和数据处理,同时利用 EL 或 OGNL 进行数据的访问和展示。在 Struts2 应用中,则可以充分利用 Struts 标签来处理复杂的业务逻辑和数据展示需求。

    struts2综合复习习题

    - 在JSP页面上循环显示集合中的数据,通常可以使用JSP脚本代码、JSTL标签、Struts2标签等方法。然而,直接使用jsp脚本元素结合EL表达式并不是一个标准的做法,因为EL表达式主要用于数据访问而非循环控制。 #### 八...

    jsp页面标签

    JSP页面标签通过EL、JSTL和Struts Tags等工具,提高了JSP的可读性和维护性。EL简化了表达式,JSTL提供了强大的标签集,而Struts Tags则为基于Struts的开发提供了便利。理解并熟练运用这些标签,可以有效提升JSP页面...

    JSP技术在网站开发设计中的研究与开发

    3. **丰富的生态系统**:Java社区提供了大量开源库和框架,如Struts、Spring MVC和Hibernate,可以无缝集成到JSP项目中,提升开发效率。 4. **安全性**:Java的安全模型为JSP应用提供了安全保障,减少潜在的攻击...

    SSH三大框架+mysql在jsp展示步骤

    SSH三大框架指的是Spring、Struts和Hibernate,它们是Java Web开发中的重要组件,常用于构建高效、可维护的Web应用程序。SSH框架的整合是企业级应用开发中的常见实践,能够帮助开发者实现MVC(Model-View-Controller...

    SSH网络留言板

    在SSH项目中,JSP结合EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library),展示由Struts和Spring处理后的数据。 6. **整合开发**:SSH整合的关键在于它们之间的无缝协作。Spring能够管理...

    javaweb项目实例

    这个项目实例包括了笔记和详细的实现步骤,确保学习者可以逐步跟进行动,从而掌握关键概念和技术。 JavaWeb是基于Java技术的Web应用程序开发领域,它允许开发者创建动态、交互式的网站和应用。在JavaWeb开发中,...

    自身经历的面试题整理

    - **Struts2 开发环境及流程**:熟悉 Struts2 的安装配置以及 MVC 模式的应用。 - **验证和文件上传**:理解如何在 Web 应用中实现数据验证和文件上传功能。 - **DOS 全称**:Disk Operating System,即磁盘操作系统...

    java公司面试题

    ### JSP & Struts #### 1. 列举你知道的页面间对象传递的方法 - 使用`request.setAttribute()`/`request.getAttribute()` - 使用`session.setAttribute()`/`session.getAttribute()` - 使用`application....

Global site tag (gtag.js) - Google Analytics