jsp 四大属性范围
来源:互联网 发布:网上宿迁网络问政来龙 编辑:程序博客网 时间:2024/04/29 18:15
四种属性:pageContext、request、session、application
四种属性都有的三种方法:
public void setAttribute(String name,Object o ),设置属性的名称及内容
public Object getAttribute(String name) 根据属性名称取得属性
public void removeAttribute(String name),删除指定的属性
1、pageContext
pageContext简称page,该属性只在本页有效,跳转后无法取得。下面用代码来看一下
页面page_01代码
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%// 设置属性pageContext.setAttribute("name","页面") ;pageContext.setAttribute("birthday",new Date()) ;%><%String username = (String) pageContext.getAttribute("name") ;Date userbirthday = (Date)pageContext.getAttribute("birthday") ;%><h2>姓名:<%=username%></h2><h2>生日:<%=userbirthday%></h2></body></html>
运行页面输出 姓名:页面
时间:系统时间
页面page_02代码<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%// 设置属性pageContext.setAttribute("name","页面") ;pageContext.setAttribute("birthday",new Date()) ;%><jsp:forward page="page_03.jsp"/></body></html>
该页面中有forward跳转到page_03
输出为 姓名:null
时间:null
说明:服务器发生跳转之后,内容无法取得了。因为一个page范围中的内容只能保存在一个页面
页面page_03代码<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%String username = (String) pageContext.getAttribute("name") ;Date userbirthday = (Date)pageContext.getAttribute("birthday") ;%><h2>姓名:<%=username%></h2><h2>生日:<%=userbirthday%></h2></body></html>
2、request 对象
request属性范围表示在服务器跳转之后,所有的设置内容依然被保留下来。
页面request_01
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%// 设置属性request.setAttribute("name","页面") ;request.setAttribute("birthday",new Date()) ;%><jsp:forward page="request_02.jsp"/></body></html>页面request_02
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%String username = (String) request.getAttribute("name") ;Date userbirthday = (Date)request.getAttribute("birthday") ;%><h2>姓名:<%=username%></h2><h2>生日:<%=userbirthday%></h2></body></html>
现在修改语句
<jsp:forward page="request_02.jsp"/>修改为通过超链接取得属性
<a href="request_02.jsp">通过链接取得属性</a>
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>page</title></head><body><%// 设置属性request.setAttribute("name","页面") ;request.setAttribute("birthday",new Date()) ;%><a href="request_02.jsp">通过链接取得属性</a></body></html>执行request_03跳转到request_02
输出为 姓名:null
生日:null
设置了超链接之后,首先地址栏会发生改变,所以一旦地址栏发生改变的跳转,成为客户端跳转,客户端跳转无法彻底request属性。地址栏改变了,就相当于发生了第二次请求,则第一次请求的内容肯定就消失了,所以无法取得。一次跳转称为服务器跳转。
3、session对象
无论是服务器还是客户端跳转,都可以保存属性。但是再打开一个新的浏览器的话,就无法取得session了,因为每一个session只保存了当前的浏览器之中,并且可以从相关的页面中取得。
4、application对象
若想让属性设置一次后,不管是否是新的浏览器,打开都可以访问的话,则就可以使用application范围了。
所有的application属性直接保存在服务器上了,每一个session都可以直接访问了。若关闭了服务器重新启动了,则无法取得了。
四大属性使用原则,优先使用page,其次request,再次是session,最后是application。
因为保存的范围越窄,服务器压力越低。
- jsp 四大属性范围
- 深入分析JavaWeb Item16 -- jsp 四大域(属性)范围
- 深入分析JavaWeb 16 -- jsp 四大域(属性)范围
- jsp 四大域范围
- JSP定义和四大范围
- 【JSP开发】JSP的四大范围(转)
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- JSP属性范围
- Python虚拟环境的安装和配置(windows)
- RecyclerView Demo,瀑布流视频列表GridView
- Intellij IDEA使用git提交代码流程
- 欢迎使用CSDN-markdown编辑器
- JS关于创建类
- jsp 四大属性范围
- Android与前端交互之JSBridge
- 队列:二分+读入优化+优化
- hdu5984-猜测&期望-C
- 从BF算法到KMP算法(字符串匹配算法)
- VISIO PAD模具
- 【2017青岛网络赛】1004 hdu 6209 The Intersection 二分
- 1.1 c++_开始
- Android中侧拉菜单的实现