转: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";