在JSP中,可以使用request.setAttribute(String name,Object value)进行设置属性并获取,同时也可以使用其他方法,那么他们有什么区别?

一、JSP作用域

  • 页面域,生命周期是页面执行期间,存储在页面域的属性对于它所在的页面可用
  • 请求域,生命周期是一次请求过程,也包括请求转发的情况(共用同一个请求域)和include的情况,存储在请求域中的属性只有在请求过程中才可以访问
  • 会话域,生命周期是整个服务器与客户端连接的时间域内,只要不超过最大不活动时间或者没有被invalidate()调用,存储在会话域的属性可以在整个会话期间访问
  • 应用域,生命周期是整个web应用程序的生命周期,是最长的,存储在应用域的属性可以被整个web应用的JSP和servlet访问

二、四种作用域内部对象

1.页面域,pageContext

  • getAttribute(String name),根据名字获取域属性值
  • removeAttribute(String name),根据名字移除属性值
  • getAttributeNamesInScope(int scope),获得所有属性名称

2.请求域,request

  • getParameter(String name) 根据参数名获取单一参数
  • getParameterValues(String name) 根据参数名获取一组参数值
  • setAttribute(String name,Object value) 设置属性
  • getAttribute(String name) 获得属性值

3.会话域,session

  • setAttribute(String name,Object value),以名\值对形式存储属性
  • getAttribute(String name),根据名字获取属性值
  • invalidate(),使session失效

4.应用域,application

  • setAttribute(String name,Object value),以名\值对形式存储application域属性
  • getAttribute(String name),根据名字获取application域属性值
  • removeAttribute(String name),根据名字移除application属性值

三、实例:页面访问次数

differVisitCount.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>
<%int pageCount = 1;int sessionCount = 1;int applicationCount = 1;if(pageContext.getAttribute("pageCount") != null){pageCount = Integer.parseInt(pageContext.getAttribute("pageCount").toString());pageCount++;}pageContext.setAttribute("pageCount", pageCount);if(session.getAttribute("sessionCount") != null){sessionCount = Integer.parseInt(session.getAttribute("sessionCount").toString());sessionCount++;}session.setAttribute("sessionCount", sessionCount);if(application.getAttribute("applicationCount") != null){applicationCount = Integer.parseInt(application.getAttribute("applicationCount").toString());applicationCount++;}application.setAttribute("applicationCount", applicationCount);
%>
<p>页面与计数:<%= pageCount %>
</p>
<p>会话域计数:<%= sessionCount%>
</p>
<p>应用域计数:<%= applicationCount%>
</p>
</body>
</html>

运行结果

这里会话域不是1因为我运行了一次然后调用了invalidate函数

JSP:对象(Attribute)的作用域相关推荐

  1. jsp对象的四大作用域的简单介绍

    对象的作用域 page作用域(名字有的说pageContext有的说page,个人觉得是第一个) request作用域 session作用域 application作用域 在jsp中提供了四种作用域, ...

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

    看到网上一些Jsp内置对象介绍的都不是很全,今天我把各位大神的整理了一下. JSP九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用. 一.reque ...

  3. JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)

    JSP的基本构成:HTML文件+Java片断+JSP标签 三大指令:page指令.include指令.taglib指令. page指令: 1.language属性:设置当前页面中编写JSP脚本使用的语 ...

  4. Java Web(五) JSP详解(四大作用域九大内置对象等)

    前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...

  5. html四大作用域,JSP的三六九四(三大指令、六大标签、九大内置对象、四大作用域)...

    JSP的基本构成:HTML文件+Java片断+JSP标签 三大指令:page指令.include指令.taglib指令. page指令: 1.language属性:设置当前页面中编写JSP脚本使用的语 ...

  6. 【JSP】JSP的四种作用域

    对象的生命周期和可访问性称为作用域(scope),在JSP中有四种作用域: pageContext:page域 request:request域 session:session域 applicatio ...

  7. jsp中四个作用域的区别

    jsp中四个作用域的区别 JSP内置对象作用域表 名称 作用域 application 在所有应用程序中有效 session 在当前会话中有效 request 在当前请求中有效 page 在当前页面有 ...

  8. 用代码演示:JSP的4个作用域

    用代码告诉你:JSP的4个作用域 1.JSP中的作用域有什么用? 2.哪4个作用域? 3.作用域之间的区别 3.1 pageContext对象 3.2 request对象 3.3 session对象 ...

  9. jsp 的 4 种作用域?

    jsp 的 4 种作用域? 作用域 名称 描述 page 当前页面作用域 相当于 Java 关键字中 this.在这个作用域中存放的属性值,只能在当前页面中取出. request 请求作用域     ...

  10. 一篇文章带你了解JavaScript中的函数表达式,递归,闭包,变量,this对象,模块作用域

    作者 | Jeskson 来源 | 达达前端小酒馆 定义函数的方式: 第一种为 函数声明: 第二种为 函数表达式. 语法: function functionName(arg0, arg1, arg2 ...

最新文章

  1. python布尔测试对象_面试题十九期-测试开发面试题之python系列-这个中~
  2. 【BUG】小米5中 video.js 在钉钉 webview 中全屏后 后退无法弹出虚拟键盘
  3. Service Mesh 实践指南:从单体应用到 Service Mesh 的曲折历程
  4. rateLimiter令牌桶限流算法
  5. 噪声控制简史,以及几个简单的声学概念
  6. 将字符串中的小写字母转换成大写字母 (信息学奥赛一本通-T1138)
  7. 线性代数知识点总结_[Github项目推荐] 机器学习amp; Python 知识点速查表
  8. android通过WebView的evaluateJavascript()调用JS
  9. 360搭建windows补丁服务器
  10. cad字体渐变_CAD制造特效字体
  11. xlsx表格怎么做汇总统计_excel考勤统计表汇总怎么做
  12. 网络创业:网站盈利模式分析分类
  13. 引央视主播康辉大笑的度晓晓,是个只会吹彩虹屁的 AI 助手吗?
  14. android 阿里hotfix,Android 热修复方案--阿里百川HotFix
  15. 获取复选框的被选中的值
  16. 罗技键盘连计算机,罗技键盘怎么连接电脑
  17. AAC音频文件添加ADTS头
  18. AD转换中知道数字量计算模拟量或温度
  19. 【信号与系统】(二十)傅里叶变换与频域分析——取样定理
  20. 小学数学加减法测试软件,儿童数学练习智能出题系统

热门文章

  1. 学机械能去计算机,《动能 势能 机械能》案例与反思
  2. 什么是虚拟化技术?虚拟化常见架构
  3. poj3155(最大密度子图)
  4. Ardunio开发实例-PCA9685-16路PWM控制器控制LED
  5. 【EMC电磁兼容】01.08——基础术语
  6. 推荐一款使用java+MYSQL搭建的 客户oa管理系统源码
  7. 移动端实时音视频详解(二):处理
  8. 远程桌面不能传输文件或复制粘贴文件
  9. 背包算法 java_背包问题算法java实现
  10. golang开发技巧