妙解Servlet四大域对象
pageContext
pageContext作用域为page(页面执行期)。
request
request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在当前请求中有效。
用处:常用语服务器间同一请求不同页面之间的参数传递,常用语表单的控件值传递。
方法:request.setAttribute(); reuqest.getAttribute();
request.removeAttribute(); request.getParameter();
session
服务器会为每一个会话创建一个Session对象,所以Session中的数据可供当前会话中所有Servlet共享。
用处:常用于web开发中的登录验证界面(当用户登陆成功后浏览器分配其中一个Session键值对)。
方法:session.setAttribute(); session.getAttribute();
session.removeAttribute();
获取Session对象:
HttpSession session = request.getSession();
Application(ServletContext上下文)
作用范围:所有的用户都可以取得此信息,此信息在整个服务器端被保留。Application属性范围值只要设置一次,则所有的网页窗口都可以取得数据。ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象。
方法:ServletContext application = this.getServletContext();
application.setAttribute(); application.getAttribute();
application.removeAttribute();
Servlet作用域
例如,我们访问index.jsp的时候,分别对pageContext、request、session、application四个作用域进行累加。 计算完成后就从index.jsp执行forward转发到test.jsp,在test.jsp里再进行一次累加,然后显示出这四个整数来。
从结果来看:
①page里的变量没法从index.jsp传递到test.jsp,只要页面跳转了,它们就不见了。
②request里的变量可以跨越forward前后两页。但是只要刷新页面,它们就重新计算了。
③session和application的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这个页面,session里的变量就重新计算了。application里的变量一直在累加,除非你重启Tomcat,否则它会一直变大。
作用域规定的是变量的有效期限
①如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前JSP页面里。从把变量放到pageContext开始,知道JSP页面跳转都可以使用。
②如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期:就是从Http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个JSP页面,在这些页面里,你都可以使用这个变量。
③如果把这个变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话:就是指从用户打开浏览器开始,知道用户关闭浏览器这中间的过程,这个过程可能包含多个请求响应。也就是说,只要用户不关闭浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话,而放到会话中的变量,就可以在当前会话的所有请求里使用。
④如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。所谓整个应用:是指从应用启动到应用结束。application里的变量存活时间最长,如果不进行手动删除,它们就一直可以使用。
妙解Servlet四大域对象的更多相关文章
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
- JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HT ...
- 牛客网Java刷题知识点之什么是JSP、JSP有哪些优点、JSP的9大内置对象、JSP的四大域对象、JSP的四种范围
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21175&query=&asc= ...
- JSP九大隐式对象和四大域对象-----面试
因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...
- JSP四大域对象与九大内置对象
什么是内置对象? 在jsp开发中会频繁使用到一些对象,如 ServletContext.HttpSession.PageContext 等: 如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手 ...
- JSP九大内置对象及其作用以及四大域对象
一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...
- jsp 九大内置对象和其作用以及四大域对象
感谢作者:Fangcf. 链接:https://blog.csdn.net/qq_39320833/article/details/80818442 一.jsp 九大内置对象 方法简单介绍:https ...
- 四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象
四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 ...
- Jsp的四大域对象
Jsp Jsp的四大域对象 作用范围 特殊之处 pageContext 当前jsp页面,当转发就失效 可以获取其他域对象中的值 request 一次请求,转发公用request,重 ...
随机推荐
- InnoSetup 客户端程序打包教程
之前介绍过InstallShield打包工具,本文再介绍更加方便的打包工具Inno Setup Inno Setup相对来说,比InstallShield更容易使用,不需要在VS中创建项目,只要提供D ...
- Java 学习笔记 使用并发包ReentrantLock简化生产者消费者模式代码
说明 ReentrantLock是java官方的一个线程锁类,ReentarntLock实现了Lock的接口 我们只需要使用这个,就可以不用使用synchronized同步关键字以及对应的notify ...
- js正则表达式 数字和小数点 非负数 保留两位小数点
验证数字非负数 小数点保留两位小数点 下面正则已验证通过 /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/
- Fundebug前端JavaScript插件更新至1.6.0,新增test()方法用于测试
摘要: 1.6.0新增fundebug.test()方法用于测试,请大家及时更新. 默认情况下,Fundebug 插件能够自动捕获未处理的错误(uncaught error).另外,开发者也可以通过使 ...
- (三)设置mysql允许外部IP连接的解决方法及遇到的坑说明
用命令查询端口情况:netstat -an | grep LISTEN 发现mysql用到3306这个端口,只能被127.0.0.1访问(0.0.0.0的就是每个IP都有的服务,写明哪个IP的就是绑定 ...
- java-文件读取
1.利用递归读取文件 (1)NotifyFolder.java package com.etc; import java.io.File; import java.io.IOException; im ...
- 解决centos7.0安装mysql后出现access defind for user@'localhost'的错误
在使用yum 安装完mariadb, mariadb-server, mariadb-devel后 1. rpm -qa | grep maria 查看maria相关库的是否在进程中 2. net ...
- OPC协议解析-关于OPC协议的几个问题
1 什么是OPC协议? 为了便于自动化行业不同厂家的设备和应用程序能相互交换数据,定义了一个统一的接口函数,就是OPC协议规范.有了OPC就可以使用统一的方式去访问不同设备厂商的产品数据. OP ...
- BGP: 容易实现路由备份,不容易实现等价负载均衡。
一.结论: 1.BGP只能建立备份路由,不能建立等价路由. 2.BGP按照下面的规则进行优选路由. BGP选择路由的策略 当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由: 优选协议首 ...
- Android TV端的(RecyclerView)水平滚动焦点错乱问题
package com.hhzt.iptv.ui.customview; import android.content.Context;import android.content.res.Typed ...