虽然现在基本上我们都是使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的。像request、response、session这些对象,即便使用其他框架也是会经常用到的。因此十分有了解的必要。

这些对象可以在JSP页面中调用,而不需要事先定义,这使得JSP编程更加的方便和快捷。其实这些内置对象都对应着某个Servlet类,在JSP被翻译成Servlet之后,这些内置对象会相应转换成对应的类实例。

内置对象特点:

1. 由JSP规范提供,不用编写者实例化。

2. 通过Web容器实现和管理。

3. 所有JSP页面均可使用。

4. 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)。

常用内置对象:

1. 输出输入对象:request对象、response对象、out对象。

2. 通信控制对象:pageContext对象、session对象、application对象。

3. Servlet对象:page对象、config对象。

4. 错误处理对象:exception对象。

1、request对象javax.servlet.http.HttpServletRequest

request内置对象是最常用的对象之一,它代表的是java.servlet.HttpServletRequest类的对象。request内置对象中包含了有关浏览器请求的信息,并提供了多个用于获取cookie、header以及session内数据的方法。

//requeset对象是从客户端向服务器发出的请求,可以通过这个对象了解客户端信息。

isUserInRole(String role) :判断认证后的用户是否属于逻辑的role中的成员。

getAttribute(String name) :返回由name指定的属性值。若不存在则为空。

getAttributes():返回request对象的所有属性的名字集合,其结果是一个枚举的实例。

getCookies() :返回客户端的所有Cookie对象,结果是一个Cookie数组。

getCharacterEncoding(): 返回请求中的字符编码方式。

getContentLength() :返回请求的Body的长度,如果不确定长度,返回-1。

getHeader(String name): 获得HTTP协议定义的文件头信息。

getHeaders(String name): 返回指定名字的request Header的所有值,其结果是一个枚举的。

getHeaderNames():返回所有request Header的名字 ,其结果是一个枚举实例。

getInputStream() :返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法,如GET,POST,HEADER,TRACE等。

getParameter(String name):获得客户端传送给服务器端的参数值。

getParameterNames(): 获得客户端传送给服务器端的所有参数名字,其结果是一个枚举的实例。

getParameterValues(String name): 获得指定参数的所有值。

getProtocol():获取客户端向服务器端传送数据所依据的协议名称。

getQueryString():获得查询字符串,该字符串是由客户端以GET方式向服务器端传送的。

getRequestURI():获取发出请求字符串的客户端地址。

getRemoteAddr():获取客户端IP地址。

getRemoteHost():获取客户端名字 。

getSession([Boolean create]):返回和请求相关的session。create参数是可选的。当有参数create且这个参数值为true时,如果客户端还没有创建session,那么将创建一个新的session。

getServerName():获取服务器的名字。

getServletPath():获取客户端所请求的脚本文件的文件路径。

getServerPort():获取服务器的端口号。

removeAttribute(String name):删除请求中的一个属性。

setAttribute(String name, java.lang.Object obj):设置request的参数值。

2、response对象 javax.servlet.http.HttpServletResponse

response对象和request对象的性质相反,它所包含的是服务器向客户端做出的应答信息.实现过程中response被包装成HttpServletResponse接口,它包含装了JSP产生的响应,然后被发送到客户端以响应客户端的请求。

addCookie(Cookie cook):添加一个Cookie对象,用来保存客户端的用户信息。

addHeader(String name,String value):添加HTTP文件头信息。该Header信息将传达到客户端,如果已经存在同名的则会覆盖。

containsHeader(String name):判断指定字句的Header是否已经存在,返回真假。

encodeURL():使用sessionId封装URL。如果没有封装URL则返回原值。

flushBuffer():强制把当前缓冲区的内容发送到客户端。

getBufferSize():返回缓冲区的大小。

getOutputStream():返回到客户端的输出流。

sendError(int):向客户端发送错误信息。如404 指网页不存在 。

sendRedirect(String location):把响应发送到另一个位置 进行处理 即请求重定向。

setContent(String contentType):设置响应的MIME类型。

getWriter():此方法返回一个PrintWriter对象。

getCharacterEncoding():该方法获得此时相应所采用的字符编码类型。

setDateHeader(String name,heaername,long date):把指定的头名称以及日期设置为响应头信息 其值是从新纪元算起的毫秒数。

setHeader(String name,String value):设置指定名字的HTTP文件头的值,若存在则会覆盖。

3、session对象 javax.servlet.http.HttpSession

Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。

当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。

session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。

session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

getAttribute():获取与指定名字相联系的属性。

getAttributeNames():session对象中存储的每一个对象,其结果为一个枚举的实例。

getCreateTime():返回session的创建时间,最小单位这千分之一秒。

getId():返回唯一的标识,每个session的ID是不同的。

getLastAccessedTime():返回和当前session对象相关的客户端最后发送的请求时间。

setMaxInactiveInterval(int number):该方法设定保存session数据的时间,参数number为秒数。

getMaxInactiveInterval():返回决时间,负值表示session永远不会过期。它的值为session的生存时间。

invalidate():销毁这个对像。

isNew():如果客户端不接受使用session,那么每个请求中都会产生一个session对象。

removeAttribute(String name):删除与指定名字相联系的属性。

setAttribute(String name,java.langObject obj):设置指定名字的属性值 并将 其存储在session中。

4、application对象javax.servlet.ServletContext

application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都是同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。

getAttribute(String name):返回指定名字的application对象的属性的值。

getAttributeNames():返回所有应用程序级对象的属性的名字 ,其结果为枚举的实例。

getInitParameter(String name):返回由指定名字的application对象的某个属性的初始值。

getServletInfo():返回Servlet编译器的当前版本的信息。

setAttribute(String name,Object obj):设置 指定名字的application对象的属性的值 。

removeAttribute(string Key):通过关键字来删除一个对象的信息。

getRealPath(String path):返回虚拟路径的真实路径。

getContext(String URLPath):返回执行Web应用的application对象。

getMajorVersion():返回服务器支持的Servlet API最大版本号。

getMinorVersion():返回服务器支持的Servlet API最小版本号。

getMimeType(String file):返回指定文件的MIME类型。

getResource(String path):返回指定资源的输入流。

getResourceDispathcher(String URLPath):返回指定资源的RequestDispathcher。

getServlet(String name):返回 指定名称的servlet。

getServlets():返回所有的Servlet,返回类型为枚举型。

getServletNames():返回所有的Servlet名称,返回类型为枚举型。

log(String msg):把指定信息写入到Servlet的日志文件中。

log(String msg,Throwable throwable):把轨迹以及给出的Throwable异常说明信息写入Servlet的日志文件。

5、out 对象javax.servlet.jsp.jspWriter

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

Out对象时一个输出流,用来向客户端输出数据。Out对象用于各种数据的输出。

out.print()://输出数据。

out.newLine()://输出一个换行符。

out.flush()://输出缓冲区里的数据。

out.close()://关闭输出流。

out.clearBuffer()://清除缓冲区里的数据,并把数据输出到客户端。

out.clear()://清除缓冲区里的数据,但不会把数据输出到客户端。

out.getBufferSize()://获得缓冲区大小。

out.getRemaining()://获得缓冲区中没有被占用的空间大小。

out.isAutoFlush()://返回布尔值。如果AutoFlush为真 则返回真。

6、pageContext 对象javax.servlet.jsp.PageContext

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。

pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

forward(String UriPath):重定向。

getAttribute(String name,[int scope] ): scope可选。用来检索一个特定的已经 命名的对象的范围,并且还可以通过调用 getAttributeNamesInScope()方法 ,检索对鞭个特定范围的每个属性String字符串名称的枚举。

getException():返回当前的exception对象。

getRequest():返回当前的request对象。

getResponse():返回当前的response对象。

getServletConfig():返回当前页面的ServletConfig对象。

getServletContext():返回ServletContext对象。这个对象对所有页面都是共享的。

getSession():返回当前的session对象。

findAttribute():可以用来按照页面,请求,会话以及应用程序范围顺序实现对某个已经命名的属性的搜索。

setAttribute():可以用来设置默认页面范围或特定范围之中的已命名对象。removeAttribute()可以用来删除默认范围或特定范围内的已命名对象。

7、config 对象javax.servlet.ServletConfig

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

getServletContext():返回执行者的Servlet上下文。

getServletName():返回Servlet的名字。

getInitParameter(String name):返回名字为name的初始参数的值。

getInitParameterNames():返回这个JSP的所有的初始参数的名字。

8 page对象 java.lang.Object

page对象有点类似于Java编程中的this指针,就是指当前JSP页面本身。page是java.lang.Object类的对象。

page.getClass()://获得page对象的类。

page.hashCode()://获得page对象的hash码。

page.toString()://将此page对象转换为String类对象。

page.notify()://唤醒一个等待的进程。

page.notifyAll()://唤醒所有等待的进程。

page.wait()://使一个线程处于等待直到被唤醒。

page.wait(long timeout)://使一个线程处于等待直到timeout或被唤醒。

9、exception 对象java.lang.Throwable

exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。

excepation对象和Java的所有对象一样,都具有系统提供的继承 结构。

exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

exception对象只有在错误页面(在页面指令里有isErrorPage=true的页面)才可以使用。

getMessage()://获取异常消息字符串。
getLocalizeMessage()://获取本地化语言的异常错误。
printStackTrace()://显示异常的栈跟踪轨迹。
toString()://返回关于异常错误的简单消息描述。
fillInStackTrace()://重写异常错误的栈执行轨迹。

今天我们来认识一下JSP的九大内置对象的更多相关文章

  1. servlet的三大作用域对象和jsp的九大内置对象及其四大作用域对象

    servlet的三大作用域对象: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomca ...

  2. jsp学习——九大内置对象

    JSP一共有九个内置对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 博客:JSP的九 ...

  3. jsp的九大内置对象

    九大内置对象 jsp servlet   对象名 类型 使用范围 request HttpServletRequest 请求 浏览器--->服务器 response HttpServletRes ...

  4. jsp页面九大内置对象

    资源转载自网上,不可用于商用,学习可以.内置对象又叫隐式对象/隐含对象是由WEB容器加载的一组类的实例,不需要预先声明就可以在脚本代码和表达式中随意使用的对象. 这九大隐式对象可以按照期作用分类为: ...

  5. jsp的九大内置对象及EL表达式的隐含对象

    九大内置对象: request         request对象具有请求域,即完成客户端的请求之前,该对象一直有效. response       response对象具有页面作用域,即访问一个页面 ...

  6. jsp(九大内置对象,三大指令)

    九大内置对象JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.except ...

  7. JSP基础--九大内置对象

    JSP九大内置对象 Object findAttribute(String name):依次在page.request.session.application范围查找名称为name的数据,如果找到就停 ...

  8. jsp的九大内置对象和四大作用域(转)

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象(作用域)  客户端的 ...

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

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量? JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):? 1.request对象(作用域)? 客户 ...

随机推荐

  1. 15个关于Chrome的开发必备小技巧[译]

    谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...

  2. 如何避免git每次提交都输入密码

    在ubuntu系统中,如何避免git每次提交都输入用户名和密码?操作步聚如下:1: cd 回车: 进入当前用户目录下:2: vim .git-credentials (如果没有安装vim 用其它编辑器 ...

  3. JAVA程序员常用软件整理下载

    ********为了大家学习方便,特意整理软件下载如下:*************Java类软件:-------------------------------JDK7.0:http://pan.ba ...

  4. CentOS7使用firewalld打开关闭防火墙与端口(转载)

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...

  5. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  6. BPM配置故事之案例9-根据表单数据调整审批线路2

    老李:好久不见啊,小明. 小明:-- 老李:不少部门有物资着急使用,现在的审批流程太慢了,申请时增加一个是否加急的选项吧.如果选加急,金额1000以下的直接到我这里,我审批完就通过,超过1000的直接 ...

  7. Oracle 分页

    --1:无ORDER BY排序的写法.(效率最高) --(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ...

  8. MySQL 优化之 MRR (Multi-Range Read:二级索引合并回表)

    MySQL5.6中引入了MRR,专门来优化:二级索引的范围扫描并且需要回表的情况.它的原理是,将多个需要回表的二级索引根据主键进行排序,然后一起回表,将原来的回表时进行的随机IO,转变成顺序IO.文档 ...

  9. 关于javascript中的this关键字

    this是非常强大的一个关键字,但是如果你不了解它,可能很难正确的使用它. 下面我解释一下如果在事件处理中使用this. 首先我们讨论一下下面这个函数中的this关联到什么. function doS ...

  10. 数据分布转换:非正态 -> 正态

    来源:丁香园论坛:SPSS上的把非正态分布数据转换为正态分布数据 一楼 可以应用变量变换的方法,将不服从正态分布的资料转化为非正态分布或近似正态分布.常用的变量变换方法有对数变换.平方根变换.倒数变换 ...