zoukankan      html  css  js  c++  java
  • JSP内置对象详细介绍(上)<转载>

    第一个问题: 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元素配置,每个<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页面中加上
    <%–使用response对象的setIntHeader设置属性Refresh的值(单位为秒)来实现页面自动刷新–%> <% response.addIntHeader(“Refresh”,10); %>
    实例2:实现页面自动跳转:可以通过response对象的setHeader()方法添加一个标题为Refresh的标头,并制定页面跳转时间及跳转页 面,从而实现页面自动跳转。 <% response.setHeader(“Refresh”,”10;URL=http://www.baidu.com”); %>
    这里使用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教程网_汇聚人的力量,做中国最全面的Struts教程。 » JSP内置对象详细介绍(上)

  • 相关阅读:
    Laravel kalnoy/nestedset
    Eloquent Subquery Enhancements in Laravel 6.0
    Laravel 6.0 中更加强劲的子查询
    Es6系列之module and class
    Using Laravel's Bootable Eloquent Traits
    Google Chrome Shortcut Keys
    另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新
    docker-machine 创建主机的缺省密码 (Default User and Password)
    eslint Cannot read property 'range' of null错误( Quasar Doc )$ quasar dev 出错
    java比较排序Comparable和Comparator
  • 原文地址:https://www.cnblogs.com/af826/p/3766532.html
Copyright © 2011-2022 走看看