1.自定義攔截器
1.implements Interceptor
2.extends AbstractInterceptor
二) 在struts.xml中
<interceptors>
<interceptor name="xx" class="xx"/>
..
<interceptor-stack name="xxx">
<interceptor-ref name="xx">
<param name="屬性">值</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
在Action中覆蓋攔截器中屬性值
<interceptor-ref name="攔截器棧">
<param name="攔截器.屬性">值</param>
</interceptor-ref>
對於方法過濾的攔截器
extends MethodFilterInterceptor
關鍵是在struts.xml中的配置
<interceptor-ref name='x'>
<!--不需要攔截的方法-->
<param name="excludeMethods">方法名</param>
<!--需要攔截-->
<param name="includeMehtods"></param>
</interceptor-ref>
2.表單的重複提交 token
在頁面表單中使用<s:token></s:token>
3.文件的上傳
頁面 <form enctype="multipart/form-data" method="post">
File <input type="file" name="pic"/>
</form>
Action
屬性 private File pic;
private String picFileName;文件名稱
private String picContentType;文件類型
如何由邏輯路徑獲得絕對路徑
1.implements ServletRequestAware/ServletContextAware
2.ServletActionContext 工具類,獲得Servlet API
4.在src中提供struts.properties配置文件
修改文件上傳異常的錯誤信息
1.在src中創建 資源文件
上傳文件太大
struts.messages.error.file.too.large
上傳的類型不允許
struts.messages.error.content.type.not.allowed
2.要再struts.xml中配置資源文件
5.Struts2.0的異常處理機制
1.什麼是異常?軟件在開發和運行過程中可能遇到的錯誤。【對象】
2.異常的種類?
Check異常【檢測時異常】在編譯過程中必須進行處理(編譯器不通過)
IOException / ClassNOTFoundException
Runtime異常[運行時異常] 運行時出現的異常,在程序開發過程中不需要額外的處理
NUllPOINException/ArrayOutofIndexException
自定義異常
如何定義異常
1.寫一類繼承Exception/RuntimeException
A public class MyException extends Exception{ }
繼承了Exception,檢測異常,必須進行處理 try...catch/throw
B public class MyExceptionA extends RuntimeException{}
繼承了RuntimeException,運行時異常,不做處理
如何定義異常的方式?
現在java開發思路,主要的異常處理採用RuntimeException
jdbc和hibernate
3.如何處理異常
try..catch:如果try塊中出現異常,交給catch塊處理,如果發生的異常在本類中能夠 處理則使用try..catch
throw : 如果異常本類不能處理,將異常拋給調用者
4.在J2EE體系中如何處理異常
MVC模型:DB-->DAO-->BIZ-->Action
DB數據庫:數據庫異常和java的關係不大,主要討論Dao/Biz/Action的異常處理
DAO操作數據庫的異常:Dao層異常不能處理,拋給Biz層
Biz Dao的異常,業務異常:向上拋Action
Action Dao的異常,業務異常:Action的異常不能向上拋,只能處理,使用try..catch
Struts2.0只能使用一個頁面處理異常,告訴用戶異常的原因。
在實際開發過程中對於
Dao層的異常,不需要具體交代,整個封裝告知數據庫異常即可
業務異常,需要具體交代【餘額不足,賬戶不存在】
Struts2.0對於異常處理的機制
問題:如果在Action中使用大量的try...catch語句會造成代碼的結構,以及可維護性的降低
在Action中不處理異常,主要在配置文件struts.xml中進行處理
Struts2day05學習筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.