struts2自定义拦截器(创建拦截器,拦截器配置)

逃离我推掉我的手 2022-04-23 04:28 432阅读 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,添加过滤器

  1. <filter>
  2. <filter-name>struts2</filter-name>
  3. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>struts2</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. </filter-mapping>

MyInterceptor过滤器:

  1. public class MyInterceptor extends MethodFilterInterceptor{
  2. @Override
  3. protected String doIntercept(ActionInvocation invocation) throws Exception {
  4. //前处理
  5. System.out.println("before处理");
  6. //放行
  7. String result = invocation.invoke();
  8. //后处理
  9. System.out.println("after处理");
  10. return result;
  11. }
  12. }

Action:InterceptorAction

  1. public class InterceptorAction extends ActionSupport{
  2. public String print() throws Exception {
  3. System.out.println("Action.....print");
  4. return SUCCESS;
  5. }
  6. public String list() throws Exception {
  7. System.out.println("Action.....list");
  8. return SUCCESS;
  9. }
  10. public String add() throws Exception {
  11. System.out.println("Action.....add");
  12. return SUCCESS;
  13. }
  14. }

struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <constant name="struts.devMode" value="true"></constant>
  7. <package name="result" namespace="/" extends="struts-default">
  8. <interceptors>
  9. <!-- 1.注册拦截器 -->
  10. <interceptor name="myInterceptor" class="com.it.action.MyInterceptor"></interceptor>
  11. <!-- 2.注册拦截器栈 -->
  12. <interceptor-stack name="myStack">
  13. <!-- 自定义拦截器引入 -->
  14. <interceptor-ref name="myInterceptor">
  15. <!-- 指定哪些方法不拦截
  16. <param name="excludeMethods">add</param> -->
  17. <!-- 拦截哪些方法 -->
  18. <param name="includeMethods">print,list</param>
  19. </interceptor-ref>
  20. <!-- 默认的拦截器 -->
  21. <interceptor-ref name="defaultStack"></interceptor-ref>
  22. </interceptor-stack>
  23. </interceptors>
  24. <!-- 3.指定默认拦截器 -->
  25. <default-interceptor-ref name="myStack"></default-interceptor-ref>
  26. <action name="DemoAction1_*" class="com.it.action.InterceptorAction" method="{1}">
  27. <result name="success" type="dispatcher">/hello.jsp</result>
  28. </action>
  29. </package>
  30. </struts>

hello.jsp

  1. <h1>testDemo</h1>

效果:

(1):print方法

20190123190945855.png

控制台:

20190123191008253.png

(2)list方法

20190123191202160.png

控制台:

2019012319122275.png

(3)add方法 没有被拦截

20190123191254867.png

控制台:20190123191313294.png

发表评论

表情:
评论列表 (有 0 条评论,432人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Struts2定义拦截

    拦截器简介 在开发中,我们经常需要多次解决一个相同的问题,从而造成代码重复,臃肿,可读性不高等问题.也可以使用拦截器做登陆校验,由此可见,拦截器的常用之处,那么问题来了,怎