• JSP----九大内置对象


    最近在敲代码,页面用到JavaScript,纯属自学,所以零散地记录下最近一些用得多函数,错得比较多的一些方面。

                                

                            在jsp页面,经常会用到的九大内置对象:

    内置对象类型作用域

     

    内置对象 类型 作用域
    request javax.servlet.http.HttpServletRequest request
    response javax.servlet.http.HttpServletResponse response
    pageContext javax.servlet.jsp.PageContext page
    session javax.servlet.http.HtpSession session
    application javax.servlet.jsp.ServletContext application
    out javax.servlet.jsp.JspWriter page
    config javax.servlet.ServletConfig page
    page java.lang.Object page
    exception java.lang.Throwable page

      一、request

    request对象:request对象不但可以用来设置和取得request范围变量,还可以用来获取客户端请求参数、请求的来源、表头、Cookies等。

    1、request获取客户端请求参数方法

     方法 返回值类型  方法说明 
     getParameter(String name) String   获取参数名为name的参数值
     getParameterNames() Enumeration   获取所有参数的名称,可与上一个方法合用获取所有参数的值
     getParameterValues(String name)  String[]  获取参数名为name的所有参数,比如参数是多个checkbox
     getParameterMap()  Map  获取所有参数封装的Map实例,通过Map实例的String[] get("id")方法返回对应参数名为id的值数组

    2、request的其他方法

    方法 返回值类型 方法说明
    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地址

    二、response对象:用来向客户端传送输出信息。

    方法 返回值 方法说明
    addCookie(Cookie cookie) void  参照request
    addDateHeader(String name,long date) void  参照request
    addHeader(String name,String value) void  参照request
    addIntHeader(String name,int value) void  参照request
    setDateHeader(String name,long date) void  参照request
    setHeader(String name,String value) void  参照request
    setIntHeader(String name,int value) void  参照request
    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"的标头。

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

    方法 返回值类型 方法说明
    clear() void 清除网页上输出内容
    clearBuffer() void 清除缓冲区内容
    close() void 关闭缓冲区,清除所有内容
    getBufferSize() int 取得缓冲区大小
    getRemaining() int 取得缓冲区剩余大小
    isAutoFulsh() boolean 获得缓冲区是否进行自动清除的信息
    print(String str) void 进行页面输出
    println(String str) void 进行页面输出并换行

    四、session对象:用来表示用户的会话状况,一般用于保存用户的各种信息,直到生命周期超时或者被认为释放掉为止。session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

    方法 返回值类型 方法说明
    getId() String 获取session的ID
    getCreationTime() long 获取session的生成时间
    getLashAccessedTime() long 获取用户最后通过session发送请求时间
    getMaxInactiveInterval() long 获取session生命周期,如果超过这个时间则失效
    invalidate() void 清空session内容
    isNew() boolean 判断session是否为“新”的
    setMaxInactiveInterval() void 设置session生命周期,如果超过这个时间则失效

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

    方法 返回值类型 方法说明
    getMajorVersion() int 获取主要的Servlet API版本
    getMinorVersion() int 获取次要的Servlet API版本
    getServerInfo() String 获取服务器版本
    getMimeType() String 获取指定文件的MIME类型
    getContext() ServerContext 获取指定Local的Application context
    getRealPath String 获取指定path的绝对路径

    六、pageContext对象:可以用来设置page范围的属性,还可以设置其他范围属性,不过需要指定范围参数,同时还可以获取其他内置对象。pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

    方法 返回值 方法说明
    getException() Exception 获取当前的exception内置对象
    getOut() JspWriter  
    getPage() Object  
    getRequest() ServletRequset  
    getResponse() ServletResponse  
    getServletConfig() ServletConfig  
    getServeltContext() ServletContext  
    getSession() HttpSession  
    getAttribute(String name,int scope) Object 获取指定范围的name属性值
    getAttributeNamesInScope(int scope) Enumeration 获取指定范围所有属性名称
    getAttributesScope(String name) int 获取属性名称为name的属性范围
    removeAttribute(String name) void 移除属性名称为name的 属性
    removeAttribute(String name,int scope) void 移除指定范围的属性名称为name的 属性
    setAttribute(String name,Object value,int scope) void 设置指定范围的name属性
    findAttribute(String name) Object 寻找所有范围的属性名称为name的属性

    七、page对象:page对象代表JSP转译后的Servlet,通过page对象可以非常方便地调用Servlet类中定义的方法。page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

    实例1:通过page对象调用Servlet类中定义的方法 

    <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page info="this is the page Object Practice" %> <html> <head> <title>page对象</title> </head> <body> <%--通过page对象调用Servlet中的getServletInfo()方法 --%> <% String info = ((javax.servlet.jsp.HttpJspPage)page).getServletInfo(); %> <%=info %> </body> </html>

    
    
    
    

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

    方法 返回值类型 方法说明
    getInitParameter(name) String 获取Servlet初始化参数
    getInitParameterNames() Enumeration 获取Servlet所有初始化参数名称
    getServletContext() ServletContext 获取当前Application context
    getServletName() String 获取Servlet名称

    九、exception对象:用来处理错误异常,如果要用exception对象,必须指定page中的isErrorPage属性值为true。

    实例:exception用来处理错误异常

    1、包含错误的页面:error.jsp

    <%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo01.jsp"%> <html> <head> <title>错误页面</title> </head> <body> <% int[] arr = {1,2,3}; out.println(arr[3]); %> </body> </html>

    
    
    

     注:error.jsp中arr[3]数组下表越界.需在page指令中指定errorPage的属性值为相应的异常处理程序。

    2、异常处理页面:exceptionDo.jsp

    <%@ page language="java" contentType="text/html;charset=gb2312" isErrorPage="true"%> <%@page import="java.io.PrintStream"%> <html> <head> <title>处理错误异常</title> </head> <body> <%=exception%><br> <%=exception.getMessage()%><br> <%=exception.getLocalizedMessage()%><br> <% exception.printStackTrace(new java.io.PrintWriter(out)); %> </body> </html>

    
    
    

     注:必须在page指令中指定属性isErrorPage属性值为true。也就是说这个页面可以用于异常处理。

    将会在exceptionDo.jsp中打印出error.jsp中的数组下标越界异常 信息



  • 相关阅读:
    [转]C#创建Windows服务与安装
    Uploadify导致Chrome频繁崩溃Crash
    【转】asp.net mvc css/js压缩合并 combres
    jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
    性能测试初学_loadrunner使用中遇到的问题
    linux 安装apache http server
    性能测试初学_loadrunner脚本增强
    性能测试初学_对loadrunner脚本的理解
    性能测试初学_利用cookie 绕过登录
    性能测试初学_linux 计数器
  • 原文地址:https://www.cnblogs.com/hoojjack/p/4687687.html
Copyright © 2020-2023  润新知