struts2自定义拦截器(创建拦截器,拦截器配置) 逃离我推掉我的手 2022-04-23 04:28 278阅读 0赞 1.拦截器创建:![20190123184451787.png][] 2.拦截器API: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTY2Nzcy_size_16_color_FFFFFF_t_70][] 校验失败不放行,直接return字符串,如:success ,跳转页面返回信息 3.拦截器配置:struts.xml ![20190123185644811.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTY2Nzcy_size_16_color_FFFFFF_t_70 1][] ![20190123190349675.png][] ### web.xml,添加过滤器 ### <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ### MyInterceptor过滤器: ### public class MyInterceptor extends MethodFilterInterceptor{ @Override protected String doIntercept(ActionInvocation invocation) throws Exception { //前处理 System.out.println("before处理"); //放行 String result = invocation.invoke(); //后处理 System.out.println("after处理"); return result; } } ### Action:InterceptorAction ### public class InterceptorAction extends ActionSupport{ public String print() throws Exception { System.out.println("Action.....print"); return SUCCESS; } public String list() throws Exception { System.out.println("Action.....list"); return SUCCESS; } public String add() throws Exception { System.out.println("Action.....add"); return SUCCESS; } } ### struts.xml ### <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="result" namespace="/" extends="struts-default"> <interceptors> <!-- 1.注册拦截器 --> <interceptor name="myInterceptor" class="com.it.action.MyInterceptor"></interceptor> <!-- 2.注册拦截器栈 --> <interceptor-stack name="myStack"> <!-- 自定义拦截器引入 --> <interceptor-ref name="myInterceptor"> <!-- 指定哪些方法不拦截 <param name="excludeMethods">add</param> --> <!-- 拦截哪些方法 --> <param name="includeMethods">print,list</param> </interceptor-ref> <!-- 默认的拦截器 --> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 3.指定默认拦截器 --> <default-interceptor-ref name="myStack"></default-interceptor-ref> <action name="DemoAction1_*" class="com.it.action.InterceptorAction" method="{1}"> <result name="success" type="dispatcher">/hello.jsp</result> </action> </package> </struts> ### hello.jsp ### <h1>testDemo</h1> ### 效果: ### (1):print方法 ![20190123190945855.png][] ### 控制台: ### ![20190123191008253.png][] (2)list方法 ![20190123191202160.png][] ### 控制台: ### ![2019012319122275.png][] (3)add方法 没有被拦截 ![20190123191254867.png][] 控制台:![20190123191313294.png][] [20190123184451787.png]: /images/20220323/ebf321a570794541a9b80c010e5126b5.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTY2Nzcy_size_16_color_FFFFFF_t_70]: /images/20220323/3ce3e671b2074f108a137c38ece8cf98.png [20190123185644811.png]: /images/20220323/4743cba15cfd475db0c58c3e02819ee4.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTY2Nzcy_size_16_color_FFFFFF_t_70 1]: /images/20220323/e2442d87ced74af08dd36c3b99d14476.png [20190123190349675.png]: /images/20220323/83ae646602de444e9e2eb9ad0a97388a.png [20190123190945855.png]: /images/20220323/a8f79df2ab6a4756854b9c5a26c0ec3d.png [20190123191008253.png]: /images/20220323/70682baae6f44cde86f0bab5da21c685.png [20190123191202160.png]: /images/20220323/ecc9e009b5084eecb5c87e5a5d1efa61.png [2019012319122275.png]: /images/20220323/2c095144a93448d5b8dc5a6562ab0a24.png [20190123191254867.png]: /images/20220323/f33c86278ba149b5ac011144351df242.png [20190123191313294.png]: /images/20220323/2ef20d727c334cc18a7509d427783af1.png
还没有评论,来说两句吧...