标签:des   class   java   ext   int   http   
第一个问题: JSP有多少类内置对象?
要想回答好这个问题,首先是对JSP的基本知识和技术有深刻的理解和掌握。主要有九个
内置对象:application对象,config对象,exception对象,out对象,page对象,pageContext对象,request对象,reponse对象,session对象。
第二个问题:JSP的内置对象都是什么类型的?这些对象的作用是什么?它们常用的方法是什么呢?
(1)application对象:javax.servlet.ServletContext的实例。该实例代表JSP所属的Web应用本身,可用于JSP或者Servlet之间交换信息。常用的方法有:
| 
       方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
       getMajorVersion() 
 | 
    
       int 
 | 
    
       获取主要的Servlet API版本 
 | 
| 
       getMinorVersion() 
 | 
    
       int 
 | 
    
       获取次要的Servlet API版本 
 | 
| 
       getServerInfo() 
 | 
    
       String 
 | 
    
       获取服务器版本 
 | 
| 
       getMimeType() 
 | 
    
       String 
 | 
    
       获取指定文件的MIME类型 
 | 
| 
       getContext() 
 | 
    
       ServerContext 
 | 
    
       获取指定Local的Application context 
 | 
| 
       getRealPath 
 | 
    
       String 
 | 
    
       获取指定path的绝对路径 
 | 
| 
       getInitParameter(name) 
 | 
    
       String 
 | 
    
       获取Servlet初始化参数 
 | 
getInitParameter(String 
paramName)用来获取Web应用的配置参数,这些配置参数应该在Web.xml文件中使用context-param元素配置,每个元素配置一个参数。
注意:每个Web应用只有一个ServletContext实例,在JSP页面可以通过application内置对象访问该实例,而在Servlet中则必须通过代码获取:ServletContext 
sc= getServletConfig().get ServletContext();
(2)config对象:javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息,事实上,JSP页面通常无须配置,也就不存在配置信息了。更多的在Servlet中使用。
| 
       方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
       getInitParameter(name) 
 | 
    
       String 
 | 
    
       获取Servlet初始化参数 
 | 
| 
       getInitParameterNames() 
 | 
    
       Enumeration 
 | 
    
       获取Servlet所有初始化参数名称 
 | 
| 
       getServletContext() 
 | 
    
       ServletContext 
 | 
    
       获取当前Application context 
 | 
| 
       getServletName() 
 | 
    
       String 
 | 
    
       获取Servlet名称 
 | 
(3)exception对象:java.lang.Throwable的实例,只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时候,该属性才可以使用。
(4)out对象:javax..servlet.jsp.JspWriter的实例,该实例代表JSP页面的输出流,用于输出内容,形成HTML页面。表达式的本质就是out.writer方法。
| 
       方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
       clear() 
 | 
    
       void 
 | 
    
       清除网页上输出内容 
 | 
| 
       clearBuffer() 
 | 
    
       void 
 | 
    
       清除缓冲区内容 
 | 
| 
       close() 
 | 
    
       void 
 | 
    
       关闭缓冲区,清除所有内容 
 | 
| 
       getBufferSize() 
 | 
    
       int 
 | 
    
       取得缓冲区大小 
 | 
| 
       getRemaining() 
 | 
    
       int 
 | 
    
       取得缓冲区剩余大小 
 | 
| 
       isAutoFulsh() 
 | 
    
       boolean 
 | 
    
       获得缓冲区是否进行自动清除的信息 
 | 
| 
       print(String str) 
 | 
    
       void 
 | 
    
       进行页面输出 
 | 
| 
       println(String str) 
 | 
    
       void 
 | 
    
       进行页面输出并换行 
 | 
(5)page对象:代表该页面本身,通常没有多少作用的。也就是servlet中的this。
(6)pageContext对象:PageContext的实例,该实例代表JSP页面上下文,使用该对象可以访问页面的共享数据。常用的方法为:getServletContext和getServletConfig方法。详细介绍见下面内容。
(7)request对象:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都将封装到该对象里面。获得参数的方法有:
| 
        方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
        getParameter(String name) 
 | 
    
       String 
 | 
    
        获取参数名为name的参数值 
 | 
| 
        getParameterNames() 
 | 
    
       Enumeration 
 | 
    
        获取所有参数的名称,可与上一个方法合用获取所有参数的值 
 | 
| 
        getParameterValues(String name) 
 | 
    
        String[] 
 | 
    
        获取参数名为name的所有参数,比如参数是多个checkbox 
 | 
| 
        getParameterMap() 
 | 
    
        Map 
 | 
    
        获取所有参数封装的Map实例,通过Map实例的String[] 
      get(“id”)方法返回对应参数名为id的值数组 
 | 
其他的方法有:
| 
        方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
       getHeader(String name) 
 | 
    
       String 
 | 
    
       获取指定标题名称为name的标头 
 | 
| 
       getHeaderName() 
 | 
    
       Enumeration 
 | 
    
       获取所有的标头名称 
 | 
| 
       getIntHeader(String name) 
 | 
    
       int 
 | 
    
       获取标题名称为name的标头,内容以整数类型返回 
 | 
| 
       getDateHeader(String name) 
 | 
    
       long 
 | 
    
       获取标题名称为name的标头,内容以日期类型返回 
 | 
| 
       getCookies() 
 | 
    
       Cookie 
 | 
    
       获取相关的Cookie 
 | 
| 
       getContextPath() 
 | 
    
       String 
 | 
    
       获取Context的路径 
 | 
| 
       getMethod() 
 | 
    
       String 
 | 
    
       获取客户端的提交方式 
 | 
| 
       getProtocol() 
 | 
    
       String 
 | 
    
       获取使用的HTTP协议 
 | 
| 
       getQueryString() 
 | 
    
       String 
 | 
    
       获取请求的字符串 
 | 
| 
       getRequestSessionId() 
 | 
    
       String 
 | 
    
       获取客户端的Session ID 
 | 
| 
       getRequestURI() 
 | 
    
       String 
 | 
    
       获取请求的URI 
 | 
| 
       getRemoteAddr() 
 | 
    
       String 
 | 
    
       获取客户端IP地址 
 | 
(8)reponse对象:javax.servlet.http.HttpServletReponse的实例,代表了服务器对客户端的响应,通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应。而response对象常用于重定向,常用的方法是getOutStream,sendRedirect方法等。
| 
       方法 
 | 
    
       返回值 
 | 
    
       方法说明 
 | 
| 
       addCookie(Cookie cookie) 
 | 
    
       void 
 | 
    
         
 | 
| 
       addDateHeader(String name,long date) 
 | 
    
       void 
 | 
    
         
 | 
| 
       addHeader(String name,String value) 
 | 
    
       void 
 | 
    
         
 | 
| 
       addIntHeader(String name,int value) 
 | 
    
       void 
 | 
    
         
 | 
| 
       setDateHeader(String name,long date) 
 | 
    
       void 
 | 
    
         
 | 
| 
       setHeader(String name,String value) 
 | 
    
       void 
 | 
    
         
 | 
| 
       setIntHeader(String name,int value) 
 | 
    
       void 
 | 
    
         
 | 
| 
       sendError(int sc) 
 | 
    
       void 
 | 
    
       传送状态码 
 | 
| 
       sendError(int sc,String msg) 
 | 
    
       void 
 | 
    
       传送状态码和错误信息 
 | 
| 
       setStatus(int sc) 
 | 
    
       void 
 | 
    
       设置状态码 
 | 
| 
       sendRedirect(String URL) 
 | 
    
       void 
 | 
    
       页面重定向,用来实现页面跳转 
 | 
注:这里的response对象的sendRedirect(String 
URL)方法设置页面重定向将改变浏览器地址栏信息,所以也称客户端跳转。
实例1:response对象实现页面的自动刷新:只需要早JSP页面中加上
实例2:实现页面自动跳转:可以通过response对象的setHeader()方法添加一个标题为Refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。 
这里使用setHeader方法添加一个标题为”Refresh”,值为”10,URL=http://www.baidu.com”的标头。
(9)session对象:javax.servlet.http.HttpServletReponse的实例,代表一次回话。当客户端浏览器与站点建立连接时候,会话开始;当客户端关闭浏览器时,回话结束。
| 
       方法 
 | 
    
       返回值类型 
 | 
    
       方法说明 
 | 
| 
       getId() 
 | 
    
       String 
 | 
    
       获取session的ID 
 | 
| 
       getCreationTime() 
 | 
    
       long 
 | 
    
       获取session的生成时间 
 | 
| 
       getLashAccessedTime() 
 | 
    
       long 
 | 
    
       获取用户最后通过session发送请求时间 
 | 
| 
       getMaxInactiveInterval() 
 | 
    
       long 
 | 
    
       获取session生命周期,如果超过这个时间则失效 
 | 
| 
       invalidate() 
 | 
    
       void 
 | 
    
       清空session内容 
 | 
| 
       isNew() 
 | 
    
       boolean 
 | 
    
       判断session是否为“新”的 
 | 
| 
       setMaxInactiveInterval() 
 | 
    
       void 
 | 
    
       设置session生命周期,如果超过这个时间则失效 
 | 
第三个问题:JSP内置对象的在什么情况下产生的呢?
一个JSP页面对应一个Servlet类,每个Servlet类有三个方法:
init方法:初始化JSP/Servlet的方法。
destory方法:销毁JSP/Servlet的方法。
service方法:对用户请求产生响应的方法。
request对象和reponse对象是service方法的形参,application对象,page对象,out对象,pageContext对象,session对象都是service的方法里面生成的局部变量。
转载请自:Struts教程网(网易旗下) ? JSP内置对象详细介绍(上)
【转】JSP内置对象详细介绍(上),搜素材,soscw.com
【转】JSP内置对象详细介绍(上)
标签:des   class   java   ext   int   http   
原文地址:http://www.cnblogs.com/live365wang/p/3709547.html