• 《JSP2.0 技术手册》读书笔记五隐含对象


    何为隐含对象呢?就是指在jsp网页中,不需要做任何的声明和实例化,就可以直接使用的对象。它们有9个:request(HttpServletRequest), response(HttpServletResponse), pageContext, session, application(ServletContext),out(JspWriter), config(当前jsp页面的servletconfig),page(Object,如同java的this), exception(java.lang.Throwable)。其中request, session, application和pageContext均有方法setAttribute()/getAttribute()来设定和取得属性,以此达到数据传递。

    在了解隐含对象的具体作用前,我们先了解JSP的作用域 ,为正确使用隐含对象做准备。

    Page: 指的是单单一页jsp网页的范围。若数据设为page范围,则数据只能在同一个jsp网页上取得,其他网页无法获得该数据。

    Request:指在从一jsp网页发出请求到另一个jsp网页之间,随后属性失效。

    Session:作用范围为用户持续与服务器连接的时间,与服务器断开后,属性失效。

    Application:作用范围在服务器一开始执行到关闭为止。

    下面我们来了解各隐含对象的使用

    与servlet有关的隐含对象:

    page代表JSP网页本身,准确说是代表jsp转译后的servlet,因此可以使用servlet接口的方法。很少使用。

    config存放servlet初始化的数据,实现了javax.servlet.servletconfig,因此可以使用getInitParameter(name)等方法。很少使用。

    与Input/output有关的隐含对象:

    request 包含请求的信息,除了存取属性的方法外,还可以使用javax.servlet.http.HttpServletRequest接口的其他方法如下:

    获得jsp页面传来的参数(jsp标签定义的参数,如<input type="text" name="user"/>):String getParameter(name)/Enumeration getParameterNames()/String[] getParameterValues(String name)。其他方法不常用了,如获得http标头,请求的url/ip/session ID等。

    response主要将jsp处理后的数据传回客户端。是javax.servlet.http.HttpServletResponse接口的对象。常用方法有:

    设定响应状态-sendError(int 状态码)、sendError(int 状态码, string msg)、setStatus(int 状态码);

    重写URL-String encodeRedirectURL(string url)、String encodeURL(String url)。

    举下response的有意思的用法如下:

            

    out对象能把结果输出到网页,主要有out.println(string)/out.print(string)。

    与Context有关的隐含对象

    session对象可以让服务器辨别用户。方法可以参考笔记HttpSession。需要注意的是,如果在jsp网页中指定:<%@page session="false" %>则该页面不能使用session对象。

    application提供服务端的上下文,说明哪些资源可用,哪些信息可取,具有Application范围作用域,即从服务器启动到服务器关闭均有效。具体方法可以参考api,参考笔记中的ServletContext介绍。

    pageContext能存取其他隐含对象,如果隐含对象支持存取属性(如session等),pageContext可以直接操作它们中的属性。

    获取各隐含对象的方法有:getException()/getOut()/getRequest()等。

    与Error有关的隐含对象

    当jsp网页有错误时会产生异常,exception就针对这个异常做处理。若要在该页面使用exception对象必须指定

    <%@ page isErrorPage="true" %>,一般这个页面就专门作为错误页面使用。方法有getMessage(),printStackTrace(Print
    Writer)等。

  • 相关阅读:
    shell脚本--php执行普通shell命令
    shell脚本--eval执行shell命令
    shell脚本--CGI获取请求数据(GET / POST)
    shell脚本--编写CGI代码(shell结合html)以及环境变量
    shell脚本--初识CGI
    数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
    写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
    输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
    写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
    字符串分隔 ->连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982123.html
Copyright © 2020-2023  润新知