jsp九大内置对象详解

Request:请求对象

Respone:响应对象

Session:会话对象

Application:应用程序对象

Out:输出对象

Config:配置对象

Page:页面对象

PageContext:页面上下文对象

Exception:例外对象

 

request对象

request 对象是 javax.servlet.httpServletRequest类型的对象。该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。例如我们在FORM表单中填写的信息等,是最常用的对象。常用的方法有:getParameter、getAttribute,getParameterNames 和getParameterValues通过调用这几个方法来获取请求对象中所包含的参数的值。

getParameter(Strings) : 获取表单提交的信息
              String  s = request.getParameter("name");

getAttribute(Strings) 获取指定属性的值,如该属性值不存在返回Null

String  s=request.getAttribute(“name”);

setAttribute(String key,Object obj):设置指定名字参数值

Strings=request.setAttribute(“zhuo”,name);
getProtocol() :获取客户使用的协议

getServletPath() :获取客户提交信息的页面

getMethod() :获取客户提交信息的方式  get或post
               String  s = request.getMethod();
getHeader() :获取HTTP头文件中的accept、accept-encoding和host的值
                String  s = request.getHeader("accept");

getRemoteAddr() :获取客户的ip地址
getServerHost() :获取客户机的名称

getServerName() :获取服务器名称
getServerPort() :获取服务器的商口号
getPamameterNames():获取客户端提交的所有参数的名字
                Enumeration  enum = request.getParameterNames();
                while(enum.hasMoreElements()){
                           String  s = (String)enum.nextElement();
                           out.println(s);      
                }

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

getSession(Boolean create):返回和当前客户端请求相关联的HttpSession对象。如果当前客户端请求没有和任何HttpSession对象关联,那么如果create变量为true,则创建一个HttpSession对象并返回,反之返回null。一般与setArribute连用,例如:request.getSession().setAttribute(“zhuo”,name);

getQuertString():返回查询字符串,该字符串由客户端以get方法向服务器端传送。查询字符串出现在页面请求“?”的后面,例如:http://www.njnu.edu.cn/hello.jsp?name=Jack。

getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,则返回-1。

 

 

session对象

在页面的page指令加上session="true" 或缺省 情况下以及在servlet中使用request.getSession();的方式进行创建。超时或服务停止时,session结束。(一个用户对应一个session对象)
              什么是session对象? ----- 它是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离  开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。
             session对象的ID -----当一个客户首次访问服务器上的一个jsp页面时,jsp引擎会产生一个session对象,同时分配一个String类型的的ID号,jsp引擎同时将这个ID号发送到客户端,存放在cookie中,这样,session对象直到客户关闭浏览器后,服务器端,该客户的session对象才会消失,会并,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null。

getAttributeNames():返回session对象中存储的每一个属性对象,结果集是一个Enumeration类的实例。

getCreationTime():返回session对象被创建的时间,单位为毫秒。

getId():返回session对象在服务器端的编号。每生成一个session对象,服务器都会给它一个编号,而且这个编号不会重复,这样服务器才能根据编号来识别session,并且正确地处理某一特定的session及其提供的服务。

getLastAccessedTime():返回当前session对象最后一次被操作的时间,单位为毫秒。

getMaxInactiveInterval ():获取sessionn对象的生存时间,单位为秒。

setMaxInactiveInterval (int interval):设置session对象的有效时间(超时时间),单位为秒。在网站的实际应用中。

例如:设置有效时间为200秒。

       <%session.setMaxInactiveInterval(200);%>

removeAttribute(String name):删除指定属性的属性值和属性名。

setAttribute(String name,Java.lang.Object value):设定指定名字的属性,并且把它存储在session对象中。

invalidate():注销当前的session对象。

 

 

respone对象

对客户的请求做出动态响应,向客户端发送数据。响应客户请求时创建,响应结束时销毁。(一次响应产生一个response对象)

setRedirect(url):把响应发送到另一个指定的页面(url)进行处理。这是最常用的一个方法

sendError(int sc):向客户端发送错误信息。例如:“505指示服务器内部错误”, “404指示网页找不到的错误”

addHeader(String name,String value):添加http头文件,该Header将会传到客户端去,如果有同名的Header存在,那么原来的Header会被覆盖。

setHeader(String name,String value):设定指定名字的http文件头的值,如果该值存在,那么它将会被新的值覆盖。

containsHeader(String name):判断指定名字的http文件头是否存在,并返回布尔值。

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

addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,可以用request对象的getCookies()方法获得这个Cookie。

 

 

out对象

Out对象是一个输出流,用来向客户端输出数据,就是现实在浏览器的页面上,out对象用于各种数据的输出

最常用的为out.print()和out.println()用来输出各种类型的数据

out.close();关闭流

out.getBufferSize();获得当前缓存区大小可以用下面的语句

out.getRemaining();要获得剩余缓存区大小。

 

 

config对象

config对象是ServletConfig类的一个对象,存放着一些Servlet初始化信息,且只有在JSP页面范围内才有效。当一个servlet初始化时,容器把某些信息通过此对象传递给servlet其常用方法如下:

getInitParameter(name):取得指定名字的Servlet初始化参数值。

getInitParameterNames():取得Servlet初始化参数列表,返回一个枚举实例。

getServletContext():取得Servlet上下文(ServletContext)。

 getServletName():取得生成的Servlet的名字。

 

 

pageContext对象

pageContext对象提供存取所有关于jsp程序执行时期所要用到的属性方法,她被封装成java.servlet.jsp.pageContext接口,它的创建和初始化都是容器来完成的,jsp页面里可以直接使用pageContext对象的句柄,pageContext对象的getXXX()、setXXX()和findXXX()方法可以用来根据不同的对象范围实现对这些对象的管理

getAttribute():返回与指定范围内名称有关的变量或null,例如:

forward(String relativeUrlPath):把页面重定向到另一个页面或者Servlet组件上。

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

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

setAttribute():用来设置默认页面的范围或者指定范围之中的已命名对象。

removeAttribute():用来删除默认页面范围或指定范围之中已命名的对象。

 

 

page对象

page对象代表JSP页面本身,只是this引用的一个代名词。对JSP页面创建者通常不可访问,所以一般很少用到该对象。

 

 

exception对象

要使用exception对象,则页面的isErrorPage必须指明为true在Java中利用明为try/catch的关键字来处理异常情况,如果在JSP页面中没有捕捉到的异常,就会生成exception对象,并把这个exception对象传送到在page指令中设定的错误页面中,然后在错误提示页面中处理相应的exception对象

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

 

 

 

application对象

Application对象是用力保存java web应用程序中的使用的变量,所有用户不论何时皆可存取使用这些变量。Application对象最大的特点是没有所谓的生命周期的。生命周期是指客户端的浏览器是否被关闭,application对象都存在于主机上。直到服务器关闭后,application对象才失效。

getAttribute(String name):返回由name指定名字的application对象的属性的值。返回值是一个Object对象,如果没有,则返回null。

getAttributeNames():返回所有application对象属性的名字,结果集是一Enumeration类型的实例。

getInitParameter(String name):返回由name指定名字的application对象的某个属性的初始值,如果没有参数,就返回null。

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

setAttribute(String name, Object obj):将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个属性。

removeAttribute(String name):删除一个指定的属性。

 

 

request、session对象和application是有区别的,一次请求代表了一个request对象,一个客户端对应一个session对象,就是多个页面之间可以共享;而application对象,为多个应用程序保存信息,就是多个浏览器都是共享这个对象的。

 

request session application 的区别演示。
首先建立项目 Application_Session_Request 。在项目中建立一个如下的 JSP 页面 first.jsp ,用于用这三个对象保存数据。
[html]  view plain copy print ?
 
  1. <%@ page language = "java" pageEncoding = "gb2312"%>  
  2. <html>  
  3. <body>  
  4.     <%  
  5.         request.setAttribute("request","保存在Request中的内容");  
  6.         session.setAttribute("session","保存在Session中的内容");  
  7.         application.setAttribute("application","保存在Application中的内容");  
  8.       %>  
  9.        <jsp:forward page="second.jsp"></jsp:forward>  
  10. </body>  
  11. </html>  

然后再建立另一个 JSP 页面 second.jsp ,用于获取这三个对象保存的值。
 
[html]  view plain copy print ?
 
  1. <%@ page language="java" pageEncoding="gb2312"%>  
  2. <html>  
  3.     <head>  
  4. </head>  
  5. <body>  
  6.       <%  
  7.         out.println("request:"+(String)request.getAttribute("request")+"<br>");  
  8.         out.println("session:"+(String)session.getAttribute("session")+"<br>");  
  9.         out.print("application:"+(String)application.getAttribute("application")+"<br>");  
  10.       %>  
  11. </body>  
  12. </html>  

部署运行,打开浏览器,输入 http://localhost:8080/Application_Session_Request/first.jsp ,会发现这三个对象保存的内容都能取出,如图 所示:
 
jsp九大内置对象详解
 
在浏览器中输入 http://localhost:8080/Application_Session_Request/second.jsp ,结果如图 所示:
 
 
jsp九大内置对象详解
 
 
如果再重新打开一个浏览器,直接输入如上图 一样的 URL ,由于不是同一会话, request 对象及 session 对象都失效了,仅 application 对象仍然有效,如图 所示。
 
jsp九大内置对象详解

 

 

你可能感兴趣的:(jsp,对象)