1. 程式人生 > >攔截器

攔截器

開始 目標 bstr 初始 code symphony intercept per constant


oop: 面向對象編程
java
aop: 面向切面編程
在執行方法之前或之後加入的一些操作功能; 該操作功能就叫切面;


struts2中 攔截: 是動態攔截action的調用;

struts2的常用的配置文件

struts-default.xml 默認自帶的,定義了大量攔截器,攔截器棧,返回類型等信息;

default.properties 默認自帶的, 裏面定義了大量的constant信息;
struts.xml 自己寫的

struts2的攔截器作用: 在執行目標action之前或之後,需要執行添加的一些操作,叫攔截器;

struts2默認執行的攔截器鏈是 defaultStack 裏面包括了大量的攔截器;

如何自定義攔截器:
1、編寫攔截器的java類, 實現接口或繼承抽象類兩種實現方式;
1.1、實現com.opensymphony.xwork2.interceptor.Interceptor接口
1.2、繼承com.opensymphony.xwork2.interceptor.AbstractInterceptor 抽象類;
2、在struts.xml文件中定義 攔截器;
<interceptors>
<interceptor name="myIp" class="com.bwf.code.interceptor.MyIPInterceptor"></interceptor>
</interceptors>
3、在struts.xml文件的action標簽中引用攔截器;
<interceptor-ref name="myIp"></interceptor-ref>

web容器啟動,解析struts.xml文件的時候,即開始實例化自定義攔截器,並調用init方法完成攔截器的初始化功能;
進入action類中目標業務方法之前,先調用攔截器中的intercept方法執行, 調用目標業務方法之後,轉發頁面的時候,又一次調用了攔截器中的intercept方法;


攔截器的應用: 日誌記錄、數據記錄、登陸判斷、權限控制、文件上傳格式大小判斷;

攔截器