jsp提供了4中属性分别是

当前页:一个属性只能在一个页面中取得,跳转淘其他页面无法取得。
一次服务器请求:一个页面中设置的属性,只要经过了服务跳转,而跳转之后的页面可以继续取得
一次回话:一个用户设置的内容,只要是此用户页面都可以访问
上下文中:整个服务器上设置的属性,所有都可以访问 属性的操作方法
setAttribute(name,value)
getAttribute(name)
removeAttribute(name)

page属性范围

  page属性范围相对好理解一些:在一个页面设置的属性,跳转到其他页面就无法访问了。但是在使用page属性范围的时候必须要注意,虽然习惯上将范围属性称为page属性,但是实际上操作的时候使用pageContext内置对象完成的。

从该操作流程图上可以看出,第一个页面设置属性经过服务跳转到第二个页面以后,在第二个页面是无法取得第一个页面中设置的属性的。就好比现在坐着的桌子上有一只笔,但是一旦离开这张桌子,做到别的桌子上,笔就没有了。
1) 在同一个页面中可以获取pageContext中设置的内容

<%@ page language="java" contentType="text/html; charset=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>Insert title here</title>
</head>
<body>
<%
 pageContext.setAttribute("name", "我爱杭州");
%>
<%= pageContext.getAttribute("name") %> (输出信息--》我爱杭州)
</body>
</html>
2) 在page中设置属性 然后 forword 到page2,在page2中无法获取pageContext中设置信息
page.jsp
<%@ page language="java" contentType="text/html; charset=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>Insert title here</title>
</head>
<body>
<% pageContext.setAttribute("name", "我爱杭州"); %>
</body>
<jsp:forward page="/WEB-INF/range/page2.jsp"></jsp:forward>
</html>

page2.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%= pageContext.getAttribute("name") %>
</body>
</html>

pageContext的属性设置

pageContext,request,session,application,四种属性范围实际上都是通过pageContext范围来设置的
pageContext继承了JspContext,在JspContext的setAttribute()方法如下:
setAttribute(String name,Object value, int scope)
这个setAttribute()方法如果右面不写int类型的SCOPE参数,则此参数默认为PAGE_SCOPE,如果传递过来的是int类型的参数REQUEST_SCOPE
则此时的setAttibute()方法设置的就是request的属性范围。同样传递的是SESSION_SCOPE,APPLICATION_SCOPE,则表示session和application
的属性范围

request的属性

rqequet属性范围表示在一次服务器跳转中有效,只是服务器,则设置的request属性可以一直传递下去。

session属性范围

session设置的属性,不管是如何跳转,都可以取得的。当然session只针对一个用户。
session在一个页面上设置的属性,跳转(服务器跳转/客户端跳转)到其他页面之后,其他页面依然可以取得第一个页面上设置的属性。

application属性范围

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

jsp jsp属性范围的更多相关文章

  1. javaweb之jsp的属性范围

    1.什么是jsp的属性范围? 所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以保存并继续使用.jsp提供了四种属性范围,如下: 当前页,对应的jsp对象为pageContext,属 ...

  2. JSP页面属性

    一.JSP指令 <%@指令名属性名=属性值 %> page指令: 定义页面是如何解析 include指令: 静态包含 taglib指令: 在页面引入标签呢库. 1.page指令属性 imp ...

  3. jsp jsp标签

    JSP标签页称为Jsp Action(JSP动作元素),用于在Jsp页面中提供业务逻辑功能,避免在Jsp页面中直接编写java代码,造成jsp页面难以维护. jsp常用标签 jsp:include标签 ...

  4. JavaWeb——JSP,JSP指令,注释

    什么是JSP JSP原理 JSP页面中的java代码服务器是如何执行的 Web服务器在调用jsp时会给jsp提供一些什么java对象 JSP执行过程 JSP页面的元素包括 JSP模版元素 JSP脚本片 ...

  5. java.lang.NoClassDefFoundError: org/apache/jsp/jsp/Container_jsp

    1.错误描述 八月 20, 2014 7:10:18 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.servi ...

  6. JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术

    JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术.从这一点来看,非常类似Microsoft ASP.PHP等技术.借助形式上的内容和外观表现的分 ...

  7. JSP<jsp:forward>与<%@ include%>

    JSP<jsp:forward>与<%@ include%><jsp:include> <jsp:forward file="forwardTo_p ...

  8. <jsp:include page="${pageContext.request.contextPath/index.jsp" ></jsp:include> 引发的错误

    路径引发的错误 如下使用项目路径对jsp页面进行获取,会报javax.servlet.ServletException: File "/web/dbwx/web/public/page_to ...

  9. JSP基础——属性保存范围和request对象

    JSP属性保存范围 JSP中提供了四种属性保存范围,分别为page,request,session及application. 1.page范围,指设置的属性只在当前页面有效.通过pageContext ...

随机推荐

  1. 20145317 网络对抗技术 逆向与Bof基础

    20145317 网络对抗技术 逆向与Bof基础 实践要求 1. 掌握NOP,JNE,JE,JMP,CMP汇编指令的机器码 2. 掌握反汇编与十六进制编程器 3. 能正确修改机器指令改变程序执行流程 ...

  2. C++for的几种方式

    #include <algorithm> #include <vector> ////////////////////////////////////////////// , ...

  3. SQL Server @@参数一览表

    --返回 SQL Server 自上次启动以来尝试的连接数,无论连接是成功还是失败. SELECT @@CONNECTIONS AS CONNECTIONS --返回 SQL Server 自上次启动 ...

  4. Python3基础 dict items 以元组的形式打印出字典的每一个项

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. HDU 4638Group (莫队)

    Group Problem Description There are n men ,every man has an ID(1..n).their ID is unique. Whose ID is ...

  6. Unity3D学习笔记(二十):Rect、Canvas、Toggle、Slider、ScrollBar

      Rect Transform(锚点):图片中心的四个点,界面以雪花形式显示 当四个点在一起的时候组成锚点,当四个点分开的时候组成锚框(合则锚点,分则锚框) Anchors: ----Min x:控 ...

  7. Facebook广告API系列 2 - Audience Management

    Facebook广告API系列 2 Facebook marketing API有三大组成部分: Audience Management Ads Management Ads Insights 本篇稍 ...

  8. 【旧版本】Ubuntu 14.04 下 P416编译器 p4c的安装

    注:此为2017年5月份的安装方法,最新的p4c安装方法见: Ubuntu14.04下 安装p4c 参考: p4c README Ubuntu 14.04 下 P4v16编译器 p4c的安装 系统要求 ...

  9. JS进阶系列之作用域链

    在之前写的进阶系列里面,提到了执行上下文在创建阶段,要创建变量对象.确定作用域链还有确定this的指向,本次将重点讲解一下作用域链. JavaScript代码的执行过程 在讲解作用域链之前,首先了解一 ...

  10. hdu 2824 The Euler function 欧拉函数打表

    The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...