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.解决办法
测试:成功解决
测试登陆
密码错误的情况
用户名不存在的情况
登陆成功,获取客户列表