JSP的执行过程
1、 客户端发出请求
2、 Web容器将JSP转议成Servlet源代码
3、 Web容器将产生的源代码进行编译
4、 Web容器加载编译后的代码并执行
5、 把执行结果返回客户端
JSP的异常处理机制
处理异常的操作
在错误处理页上必须先倒入<%@ page isErrorPage="true"%>
异常处理写为:
出现了异常:<%=exception %>,请检查JSP页面。<br/>
<!-- 输出异常处理的错误消息 -->
<%exception.printStackTrace(new PrintWriter(out)); %>
指定跳转到哪个错误页
<%@ page errorPage="error.jsp"%>
在web.xml中添加
<error-page>
<exception-type>
java.lang.ArithmeticException
</exception-type>
<location>
/error.jsp
</location>
</error-page>
可以将工程中的所有错误都跳转到error.jsp页面
发生404错误,会跳转到404.jsp
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
404.jsp
<body>
你访问的资源不存在 <br>
</body>
JSP的隐式对象(JSP的内置对象,也叫隐式对象)
JSP隐式对象是Web容器加载的一组类的实例。它是可以直接在JSP页面使用的对象。分为4个主要类别:
– 输入和输出对象:控制页面的输入和输出(request、response、out)。
– 作用域通信对象:检索与JSP页面的Servlet相关的信息(session、application、pageContext)。
– Servlet对象:提供有关页面环境的信息(page、config)。
– 错误对象:处理页面中的错误(exception)。
Request对象:
Request隐式对象表示客户端的请求,包含了所有的请求信息,常用的方法:1、String getParameter(String name):根据页面表单组件名称获取请求页面提交的数据。2、String getParameterValues(String name):获取页面请求中一个表达组件对应多个值时的用户的请求数据(eg:复选框)
Response对象:
Response隐式对象处理JSP生成的响应,然后将响应结果发送给客户端,常用的方法:1、void setContentType(String name):设置作为响应生成的内容的类型和字符编码。2、void sendRedirect(Strign name):发送一个响应给浏览器,指示其应请求另一个URL(会丢失数据,跳转后不再执行sendRedirect方法下面的代码)
Out对象:
Out对象表示输出流,此输出流将作为请求的响应发送到客户端,常用方法有print()、println()和write()。
作用域通信对象——
pageContext对象
pageContext对象使用户可以访问当前页面作用域中定义的所有隐式对象。pageContext对象常用的方法:
1、getRequest()、getServletConfig()、getSession()等
2、void setAttribute(String name, Object value)
3、void getAttribute(String name)
Session对象
Session对象表示用户的会话状态,用此项机制可以轻易识别每一个用户,能保存和跟踪用户的会话状态。Session的常用方法:
1、void setAttribute(String name, Object value)
2、void getAttribute(String name)
Application对象
application对象作用于整个应用程序,所有的客户端窗口都可以共享该对象,从服务器开始就存在,直到服务器关闭为止。application对象最常用的方法:
1、void setAttribute(String name, Object value):以名称/值的方式,将一个对象的值存放到application中(存的值的类型为Object)。
2、void getAttribute(String name):根据名称去获取application中存放对象的值(获取的值的类型为Object)。