A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


『黑马程序员济南』JavaEE就业笔记串讲--Struts2框架-part4

拦截器概念
1 在struts2里面有拦截器,在拦截器里面帮我们实现一部分功能
2 在strtus2里面有很多的拦截器,不是都执行,每次只会执行一些默认的拦截器
(1)struts2里面默认拦截器位置
3 拦截器在什么时候执行?
(1)在action对象创建之后,在action里面的方法执行之前执行拦截器
拦截器底层原理
1 底层原理主要两部分
(1)aop思想:面向切面(方面)编程
- 在开发中,有基本功能,扩展基本功能,使用aop思想,不修改源代码扩展功能
- 比如登录功能,看图
- aop底层实现动态代理(增强类的方法)
(2)责任链模式: 类似于过滤链
- 过滤链:一个请求,可以有多个过滤器进行过滤,每个过滤器只有做放行,才能到下一个过滤器
- 有一组操作,有增加、修改、删除操作,执行三个操作。首先执行增加操作,增加执行之后做类似于放行操作,放行之后执行修改操作,修改执行之后,做类似于放行操作,放行之后执行删除操作
2 拦截器执行过程
(1)拦截器在action对象创建之后,action里面的方法执行之前执行
(2)在struts2里面执行默认的拦截器,在action不需要调用拦截器的方法,使用配置方式执行--- aop思想
(3)执行很多的拦截器,比如有三个拦截器,首先执行拦截器1,做放行,执行拦截器2,之后放行,执行拦截器3,放行之后,之后action里面的方法
拦截器和过滤器区别
1 过滤器:理论上可以过滤任意内容,过滤jsp、过滤html、过滤图片路径、过滤servlet
2 拦截器:可以拦截的内容,拦截器只能拦截action
3 action和servlet区别
(1)action每次访问创建新的对象,多实例
(2)servlet第一次访问时候创建,创建一次,单实例
拦截器结构
(1)自定义拦截器实现
第一种创建类,继承AbstractInterceptor
第二种实现接口,Interceptor
第二种创建类,继承 MethodFilterInterceptor
放行操作:
(2)让action和拦截器类关联(通过配置完成)
一般在开发中,建议使用第二种方式,继承MethodFilterInterceptor,通过配置方式让action里面某个方法不进行拦截
自定义登录的拦截器
1 在系统中,有很多action的超链接,实现只有登录之后,才可以点击这些action的超链接,如果不是登录状态,点击action超链接,回到登录页面
2 判断是否登录状态
(1)使用session存储值,判断session里面是否有值,如果有则是登陆状态
3 登录基本功能实现
(1)   在action中使用属性封装获取表单提交的用户名和密码
(2)判断用户名和密码是否正确,如果正确把用户名放到session里面
(3) 登陆成功之后,在页面中显示当前登录的用户名
4 自定义登陆拦截器
功能逻辑:只有登录状态,才可以点击系统的action的超链接,如果不是登录,点击超链接到登陆页面里面
第一步创建类,继承MethodFilterInterceptor类
(1)重新类里面的方法,在方法里面写判断逻辑
- 判断是否是登录状态:判断session里面是否有值
第二步配置自己创建的拦截器和action有关联
(1)在struts.xml中声明拦截器
(2)在具体使用拦截器的action标签里面使用声明拦截器
(3)使用自定义拦截器之后,默认的拦截器不执行了,手动把默认的拦截器使用
5 上面完成拦截器代码和配置,但是在action里面login方法不需要拦截
(1)通过配置方式,让action里面哪些方法不进行拦截
(4)每个拦截器执行之后 ,做放行操作
Struts2标签
常用的标签
(1)<s:debug>标签:查看值栈存储结构
(2)<s:property value=”ognl表达式”>: 在jsp中获取值栈数据
(3)<s:iterator>标签: 遍历得到值栈集合内容
Struts2的表单标签
1 html表单标签
(1)form : 属性action、method、enctype
(2)输入项
* input标签输入项
- text:普通输入项
- password:密码输入项
- radio:单选
- checkbox:复选
- hidden:隐藏项
- file:文件上传项
- submit:提交
- button:普通按钮
- image:图片提交
- reset:重置
* select:下拉框
* textarea:文本域
2 在struts2里面提供表单标签,html中表单标签,在struts2里面大部分都对应的标签
3 注意问题:
使用struts2的s:form标签时候,里面的action属性值,不能写完全路径
点进这个帖子的同学肯定是要奋发图强,学技术拿高薪的有志青年,这里我看你骨骼惊奇,是个绝世的练武奇才,你我有缘,今天我就把这个武林秘籍如来神掌传授于你! 什么?不想学如来神掌?不要紧!这里有各个门派的武林绝学,链接拿好!!哈哈哈哈

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马