JSP内置对象、异常处理与乱码问题

转:http://blog.csdn.net/liuxiaolei7676/article/details/5612608

JSP九大内置对象:

       1.与Servlet有关的隐含的对象

          (1)page  page对象对应Java中的关键字this,它代表当前JSP页面

          (2)config  Config对象使用Web容器在初始化JSP之前得到JSP配置信息,config的作用域为整个页面,用法跟servletConfig相同

       2.与Input/Output有关的隐含对象

 (3)out  out对象将响应的信息输出到网页上,其缓冲大小通过page指令标签的buffer属性设置

          (4)request  封装了浏览器发出的请求对象,它的作用域是一个完整的请求,这将作为_jspService的入口参数

 (5)response 封装响应内容的对象,作用域是整个页面常用方法:response.setHeader("refresh","1;url="页面名称""); response.sendRedirect("页面名称")重定向

       3.JSP执行时,提供有关Context的隐含对象

(6)session  客户端发送一个请求时,在服务器上将创建一个会话维护这个客户的各种操作,该对象称为session,只要指令标签中没有将会话取消(<%@ page session=”false”%>,就可以使用该对象,通过session对象的setAttribute和getAttribute方法可维护session中的对象。当session=false时,可以用request.getSession()方法获取session

 

(7)application  它提供了一组和Web容器通信的方法,每个应用程序都有一个上下文,这意味着Application对象能够在应用程序的整个生命周期访问。与servlet的servletContext对象用法相同

 

(8)pageContext  pageContext对象封装了当前JSP页面的运行信息,它提供了返回JSP页面的其他隐式对象的方法。 PageContext类中定义了一个setAttribute方法来将对象存储进pageContext对象内部的一个HashMap对象中,同时也定义了一个getAttribute方法来检索存储在该HashMap对象中的对象。PageContext类除了可以存储和检索自身中的属性对象外,还定义了可以存储和检索其他域范围内的属性对象的方法。 

       4.与Error有关对象的隐含对象

(9)exception  是java.lang.Throwable的一个实例,它代表未扑获的异常,只有在page指令中指定isErrorPage=”true”属性,将JSP页面标识为错误处理页面,才可以使用这个对象

jsp中的异常处理

       方法一:

              在出现异常的jsp页面增加如下代码:

               <%@ page errorPage="处理异常的页面"%>  //当jsp出现异常时转发到errorpage所指向的页面进行处理

              在处理异常的页面添加如下代码

                     <%@ page isErrorPage=true%> //isErrorPage属性表示页面是否可以使用jsp的内置对象Exception 默认为false

                     <%= exception.getMessage() %> // 使用exception的getMessage方法获取异常信息

                    

       方法二:

              在出现异常的jsp页面下不添加任何代码

              在web.xml文件中增加如下配置

                <error-page>

                  <exception-type>java.lang.Exception</exception-type> //jsp页面产生的异常类型

                  <location>处理异常的页面的路径</location> //配置出现异常,当出现exception-type 所指向的异常类型,转向的页面

                </error-page>

       方法三:

      在出现异常的jsp页面,不用增加任何代码

           在web.xml文件中增加如下配置

               <error-page>

                  <error-code>404</error-code> //当jsp页面路径找不到时产生错误404时跳转到自己定义的页面

                  <location>出现错误404时跳转的页面路径</location>

               </error-page>

               

处理jsp中文乱码问题:

1 当请求方法是post时

      在jsp文件的前面增加如下代码:

          request.setCharacterEncoding("utf-8");

   当请求方法是get时:

      要先对中文汉字编码:  URLEncoder.encode(str,"utf-8")

2 在服务器中配置中文字符的解码  

        在tomcat服务器器的  D:/apache-tomcat-6.0.18/conf/server.xml文件中

             <Connector port="808" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" URIEncoding="utf-8"/>

         这个标签中增加 URIEncoding="utf-8";      

      

3当请求方法是get时:也可以采用jstl标签库结合el表达式处理

      要先对中文汉字编码:

               <c:url value="/luanma/getForm_get.jsp" var="url">

            <c:param name="name" value="${str}"></c:param>

         </c:url>

         <a href="${url}">测试getC</a>

      在服务器中配置中文字符的解码  

         在tomcat服务器器的  D:/apache-tomcat-6.0.18/conf/server.xml文件中

             <Connector port="808" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" URIEncoding="utf-8"/>

      这个标签中增加 URIEncoding="utf-8";





你可能感兴趣的:(JSP内置对象、异常处理与乱码问题)