JSP九大内置对象及四个作用域详解
一共有九大内置对象:
request、response、out、session、application、pageContext、page、config、exception
内置对象(又叫隐含对象),就是在jsp中,不需要创建(由服务器<容器>来创建),可以直接使用的对象。
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
page 当前页面有效时间最短(页面执行期)
request HTTP请求开始到结束这段时间
session HTTP会话开始到结束这段时间
application 服务器启动到停止这段时间
out:所属类JspWriter
request:实现了HttpServletRequest接口(此接口继承于ServletRequest接口)
response:实现了HttpServletResponse接口(此接口继承于ServletResponse接口)
session:实现了HttpSession接口
application对象实现的接口ServletContext
1.out对象:向客户端输出信息
主要有两个方法,print和println,后者不能实现换行
举例:输出一段粗体文字
out.print("<b>这是一段粗体文字</b>");
我们可以用out.print向客户端输出任何信息,比如说输出一个表格,等等。
在网页上使用System.out.println(),信息输出到控制台上。
2.request对象:获取客户端传递到服务器的信息。
request常用方法举例
(1)getParameter
获取客户端传递给服务器的一个参数的值
(2)getParameterNames
获取客户端传递给服务器的所有参数的名字
(3)getParameterValues
获取一个参数的所有值(比如checkbox的情况)
(4)setAttribute
(5)getAttribute attribute=属性
(6)removeAttribute
主要用在struts框架中
必须在同一次请求中设置的属性,才能获取到
(7)getAttributeNames
(8)getCookies,讲Cookie的时候单独讲
cookie 小甜饼,把个人信息存放在客户端的一门技术
(9)getCharacterEncoding
(10)getContentLength
(11)getMethod
(12)getRequestURL
(13)getRemoteAddr
(14)getServerName
(13)getServerPort
(14)getServletPath
(15)getContextPath
(16)getHeader,getHeaders,getHeaderNames
Header:网页头,网页控制信息
request.getHeader("Referer") 来自的网页
3.response对象: 向客户端浏览器输出信息,对客户的请求做成响应
4.session: 会话失效时间 ,tomcat中默认是30分钟,可以设置。 每个用户的会话空间是隔离的。
5.application 应用对象
application,session,request:都可以通过setAttribute来设置属性,用getAttribute来获取属性,但是可见范围不一样。
application对象所设置的属性,所有会话可见,而session对象设置的属性,只有在同一个session中可见。
同样,前面讲过的request,它所设置的属性,只有在同一次请求之间可见。
application 不会过期,在整个服务器运行期间都有效,服务器重启后丢失。
application的其他一些方法:
application.getRealPath()
6.page对象
JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面中,很少使用page对象。
7.config对象:主要作用是取得服务器的配置信息。
常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。
通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8.exception对象
在可能产生错误的文件中用page指令指定errorpage
在所指定的errorpage中,设置isErrorPage="true"这个page指令,然后用exception对象获取错误信息。
<%@page errorPage="error.jsp"%>
session也是需要在页面上设置page指令的。
9.pageContext对象
作用:a.可以用它获取其他八大内置对象的句柄(本身的句柄不用获取)
out pageContext.getOut()
request pageContext.getRequest();
response pageContext.getResponse();
session pageContext.getSession();
application pageContext.getServletContext();
config pageContext.getServletConfig();
exception pageContext.getException();
page pageContext.getPage();
b.可以用它设置或者获取4个不同范围(page,request,session,application)内的变量的值
设置的值只能在本页面内有效
pageContext.setAttribute ("name" , "John") ;
设置的值在同一个request请求中有效。
pageContext.setAttribute("name" , "John", PageContext.REQUEST_SCOPE))
相当于request.setAttribute("name" , "John");
设置的值在同一个session请求中有效。
pageContext.setAttribute("name" , "John", PageContext.SESSION_SCOPE))
相当于session.setAttribute("name" , "John");
设置的值在整个应用中有效。
pageContext.setAttribute("name" , "John", PageContext.APPLICATION_SCOPE))
相当于application.setAttribute("name" , "John");
JSP九大内置对象及四个作用域详解的更多相关文章
- JSP九大内置对象和四个作用域
JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...
- 黑马程序员【JSP九大内置对象和四个作用域】转载
http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ------ ...
- JSP九大内置对象及四个作用域
九大对象: 内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 1-out: javax.servlet.jsp.JspWriter类型,代表输出流的对象.作用 ...
- JSP(二):JSP九大内置对象、四个作用域对象
jsp的九大内置对象: 内置对象: jsp文件在转译成其对应的Servlet文件的时候自动生成的并声明的对象.我们在jsp页面中直接使用即可. 注意: ...
- jsp九大内置对象、四种作用域、跳转方式
jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用. request -> 请求级别 服务器跳转,一次请求之后消失. session -> 会话级别 客户端跳 ...
- jsp九大内置对象及四个作用域【转】
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...
- JSP九大内置对象和四种属性范围解读
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效 request:在一次服务请求范围内,服务器跳转后依然有效 session:-在一次会话范围内 ...
- JSP——九大内置对象和其四大作用域
一.JSP九大内置对象: JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象. Request:代表的是来自客户端的请求,例如我们在FORM ...
随机推荐
- python一对一教程:Computational Problems for Physics chapter 1 Code Listings
作者自我介绍:大爽歌, b站小UP主 ,直播编程+红警三 ,python1对1辅导老师 . 本博客为一对一辅导学生python代码的教案, 获得学生允许公开. 具体辅导内容为<Computati ...
- [atARC088F]Christmas Tree
合并具有交换律,因此即将一个连通块(初始为空)与一条链合并(其中各选1点,初始直接替换) 把插入改为染色,等价于对树上的一条链(包括点和边)染色,其中恰好有1个已经被染色的点(初始任意) 对于&quo ...
- 关于PHP的==运算符比较规则
==是比较运算,它不会去检查比较的具体类型是否相等,只是单纯的根据php内置的转换规则来比较 ===是全等运算,相对来说它的要求更为严格,比较过程不会进行类型转换,从类型到内容都要求相等 ===运算符 ...
- 如何基于 React 封装一个组件
如何基于 React 封装一个组件 前言 很多小伙伴在第一次尝试封装组件时会和我一样碰到许多问题,比如人家的组件会有 color 属性,我们在使用组件时传入组件文档中说明的属性值如 primary , ...
- 职场工作方法论:目标管理SMART原则
目标管理由管理学大师彼得·德鲁克在他的著作<管理实践>(The Practice of Management)一书中提出.SMART原则(Specific具体的, Measurable可衡 ...
- MySQL全面瓦解28:分库分表
1 为什么要分库分表 物理服务机的CPU.内存.存储设备.连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈.为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库 ...
- ABC 210
A 按题意模拟. scanf("%lld%lld%lld%lld",&n,&a,&x,&y); std::cout<<n * x - ( ...
- Codeforces 1411G - No Game No Life(博弈论+生成函数+FWTxor)
Codeforces 题面传送门 & 洛谷题面传送门 一道肥肠套路的题目. 首先这题涉及博弈论.注意到这里每一个棋子的移动方式都是独立的,因此可以考虑 SG 定理.具体来说,我们先求出每个棋子 ...
- Codeforces 1491H - Yuezheng Ling and Dynamic Tree(分块)
Codeforces 题目传送门 & 洛谷题目传送门 *3400 的毒瘤 H 题,特意写个题解纪念一下( 首先对于这种数据结构不太好直接维护的东东可以考虑分块.然鹅我除了分块其他啥也没想到 我 ...
- pyquery解析库的介绍和使用
### pyquery的介绍和使用 ## 测试文本 text = ''' <html><head><title>there is money</title&g ...