国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Struts2中異常處理機(jī)制分析

Struts2中異常處理機(jī)制分析

2021-01-12 14:33woshixuye Java教程

這篇文章主要介紹了Struts2中異常處理機(jī)制分析,涉及到了聲明式異常捕捉的相關(guān)內(nèi)容,以及兩種異常映射的分析,需要的朋友可以參考下。

因為在Action的execute方法聲明時就拋出了Exception異常,所以我們無需再execute方法中捕捉異常,僅需在struts.xml 中配置異常處理

為了使用Struts2的異常處理機(jī)制,必須打開Struts2的異常映射功能,這需要exception攔截器。在struts-default.xml文件中已經(jīng)開啟了exception攔截器。

聲明式異常捕捉

Struts2的異常處理機(jī)制是通過在struts.xml文件中配置<exception-mapping……/>元素完成的,配置該元素時,需要指定兩個屬性:

exception:指定該異常類型的完全限定名。

result:指定邏輯視圖名。

根據(jù)<exception-mapping…../>元素出現(xiàn)位置的不同,異常映射又可分為兩種:

局部異常映射:將<exception-mapping… />元素作為<action…/>元素的子元素配置;

全局異常映射:將<exception-mapping… />元素作為<global-exception-mappings… />元素的子元素配置;

全局異常映射對所有的Action都有效,但局部異常映射僅對該異常映射所在的Action有效。

如果局部異常映射和全局異常映射配置了同一個異常類型,在<action…./>元素內(nèi)的局部異常映射將覆蓋全局異常映射。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Struts.xml
 <package name="ssh2" extends="struts-default">
   <global-results>
      <result name="sql">/exception.jsp</result>
      <result name="root">/exception.jsp</result>
   </global-results>
   <global-exception-mappings>
      <exception-mapping exception="java.sql.SQLException" result="sql"/>
      <exception-mapping exception="java.lang.Exception" result="root"/>
   </global-exception-mappings>
   <action name="login" class="loginAction">
     <result>/welcome.jsp</result>
     <result name="nullPointer">/nullPointer.jsp</result>
     <exception-mapping exception="java.lang.NullPointerException" result="nullPointer"/>
   </action>
 </package>

 

?
1
2
3
4
5
6
7
8
Action
  public class loginAction extends ActionSupport
  {
    public String add() throws SQLException
    {
       return "toadd";
    }
  }

 

有異常往外拋即可。你也可以在方法里面拋,比如throw SQLException。

我們可以使用Struts2的標(biāo)簽輸出異常信息:

輸出異常的message屬性信息:<s:property value="exception.message" />

輸出異常堆棧信息:<s:property value="exceptionStack" />。

有了處理系統(tǒng)異常的基礎(chǔ),我們來看一看自定義異常:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.exception ;
public class MyException extends Exception
{
  private String message;
  public MyException(String message)
  {
      super(message);
      this.message = message ;
  }
  public String getMessage() {
     return message;
  }
  public void setMessage(String message) {
      this.message = message;
  }
}
public String execute() throws Exception
{
  if(!"hello".equals(usename) || !"world".equals(password))
  {
       throw new MyException("用戶名或密碼錯誤,您發(fā)現(xiàn)了吧!");
  }
  return "success" ;
}

在action配置中的異常處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<struts>
  <package name="struts2" extends="struts-default">   
   <action name="login" class="com.struts2.LoginAction">
      <exception-mapping result="myex" exception="com.exception.MyException">    
      </exception-mapping>
      <result name="myex">/error.jsp</result>
      <result name="success">/result.jsp</result>
   </action>
  </package>
</struts>
在全局配置中的異常處理
<struts>
  <package name="struts2" extends="struts-default">
   <global-results>
     <result name="myexception1">/error.jsp</result>
   </global-results>
   <global-exception-mappings>
     <exception-mapping result="myexception1"
        exception="com.exception.MyException">     
     </exception-mapping>
   </global-exception-mappings>
   <action name="login" class="com.struts2.LoginAction">
      <result name="success">/result.jsp</result>
   </action>
  </package>
</struts>

錯誤頁面error.jsp

?
1
2
3
4
5
6
7
8
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
 <body>
  <!-- 這個exception 是 exception="com.exception.MyException" -->
  <s:property value="exception.message"/>
 </body>
</html>

總結(jié)

局部異常處理比全局異常處理高,并且可覆蓋全局異常處理,如果定義了全局異常映射,那么會對所有的Action生效,反之定義了局部異常映射則會對當(dāng)前Action生效,

如果在全局區(qū)域和局部區(qū)域定義了相同的異常映射,首先去局部異常區(qū)域找result結(jié)果頁面,如果找到了,則直接跳轉(zhuǎn)到錯誤結(jié)果頁面,不管全局有沒有相同的結(jié)果,都被局部所覆蓋,如果在局部區(qū)域沒找到,則去全局區(qū)域找。

原文鏈接:http://blog.csdn.net/woshixuye/article/details/7738251#comments

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品一二三四区 | 欧美国产一区二区 | 成人在线看片 | 亚洲日本韩国在线观看 | 色视频免费在线 | 国厂毛片| 欧美a级在线观看 | 国产日韩精品久久 | 日韩资源 | 成人av片在线观看 | 91精品国产人妻国产毛片在线 | 国产成人精品一区二区三区视频 | 日韩欧美在线不卡 | 国产成人久久精品一区二区三区 | 亚洲一区二区三区 | 日韩专区视频 | 在线一区二区三区 | 欧美精品一区二区三区在线 | 久日av| 欧美一区二区三 | 日韩城人免费 | 一区二区不卡视频 | 天天操夜夜爽 | 日韩亚洲一区二区 | 成人欧美一区二区三区色青冈 | 最新国产在线 | 国产一区免费 | 91视频播放 | 精品人成 | 九九综合 | 成年人毛片在线观看 | 一区二区三区影视 | 精品黄色在线观看 | 成人欧美一区二区三区在线播放 | 成人久久一区 | 精品一二三四区 | 午夜影院在线观看 | www中文在线观看 | 我要看一级黄色 | 九色在线视频 | 国产不卡免费视频 |