JSP九大内置对象辨析
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6043096.html
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception。
一、request
当客户端向服务器发出一次请求时,就是通过request对象进行的数据传输。客户端把请求的行为以及向服务器传递的数据封装到request对象中,而服务器可以通过这个对象了解客户端的具体信息、提取请求的详细内容、获取请求中附带的参数等,然后服务器通过程序对请求进行处理,最后返回一个响应。request对象常用的方法有:
getAttribute(String name) 返回由name指定的属性值。若不存在则为空
getAttributes()返回request对象的所有属性的名字集合,其结果是一个枚举的实例。
getCookies() 返回客户端的所有Cookie对象,结果是一个Cookie数组。
getCharacterEncoding() 返回请求中的字符编码方式。
getHeader(String name) 获得HTTP协议定义的文件头信息
getHeaders(String name) 返回指定名字的request Header的所有值,其结果是一个枚举的
getHeaderNames()返回所有request Header的名字 ,其结果是一个枚举实例。
getMethod() 获得客户端向服务器端传送数据的方法,如:GET,POST。
getParameter(String name)获得客户端传送给服务器端的参数值。
getParameterNames() 获得客户端传送给服务器端的所有参数名字,其结果是一个枚举的实例
getParameterValues(String name) 获得指定参数的所有值。
getProtocol() 获取客户端向服务器端传送数据所依据的协议名称
getRequestURI() 获取发出请求字符串的客户端地址
getRemoteAddr() 获取客户端IP地址
getRemoteHost() 获取客户端名字
getSession([Boolean create]) 返回和请求相关的session。create参数是可选的。当有参数create且这个参数值为true时,如果客户端还没有创建session,那么将创建一个新的session。
getServerName() 获取服务器的名字
getServerPort() 获取服务器的端口号
removeAttribute(String name) 删除请求中的一个属性
二、response
客户端向服务器发出请求时,是通过具体的 路径名 来发出的,那个路径名就是服务器中对这个请求做出处理的文件。该文件中的代码围绕“获取请求、提取数据、处理请求、返回结果”来工作的。文件的最后,会返回一个响应给客户端,用结果来回应其请求。这个响应,就是response对象。服务器就是通过respose对象的一些列方法把结果传送回客户端的。常用方法有:
addCookie(Cookie cook) 添加一个Cookie对象,用来保存客户端的用户信息
addHeader(String name,String value) 添加HTTP文件头信息。该Header信息将传达到客户端,如果已经存在同名的则会覆盖
flushBuffer() 强制把当前缓冲区的内容发送到客户端
getOutputStream() 返回到客户端的输出流
sendError(int) 向客户端发送错误信息,参数为http状态码,如404 not found.
sendRedirect(String location) 把响应发送到另一个页面请求进行处理 即:重定向
getCharacterEncoding() 该方法获得此时相应所采用的字符编码类型
setHeader(String name,String value) 设置指定名字的HTTP文件头的值,若存在则会覆盖。
request与response的工作关系如下:
三、seesion
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。
当一个客户端向服务器发出请求,与服务器建立起连接时,就建立了一次会话,服务器中就会为该会话(session)对象开辟一片空间,存放该次会话的一些共享的信息。在session对象中封装的属性会被本次会话中的所有页面、请求、响应所共享。比如:登录状态的标记。在用户通过登录页面向服务器发出登录请求并成功登录后,服务器为seesion对象开辟了一片内存空间,存放各种属性信息。这时可以设置一个属性为isLogin=true。此后的每个页面,都可以访问session对象的isLogin属性,依据其值的真假判断是否已登录,进而提供不同的界面显示、操作权限。会话的关闭是通过关闭浏览器实现的。当浏览关闭后,重新发出请求的话,就会建立新的会话,拥有新的session对象。当然,也可以选择用另一个浏览器访问服务器,也会建立新的会话,拥有新的session对象。而会话中断后留在服务器中的空闲session对象将会被回收。
常用方法有:
getAttribute()获取与指定名字相联系的属性
getAttributeNames()session对象中存储的每一个对象,其结果为一个枚举的实例
getCreateTime() 返回session的创建时间,最小单位这千分之一秒
getId() 返回唯一的标识,每个session的ID是不同的
getLastAccessedTime()返回和当前session对象相关的客户端最后发送的请求时间
invalidate() 销毁这个对象,
removeAttribute(String name) 删除与指定名字相联系的属性
setAttribute(String name,java.langObject obj) 设置指定名字的属性值并存储在session中,注意:属性值可以是一个对象!!!
四、application
如果说session是一次会话的“全局变量”,那么application就是整个服务器的“全局变量”。application 对象可将信息保存在服务器中,直到服务器关闭。从服务器启动那一刻起,就会自动创建application对象,直到服务器关闭。期间,所有连接到该服务器上的客户都能访问这个application对象,不同客户、不同会话访问到的application对象都是同一个。换言之,application对象就是用来操作整个web服务器的。
常用方法有:
getAttribute(String name)返回指定名字的application对象的属性的值
getAttributeNames() 返回所有应用程序级对象的属性的名字 ,其结果为枚举的实例
setAttribute(String name,Object obj) 设置 指定名字的application对象的属性的值
removeAttribute(string Key)通过关键字来删除一个对象的信息
getRealPath(String path)返回虚拟路径的真实路径
getContext(String URLPath)返回执行Web应用的application对象
getResource(String path) 返回指定资源的输入流
getServlet(String name) 返回 指定名称的servlet
getServlets() 返回所有的Servlet,返回类型为枚举型
getServletNames() 返回所有的Servlet名称,返回类型为枚举型
log(String msg,Throwable throwable)把轨迹以及给出的Throwable异常说明信息写入Servlet的日志文件
session、application的关系如图:
五、page
一个page对象就是一个jsp页面,是当前jsp编译后的Servlet类的对象。我们可以通过page对象宏观地操作当前页面的状态,或者获取当前页面的servlet类。(注意:是宏观地操作,把jsp页面作为一个类,一个整体来指挥。但不能通过page对象获取页面的详细信息,或进行属性配置)
常用方法:
page.getClass()获得page对象的类
page.hashCode()获得page对象的hash码
page.toString()将此page对象转换为String类对象
page.notify()唤醒一个等待的进程
page.notifyAll()唤醒所有等待的进程
page.wait()使一个线程处于等待直到被唤醒
page.wait(long timeout)使一个线程处于等待直到timeout或被唤醒
六、pageContext
pageContext对象提供了对JSP页面 所有的对象及命名空间 的访问,是一个实现访问JSP页面之间的数据、方法共享的容器,其提供存取所有关于jsp程序执行时期所要用到的属性方法。“页面上下文对象”的意思是之前的、当前的、之后的范围合一。比如:一个jsp页面,有请求接入(之前的),有当前页面内容(当前的),有对请求做出的响应(之后的),这三个范围加起来就是一个上下文对象。所以通过pageContext可以获取接入当前页面的请求、可以获取当前会话的session对象、可以获取当前页面将要作出response对象,可以获取当前页面出现的错误信息......总而言之,凡是与当前jsp页面有关联的一切对象、信息的统一,就是pageContext对象。所以,pageContext 对象的作用就是取得所有与当前页面有关的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。
常用方法:
getAttribute(String name,[int scope] ) scope用来检索一个特定的已经 命名的对象的范围
getAttributeNamesInScope()方法 ,检索对鞭个特定范围的每个属性String字符串名称的枚举。
getException()返回当前的exception对象
getRequest()返回当前的request对象
getResponse()返回当前的response对象
getServletConfig()返回当前页面的ServletConfig对象
getServletContext()返回ServletContext对象。这个对象对所有页面都是共享的
getSession() 返回当前的session对象
findAttribute() 按照页面,请求,会话以及应用程序范围顺序 实现对某个已经命名的属性的搜索。
setAttribute() 可以用来设置默认页面范围或特定范围之中的已命名对象。
removeAttribute()可以用来删除默认范围或特定范围内的已命名对象
page与pageContext关系如下图:
七、out
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
常用方法:
out.print()输出数据
out.println()输出数据并换行
out.newLine()输出一个换行符
out.flush()输出缓冲区里的数据
out.close()关闭输出流
out.clearBuffer()清除缓冲区里的数据,并把数据输出到客户端
out.clear()清除缓冲区里的数据,但不会把数据输出到客户端
out.getBufferSize()获得缓冲区大小
八、config
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。一般这个很少用到,开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。而不必在代码中用config对象来显式配置了。
九、exception
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用。在Java中利用try/catch的关键字来处理异常情况,但如果在JSP页面中没有用try-catch捕捉并处理异常,那么就会生成exception对象,并把这个exception对象传送到在page指令中设定的错误页面中,然后在错误提示页面中处理相应的exception对象。
常用方法:
getMessage()获取异常消息字符串
printStackTrace()显示异常的栈跟踪轨迹
toString()返回关于异常错误的简单消息描述
JSP九大内置对象辨析的更多相关文章
- JSP九大内置对象的作用和用法总结?
JSP九大内置对象的作用和用法总结? 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTT ...
- JSP 九大内置对象
JSP 九大内置对象: 一 out对象主要用来向客户端输出各种数据类型内容,并且管理应用服务器上的输出缓冲区.out.print()//输出数据out.newLine()//输出一个换行符out.fl ...
- Jsp九大内置对象及其作用域
本文主要介绍Jsp九大内置对象及其作用域,着重介绍几个常用的,希望对初学者有所帮助. 1 Jsp九大内置对象 2 详细介绍 2.1 request javax.servlet.http.HttpSer ...
- JSP九大内置对象分析
JSP九大内置对象分为三类: 1.输入输出对象:out对象.response对象.request对象 2.通信控制对象:pageContext对象.session对象.application对象 3. ...
- JSP九大内置对象(转载)
JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...
- JSP九大内置对象和四个作用域
JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...
- JSP九大内置对象和四种属性范围解读
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
- JSP——九大内置对象和其四大作用域
一.JSP九大内置对象: JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象. Request:代表的是来自客户端的请求,例如我们在FORM ...
- 一、JSP九大内置对象 二、JAVAEE三层架构和MVC设计模式 三、Ajax
一.JSP九大内置对象###<1>概念 不需要预先申明和定义,可以直接在jsp代码中直接使用 在JSP转换成Servlet之后,九大对象在Servlet中的service方法中对其进行定义 ...
随机推荐
- 云服务器 ECS Linux 系统安装图形化桌面 (centos7 ubuntu14)
基于性能及通用性等因素,默认情况下,阿里云官方公共 Linux 系统镜像不会安装图形化桌面组件.本文简述了常用操作系统图形化桌面安装说明,您可以根据需求进行配置系统. 注意:图形化桌面可能会 显著降低 ...
- 开源项目MultiChoiceAdapter详解(三)——MulitChoiceNormalArrayAdapter的使用
MulitChoiceNormalArrayAdapter是我自己定义的一个类,其实就是实现了MulitChoiceArrayAdapter,为什么做这个简单的实现类呢,因为这样我们在不用Action ...
- [Web 前端] 解决因inline-block元素导致的空白间距和元素下沉
cp from : https://www.jianshu.com/p/617e78a27c88 ** 前言: ** CSS 中的 display:inline-block 是笔者最为喜欢的元素之一, ...
- 让java从Mysql返回多个ResultSet
首先,JDBC对于SQLSERVER来说默认是支持返回,但对于MySql来说,只默认支持存储过程返回多个ResultSet,那对于手写SQL怎么办. 其实很简单,只要一个在连接字符串中加一个参数:al ...
- 联想昭阳(Lenovo)
1996年,联想®昭阳系列推出了第一台笔记本电脑S5100.在经历了十几年的发展之后,联想昭阳系列也成为了国内市场占有率最高的国产商用笔记本品牌之一.昭阳品牌对于联想意义非凡,不仅仅是因为首款联想笔记 ...
- [转]thinkphp在iis下的rewrite伪静态的配置方法
From : http://code-tech.diandian.com/post/2012-11-12/40042151797 首先你要安装IIS下的rewrite组建,下载地址:Rewrite.z ...
- maven-shade-plugin 入门指南
1. Why? 通过 maven-shade-plugin 生成一个 uber-jar,它包含所有的依赖 jar 包. 2. Goals Goal Description shade:help Dis ...
- 有序数组每个数平方后,不同数字的个数?O(n)
此乃一道笔试题,当时的确也做出来啦.(但是在细节上还是出错啦,对多次重复出现的数字可能会重复计数,没有记录上次删除的元素) 如题,有序数组,可以知道平方之后在两边的数据较大,中间的数据较小. 因此可以 ...
- 仿qq底部的提示标记
看到一个比較不错的开源项目,分享给大家: <?xml version="1.0" encoding="utf-8"?> <RelativeLa ...
- 【Scala】Scala-Map使用方法
Scala-Map使用方法 scala map put_百度搜索 Scala中的Map使用例子 - CSDN博客 How to populate java.util.HashMap on the fl ...