java Web jsp四大作用域和九大内置对象
JSP中的四大作用域:page、request、session、application
这四大作用域,其实就是其九大内置对象中的四个,为什么说他们也是JSP的四大作用域呢?因为这四个对象都能存储数据,比如request.setAttribute()注意和request.setParameter()区分开来,一个是存储在域中的、一个是请求参数,session.setAttribute()、application其实就是SerlvetContext,自然也有setAttribute()方法。而page作用域的操作就需要依靠pageContext对象来进行了。在上面我们也有提到JSP的四大作用域,
page作用域:代表变量只能在当前页面上生效
request:代表变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B
session:代表变量能在一次会话中生效,基本上就是能在web项目下都有效,session的使用也跟cookie有很大的关系。一般来说,只要浏览器不关闭,cookie就会一直生效,cookie生效,session的使用就不会受到影响。
application:代表变量能一个应用下(多个会话),在服务器下的多个项目之间都能够使用。
-------------------------------------------------------------------------------------------------------------------------------------
JSP有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使用
JSP九大内置对象分为四类:
- 输入输出对象:out对象(作用域 Page)、response对象(作用域 Page)、request对象(作用域 Request)
- 通信控制对象:pageContext对象(作用域 Page)、session会话对象(作用域 Session)、application对象(作用域 Application)
- Servlet对象:page对象(作用域 Page)、config对象(作用域 Page)
- 错误处理对象:exception对象(作用域 page)
九种对象简介:
- out对象:用于向客户端、浏览器输出数据。
- request对象:封装了来自客户端、浏览器的各种信息。
- response对象:封装了服务器的响应信息。
- exception对象:封装了jsp程序执行过程中发生的异常和错误信息。
- config对象:封装了应用程序的配置信息。
- page对象:指向了当前jsp程序本身。
- session对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数
- application对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。
- pageContext对象:提供了对jsp页面所有对象以及命名空间的访问。
1.out对象(常用)
out对象是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。
out对象方法介绍:
|
方法名 |
说明 |
|
print或println |
输出数据 |
|
newLine |
输出换行字符 |
|
flush |
输出缓冲区数据 |
|
close |
关闭输出流 |
|
clear |
清除缓冲区中数据,但不输出到客户端 |
|
clearBuffer |
清除缓冲区中数据,输出到客户端 |
|
getBufferSize |
获得缓冲区大小 |
|
getRemaining |
获得缓冲区中没有被占用的空间 |
|
isAutoFlush |
是否为自动输出 |
2.request对象(常用)
request对象封装了从客户端到服务器发出的请求信息。
request对象方法介绍:
|
方法名 |
说明 |
|
isUserInRole |
判断认证后的用户是否属于某一成员组 |
|
getAttribute |
获取指定属性的值,如该属性值不存在返回Null |
|
getAttributeNames |
获取所有属性名的集合 |
|
getCookies |
获取所有Cookie对象 |
|
getCharacterEncoding |
获取请求的字符编码方式 |
|
getContentLength |
返回请求正文的长度,如不确定返回-1 |
|
getHeader |
获取指定名字报头值 |
|
getHeaders |
获取指定名字报头的所有值,一个枚举 |
|
getHeaderNames |
获取所有报头的名字,一个枚举 |
|
getInputStream |
返回请求输入流,获取请求中的数据 |
|
getMethod |
获取客户端向服务器端传送数据的方法 |
|
getParameter |
获取指定名字参数值 |
|
getParameterNames |
获取所有参数的名字,一个枚举 |
|
getParameterValues |
获取指定名字参数的所有值 |
|
getProtocol |
获取客户端向服务器端传送数据的协议名称 |
|
getQueryString |
获取以get方法向服务器传送的查询字符串 |
|
getRequestURI |
获取发出请求字符串的客户端地址 |
|
getRemoteAddr |
获取客户端的IP地址 |
|
getRemoteHost |
获取客户端的名字 |
|
getSession |
获取和请求相关的会话 |
|
getServerName |
获取服务器的名字 |
|
getServerPath |
获取客户端请求文件的路径 |
|
getServerPort |
获取服务器的端口号 |
|
removeAttribute |
删除请求中的一个属性 |
|
setAttribute |
设置指定名字参数值 |
3.response对象(常用)
response对象主要用于对客户端的请求进行回应。
以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
response对象方法:
|
方法名 |
说明 |
|
addCookie |
添加一个Cookie对象 |
|
addHeader |
添加Http文件指定名字头信息 |
|
containsHeader |
判断指定名字Http文件头信息是否存在 |
|
encodeURL |
使用sessionid封装URL |
|
flushBuffer |
强制把当前缓冲区内容发送到客户端 |
|
getBufferSize |
返回缓冲区大小 |
|
getOutputStream |
返回到客户端的输出流对象 |
|
sendError |
向客户端发送错误信息 |
|
sendRedirect |
把响应发送到另一个位置进行处理 |
|
setContentType |
设置响应的MIME类型 |
|
setHeader |
设置指定名字的Http文件头信息 |
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.可以用它获取其他八大内置对象的句柄(本身的句柄不用获取)
| 返回类型 | 方法名 | 作用 |
|---|---|---|
| JspWriter | getOut() | 用于获取out隐式对象 |
| Object | getPage() | 用于获取page隐式对象 |
| ServletRequest | getRequest() | 用于获取request隐式对象 |
| ServletResponse | getResponse() | 用于获取response隐式对象 |
| HttpSession | getSession() | 用于获取session隐式对象 |
| Exception | getException() | 用于获取exception隐式对象 |
| ServletConfig | getServletConfig() | 用于获取config隐式对象 |
| ServletContext | getServletContext() | 用于获取application隐式对象 |
b.可以用它设置或者获取4个不同范围(page,request,session,application)内的变量的值
| 返回类型 | 方法名 | 作用 |
|---|---|---|
| void | setAttribute(String name,Object value) | 向page域容器存放属性 |
| void | setAttribute(String name,Object value,int scope) | 向指定域容器存放属性 |
| Object | getAttribute(String name,int scope) | 根据name获取指定域的属性值 |
| void | removeAttribute(String name,int scope) | 删除指定容器内名称为name的属性 |
| void | removeAttribute(String name) | 删除所有容器内名称为name的属性 |
| Object | findAttribute(String name) | 从4个域对象中依次查找名称为name的属性 |
比如:
设置的值只能在本页面内有效
pageContext.setAttribute (String name , Object value) ;
设置的值在同一个request请求中有效。
pageContext.setAttribute(String name , Object value, PageContext.REQUEST_SCOPE))
相当于request.setAttribute(String name , Object value); eg: request.setAttribute("name", "alex");
设置的值在同一个session请求中有效。
pageContext.setAttribute(String name , Object value, PageContext.SESSION_SCOPE))
相当于session.setAttribute(String name , Object value);
设置的值在整个应用中有效。
pageContext.setAttribute(String name , Object value, PageContext.APPLICATION_SCOPE))
相当于application.setAttribute(String name , Object value);
对应的get方法就不再详细列出了;
按照 page request session application顺序取:
pageContext.findAttribute(String name);
删除所有域中的值:
pageContext.removeAttribute(String name);
删除指定域中的值:
pageContext.removeAttribute(String name, int scope);
java Web jsp四大作用域和九大内置对象的更多相关文章
- Java Web开发技术教程入门-JSP基本语法和九大内置对象
这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...
- JavaWeb(二)jsp运行原理,九大内置对象
JSP运行原理: 每个JSP页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ...
- Java Web(五) JSP详解(四大作用域九大内置对象等)
前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...
- web开发(五) JSP详解(四大作用域九大内置对象等)
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6427759.html>,在此仅供学习参考之用. 一.JS ...
- 【转载】JSP详解(四大作用域九大内置对象等)
前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...
- jsp九大内置对象 ,三大指令,四大作用域,七大动作
九大内置对象: application:应用程序对象 对整个web工程都有效 request:对当前请求的封装 pageConfig:只对当前页面有效,里面封装了基本request和session的对 ...
- JSP九大内置对象和四大作用域和Servlet的三大作用域对象
一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...
- servlet的三大作用域对象和jsp的九大内置对象及其四大作用域对象
servlet的三大作用域对象: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomca ...
- 转载:jsp九大内置对象和四大作用域
摘要: JSP的九大内置对象: page,application,session,request,response,out,exception,config,pageContext. JSP的四个作用 ...
随机推荐
- QGrapicsScene类
概述 QgraphicsScene类为管理大量的2D图形item提供了一个管理界面,做为item的容器,它配合使用QgraphicsView使用来观察items,例如线,矩形,文本或者自定义的item ...
- what is out of band mode.
Most of the steps are the same, except instead of sending an URL as the oauth_callback to request_to ...
- svn: E220001: 遇到不可读的路径;拒绝访问。
在客户端试图 svn merge 总是报svn: E220001: 遇到不可读的路径:拒绝访问.这个错误 提示 : SVN 遇到不可读的路径:拒绝访问. 英文是: Unreadable path en ...
- 《DSP using MATLAB》示例Example7.22
代码: h = [1, 2, 3, 4, 3, 2, 1]/15; M = length(h); n = 0:M-1; [Hr, w, a, L] = Hr_Type1(h); a L amax = ...
- SqlServer 数据库负载均衡【转】
负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作.共同负载.均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器. 1. ...
- Linq:Grouping Operators
[Category("Grouping Operators")] [Description("This sample uses group by to partition ...
- js删除局部变量的实现方法
lert('value:'+str+'\ttype:'+typeof(str)) //声明变量前,引用 var str="dd"; alert('value:'+str+'\tty ...
- OpenWRT mt7620n 系统升级引起的问题
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianguozheng/article/details/27237175 OpenWRT系统升级採用 ...
- js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
本文为大家详细介绍下使用js实现遮罩弹出层居中,且随浏览器窗口滚动条滚动,示例代码如下,感兴趣的朋友可以参考下, js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动) 下面看看我的原始代码: & ...
- RbbitMQ基础知识
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间 ...