J2EE技术规范(五)——JSP(出错页,Forward,Include,标签)
来源:互联网 发布:俄罗斯共青城现状 知乎 编辑:程序博客网 时间:2024/05/01 15:49
一、声明JSP出错页面
(1) Page directive 的errorPage属性用于指定URL,该URL可处理JSP抛出的异常
(2)URL是相对于Web应用的跟路径。
(3)声明的出错页面可以是另一个JSP,Servlet或HTML文件。
我们看一下使用出错指示声明出错页面
<%@page errorPage="badLogin.jsp"%>
二、Exception内置对象
(1) 使用isErrorPage属性的JSP有一个附加的内置exception
对象使用exception对象的示例badLogin.jsp
<%@ page isErrorPage="true"%>Error message=<%=exception.getMessage()%><%PrintWriter writer=new PrintWriter(out);%>Stack=<% exception.printStackTrace(writer);%>
(2)Error页面能够在JSP之间共享
三、定义Web应用出错页面
(1) 你可以通过使用<error-page>元素指定具体的页面的方式很好地处理HTTP错误
(2) 如果这些错误没有被Servlets或JSPs做内部处理,则将调用这些页面。
出错页面声明的示例web.xml文件:
<error-page> <error-code>404</error-code> <location>/handle404.jsp</location></error-page><error-page> <exception-tpye>java.io.IOException </exception-tpye> <location>/handleIOException.jsp</locatio></error-page>
四、Forward与Include
(1) Servlets和JSPs能够通过forward和include协同工作
(2) Servlet Fowarding
Servlets能够只用RequestDispatcher对象的forward方法永久地把控制传给其它的Servlets
在servlets之间forwarding的示例:
public class Servlet1 extends HttpServlet{public void service(HttpServletRequest request,HttpServletResponse response){...ServletContext sc=getServletContext();RequestDispatcher rd=sc.getRequestDispatcher("Servlet2");rd.forword(request,response);return;//结束这个servlet}...}
(3) Servlet Including
Servlets能够使用RequestDispatcher对象的include方法临时地把控制传给其它的Servlets
在servlet之间including的示例:
public class Servlet1 extends HttpServlet{public void service(HttpServletRequest request,HttpServletResponse response){...ServletContext sc=getServletContext();RequestDispatcher rd=sc.getRequestDispatcher("Servlet2");rd.include(request,response);//继续处理这个servlet}...}
(4) JSP Forwarding
当使用JSP forward动作时,控制转给目标页面
使用forward动作的示例:
<% if(shippingAddressValid()){%><jsp:forward page="billing.jsp"/><% else %><jsp:forward page="address.jsp"/><%}%>
(5) JSP Including
当使用JSP include动作时,将执行被包含JSP并且该JSP的输出将插入到所调用它的JSP中一起输出
JSP根据用户注册情况包含另一个JSP:
<% String registered=request.getParameter("regUser");if(registered.equals("true")){%><jsp:include page="welcome.jsp"/><%}else{%><jsp:include page="sorry.jsp"/><%}%>...
五、使用标签库
(1) 定制标签:
- 扩展JSP功能
- 根据生成内容和编写代码进行分工
- 使用Java类(tag handler)实现标签动作
- 使用指定义标签库描述文件Tag Library Descriptor进行声明和配置
- 使用taglib指令加载
<%@ taglib uri="counter" prefix="countLib"%><html><body><p>This page has been visited<countLib:display/>times!</body></html>
(2)创建标签
从文件获得一些点击数量的JSP标签:
package staplerz.tagext.counter;import java.io.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class Display extends TagSupport{public int doStartTag()throws Jspexception{File countFile=new File("count.tmp");int count=Count.getCount(countFile);JspWriter out=pageContext.getout();try{out.print(count);}catch(IOException ioe){//Error handing}return(SKIP_BODY);}}
我们这节内容属于补充Jsp的一些内容。
- J2EE技术规范(五)——JSP(出错页,Forward,Include,标签)
- JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:if
- JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:i
- JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:i
- J2EE技术规范(四)——JSP基础
- J2EE技术规范(一)——JNDI
- J2EE技术规范(二)——JDBC
- [JSP]标准标签、<jsp:include、forward、param、useBean、setProperty、getProperty>
- [JSP]标准标签、<jsp:include、forward、param、useBean、setProperty、getProperty>
- <@include><jsp:include><jsp:forward>
- JSP标签——jsp:forward,jsp:incluce
- J2EE技术规范(八)——JMS(消息,域)
- J2EE技术规范(九)——JMS (JMS客户端)
- JSP的三大常用标签详解-------include、forward、param
- JSP —— include标签的使用
- <jsp:include>和<jsp:forward>
- <jsp:include>和<jsp:forward>
- <jsp:include>与<jsp:forward>
- VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
- C++ 回调函数的简单例子
- 8大你不得不知的Android调试工具
- [MVC] 关于jquery调用PartialView局部刷新的问题
- struts2.3.4.1+hibernate3.6.5+spring3.1.2配置
- J2EE技术规范(五)——JSP(出错页,Forward,Include,标签)
- SQL基础2
- Java高新技术(二)之类加载机制和反射
- linux学习
- VirtualBox 虚拟机中安装 Ubuntu 12.04
- Android eclipse中程序调试
- Sumsets Uva10125 poj
- Integer笔记
- CF 253A(最大间隔相异队列)