2018.11.29 Struts2中拦截器的学习&项目的实际运用

struts2官方架构

拦截器的创建

第一种方式

第二种方式

看源码AbstractInterceptor 底层已经帮我们写过这些方法了

第三种方式(推荐)

拦截器API学习

放行

前后处理

不放行,直接跳转到一个结果页面

不执行后续的拦截器以及Action,直接交给Result处理结果.进行页面跳转

拦截器配置

三个步骤:(1)注册拦截器 (2)注册拦截器栈 (3)指定默认拦截器栈

觉得难懂的可以看源码(struts-default.xml),只要按照顺序来都是一样的


随便定义一个Action

特殊情况下的处理

测试

拦截器拦截方法的指定(定制方法)

查看struts2中是如何实现的

excludeMethod是不包含的方法的意思,在指定那些方法是拦截的那些是不拦截的。

找到validate的拦截器具体实现类

指定不包含拦截器的类就是在这里

继续往下看父类

之所以能直接指定参数是因为调用了get/set方法 (快速打开当前类中有哪些方法ctrl+o 黑苹果下是 win+o)


struts.xml主配置文件中配置
不拦截的方法

拦截的方法


给Action添加几个方法测试

地址栏输入 http://localhost:8080/Struts2Day04/demo1Action_find

测试拦截的方法 http://localhost:8080/Struts2Day04/demo1Action_update

第二种:修改

两种方式只能存在一种

http://localhost:8080/Struts2Day04/demo1Action_add

http://localhost:8080/Struts2Day04/demo1Action_delete


项目应用

登陆拦截器的实现步骤

1.编写一个登陆拦截器类

2.在配置文件中配置 拦截器

3.配置结果集变量不需要每一个Action都写一遍result节点

4.当点击页面的时候出现页面嵌套的情况,

5.解决办法

测试:成功解决

测试登陆

密码错误的情况

用户名不存在的情况

登陆成功,获取客户列表

原文地址:https://www.cnblogs.com/qichunlin/p/10037614.html