前言

本文主要讲解javaweb的四个域对象以及他们的作用范围,后面会有小demo来具体测试。

四个域对象

(1)pageContext:属性的作用范围仅限于当前JSP页面;

(2)request:属性的作用范围仅限于同一个 请求;

(3)session:属性的作用范围仅限于一次会话,游览器打开直到关闭为一次会话(前提是在此期间会话不会失效)

(4)application:属性的作用范围限于当前WEB应用。

域对象共有的方法:

(1)Object getAttribute(String name):获取指定属性;

(2)Enumeration getAttributeNames():获取所有属性的名字组成的Enumeration对象;

(3)removeAttribute(String name):移除指定属性;

(4)void setAttribute(String name,Object o):设置属性。

项目结构

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>javaWeb_13</display-name>
<welcome-file-list>
<welcome-file>first.jsp</welcome-file>
</welcome-file-list>
</web-app>

first.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>当前页获取域对象里面的属性值</title>
</head>
<body> <h2>First Page</h2> <%
pageContext.setAttribute("pageContextAttr", "pageContextValue"); request.setAttribute("requestAttr", "requestValue"); session.setAttribute("sessionAttr", "sessionValue"); application.setAttribute("applicationAttr", "applicationValue");
%> 01-pageContext:<%=pageContext.getAttribute("pageContextAttr") %>
<br><br>
02-request:<%=request.getAttribute("requestAttr") %>
<br><br>
03-session:<%=session.getAttribute("sessionAttr") %>
<br><br>
04-application:<%=application.getAttribute("applicationAttr") %>
<br><br> <a href="second.jsp">To Second Page</a> </body>
</html>

second.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>跨页面获取域对象里面的属性值</title>
</head>
<body> <h2>Second Page</h2> 01-pageContext:<%=pageContext.getAttribute("pageContextAttr") %>
<br><br>
02-request:<%=request.getAttribute("requestAttr") %>
<br><br>
03-session:<%=session.getAttribute("sessionAttr") %>
<br><br>
04-application:<%=application.getAttribute("applicationAttr") %>
<br><br> <a href="first.jsp">To First Page</a> </body>
</html>

运行项目后,在当前页面里面可以取到所有域对象的值

跨页面时,由于是不同的页面,不同的请求,所以pageContext和request为空

关闭游览器,再次重新打开,直接输入第二个页面的地址,session也为空,说明再次打开游览器后不是同一次会话

参考视频:点击打开链接

javaWEB总结(13):域对象的属性操作的更多相关文章

  1. [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  2. 域对象中属性变更及感知session绑定的事件监听器

    域对象中属性的变更的时间监听器就是用来监听ServletContext,HttpSession,HttpServletRequest这三个对象中的属性变更信息事件的监听器.这三个监听器接口分别是Ser ...

  3. 了解JavaScript 对象的属性操作

    提起操作, 很多人都会想到我们学习过程中最经常做的操作, 就是对数据库进行增, 删, 改, 查, 既然提到这个, 那么对于对象的属性操作也不例外, 基本上可以说也是这几个操作. JS中对象的属性标签 ...

  4. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. javabean 参数收集 设置属性 设置不同级别的域对象的属性 默认存储在pagecontext中

    javabean 参数收集  设置属性 设置不同级别的域对象的属性  默认存储在pagecontext中

  6. jQuery对象的属性操作

    jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 html属性操作:是对html文档中的属性进行读取,设置和移除操作.比如attr().removeAttr ...

  7. JavaWeb中的域对象

    域对象:可以在不同Servlet之间传递数据的对象,就是域对象,它们内置了map集合,都有setAttribute和getAttribute方法: Java Web有ServletContext.Se ...

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

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

  9. JavaScript对象之属性操作

    在js对象中,我们可以对对象属性进行操作. 上图的要点为:for-in会把原型链上的可枚举属性也列出来. 上图的要点为:可以使用逻辑运算符&&进行层层查找对象是否为undefined, ...

随机推荐

  1. jq模糊匹配

    jq是一般程序员在前台开发的时候都会使用的技术,其中模糊匹配查询在动态添加标签的时候经常用到,这里我写出我经常用到的几个模糊匹配的方法.其中有:^(前缀).$(后缀).*(包含)例如有这样一段代码: ...

  2. SVN不同图标的不同意义

    黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人 ...

  3. FragmentTransation中的remove和detach有什么区别?

    remove(): 从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁; detach(): 会将vi ...

  4. 【.NET】SQL链接字符串

    第一种:OLE DB或OleDbConnection (.NET)方式 (使用SQL Server的Microsoft OLE DB提供程序)Provider=sqloledb; Data Sourc ...

  5. kibana使用的lucene查询语法

    kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...

  6. 【优先队列】-HDU4546比赛难度

    比赛难度 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  7. LoadRunner错误处理函数

    节选自<LoadRunner虚拟用户开发指南> 在脚本的Run-time Settings中,可以设置在脚本运行过程中发生错误的处理方式.进入到Run-time Settings中,切换到 ...

  8. 浙大pat1009题解

    1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...

  9. 手动安装VS code 插件

    现在安装包: 通过修改下面的地址参数:https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publish ...

  10. mysql添加远程用户

    -- 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询.插入.修改.删除的权限. -- 首先用以root用户连入MYSQL,然后键入以下命令: grant selec ...