java Web第6章 Day8天 2020080605018

学习目标:


一、exception对象

二、阶段案例:传智书城JSP页面(实现首页)

三、传智书城JSP页面(实现注册页面)

四、总结


一、exception对象

1.1.exception对象概述

在JSP页面中,经常需要处理一 些异常信息,这时,可以通过exception 对象来实现。exception对象是java.lang .Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@page isErrorPage=“true”%>的页面。接下来,通过一个案例来学习exception 对象的使用。

1.2.exception对象实例:

代码如下(示例):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	int a=3;
	int b=0;
	%>
	输出:<%=(a/b) %>
</body>
</html>

    public void _jspService(HttpServletRequest request,HttpServletResponse response)  
             throws java.io.IOException, ServletException{
     
             try{
     
             //所有JSP脚本、静态HTML部分都会转换成此部分代码  
             response.setContentType("text/html;charset = gb2132");  
             ...  
             out.write("</BODY>\r\n");  
             out.write("</HTML>\r\n");  
             }catch(Throwable t){
     
             ...  
             //处理该异常  
             if(_jspx_page_context != null) _jspx_page_context.handlePageException(t);  
             }finally{
     
             //释放资源  
             _jspxFactory.releasePageContext(_jspx_page_context);  
             }  
    }  

从上面的代码的第4行可知,JSP脚本和静态HTML部分都将转换成_jspService()方法里的执行性代码——这就是jsp脚本无须处理异常的原因:因为这些脚本已经存在于try块中,一旦try块捕捉到JSP脚本的异常,并且 _jspx_page_context不为null,就会由该对象来处理异常,如上面的代码第12行所示。
_jspx_page_context 对异常的处理也是非常的简单:如果该页面的page指令指定了errorPage属性,将请求foward到errorPage属性指定的页面,否则使用系统指定的页面输出异常信息。

   <!--通过errorPage属性指定异常处理页面-->  
   <%@ page contentType = "text/html; charset = gb2132"   
            language = "java" errorPage = "error.jsp"%>  
   <!DOCTYPE HTML PUBLIC "-//W3c//DTD HTML 4.0 Transitional//EN">   
   <html>  
   <head>  
   <title>JSP脚本异常处理机制</title>  
   </head>  
   <body>  
   <%int a = 6;  
   int c = a/0  
   %>  
   </body>  
   </html>  
<!--通过isErrorPage属性指定本页面是异常处理页面-->  
<%@ page contentType = "text/html; charset = gb2132"   
         language = "java" isErrorPage = "true"%>  
<!DOCTYPE HTML PUBLIC "-//W3c//DTD HTML 4.0 Transitional//EN">   
<html>  
<head>  
<title>异常处理页面</title>  
</head>  
<body>  
异常类型是:<%=exception.getClass()%></br>  
异常信息是:<%=exception.getMessage()%></br>   
</body>  

启动Tomcat服务器,在浏览器地址输入地址,浏览器显示的界面如下:
在这里插入图片描述

注意:由于只有JSP脚本、输出表达式才会生成_jspx_page_context方法里的代码,所以这两个部分的代码无须处理异常。但是JSP的声明部分依然强制处理checked异常,JSP的异常处理机制对JSP声明不起作用。

 在JSP的异常处理机制中,一个异常处理页面可以处理多个JSP页面脚本部分的异常。异常处理页面通过Page指令的errorPage属性确定。

1.3exception对象的常用方法:

在这里插入图片描述

二、传智书城JSP页面(实现首页)

实现步骤:

2.1首页设置:

在chapter06项目上的WebContent目录下创建一个名称为index.jsp的页面文件夹,该文件夹使用<jsp.forward>动作元素跳转到项目客户端展示的首页,
其主要代码为:

<body>
      <jsp:forward page="client/index.jsp"><jsp:forward>
</body>
2.2创建head.jsp文件

在web工程的WebContent目录下创建一个名称为client的文件
在其中创建一个head.jsp文件,用来盛放网页的头部,相关代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<div id="divhead">
	<table cellspacing="0" class="headtable">
		<tr>
			<td>
				<a href="index.jsp">
					<img src="${pageContext.request.contextPath}/client/images/logo.png" width="200" height="60" border="0" /> 
				</a>
			</td>
			<td style="text-align:right">
				<img src="${pageContext.request.contextPath}/client/images/cart.gif" width
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值