struts2-2拦截器与sitemesh

上传人:第*** 文档编号:49766779 上传时间:2018-08-02 格式:PPT 页数:32 大小:1.79MB
返回 下载 相关 举报
struts2-2拦截器与sitemesh_第1页
第1页 / 共32页
struts2-2拦截器与sitemesh_第2页
第2页 / 共32页
struts2-2拦截器与sitemesh_第3页
第3页 / 共32页
struts2-2拦截器与sitemesh_第4页
第4页 / 共32页
struts2-2拦截器与sitemesh_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《struts2-2拦截器与sitemesh》由会员分享,可在线阅读,更多相关《struts2-2拦截器与sitemesh(32页珍藏版)》请在金锄头文库上搜索。

1、Softeem Consultancy Service第二章struts2拦拦截器Softeem Consultancy Service预习检查为什么需要拦截器?拦截器是什么?怎样开发拦截器?Softeem Consultancy Service本章任务Struts2拦截器的意义和优势? 拦截器和AOP的关系 配置拦截器 开发拦截器 拦截结果的监听器 拦截器的执行过程 struts2内建拦截器 总结Softeem Consultancy Service理解拦截器理解DRY规则代码段1代码段2代码段3相同的 代码段相同的 代码段相同的 代码段重复的代码Softeem Consultancy Se

2、rvice理解拦截器通过方法调用实现系统功能JNDI文本JTA代码段1代码段2代码段3调用方法调用方法调用方法相同的代码段Softeem Consultancy Service理解拦截器通过拦截器机制自动调用方法代码段1代码段2代码段3通过拦截器 自动调用方法相同的代码段通过拦截器 自动调用方法通过拦截器 自动调用方法Softeem Consultancy Service拦截器的实现原理拦截器和AOP的关系 目标对象:包含被拦截方法的原始对象 被插入的处理方法:拦截方法之前后的自动执行方法 代理对象:以目标对象为蓝本,由系统创建的新对象A O P 代 理 的 方 法拦截器方法一目标对象的原有方

3、法拦截器方法二Softeem Consultancy Service拦截器在Struts2中的作用FilterDispatcherActionProxy类型转换拦截器文件上传拦截器等ActionResult初始化并调用execute方法拦截并处理用户请求, 然后到Action的execute 方法处理用户请求返回逻辑视图, 系统负责将逻辑视图 对应的资源显示给用户Softeem Consultancy Service拦截器配置配置拦截器参数值Softeem Consultancy Service拦截器配置 使用多个拦截器参数值一 参数值二Softeem Consultancy Service拦

4、截器配置使用拦截器简单拦截器/error.jsp/welcome.jsp 改名后的拦截器加入自己的拦截器后,一定要把系统 的拦截器栈也配置到Action中。Softeem Consultancy ServiceStruts2内建拦截器Struts2内建拦截器的简单介绍 alias:实现在不同请求中相似参数别名的转换 autowiring:自动装配拦截,整合Spring使用 chain:构建action链,使当前action访问前一个action属性 。 conversionError:负责处理类型转换错误。 createSession:负责创建一个httpsession对象 debugging

5、:使用struts2的开发模式,提供调试信息 execAndWait:后台执行Action,将等待页面发送给用户 exception:处理异常的拦截器 fileUpload:文件上传,解析表单中文件域的内容 i18n:国际化拦截器,解析表单中文件域的内容 logger:负责日志记录的拦截器 Softeem Consultancy Servicelogin.actionpublic String login() UserDTO dto = dao.login(userName, password); if(dto != null)session.put(“user“, dto);return “

6、success“; elsereturn “input“; 将用户存入到session中。Softeem Consultancy Service拦截器完成权限控制实现权限控制拦截器 public class AuthorityInterceptor extends AbstractInterceptorpublic String intercept(ActionInvocation invocation) throws Exception ActionContext ctx = invocation.getInvocationContext(); Map session = ctx.getSe

7、ssion(); if (session.get(“user“) != null) return invocation.invoke(); ctx.put(“tip“ , “您还没有登陆,请输入scott,tiger登陆系统“); return Action.LOGIN; Softeem Consultancy Service拦截器的初始化方法Softeem Consultancy Service配置权限控制拦截器/login.jsp/WEB-INF/jsp/viewBook.jsp如果直接在action中引用你自定义的 拦截器,就会发现只调用了你自己 的拦截器,没有调用Struts2中内置

8、的拦截器 。 1.jspbook_list.actionSofteem Consultancy Service功能更加强大的权限拦截器角色能够动态添加(不是只用管理员,用户,各个角 色那么简单)? 每个页面做权限判断? 有没有项目的权限是在功能全部完成之后统一完成的 ?Softeem Consultancy Service功能比较强大的权限拦截器用户表user uid name address 1 Zhangsan wuhan 2 Lisi hannan 3 Wangwu beijing角色表role rid name 1 部门经理 2 研发工程师 3 市场权限表auth aid name a

9、ction 1 添加图书 book_add 2 查询图书 book_list 3 添加用户 user_add用户角色表user_role Id uid rid 1 1 1 2 1 2 3 2 3角色权限表role_auth Id rid aid 1 1 1 2 1 2 3 2 1Softeem Consultancy Service权限拦截器浏览者book_add.action是否已经登陆, Session中有 bean表示已经登陆是否有访问权限,没有就回 退,有就继续向前。将UserBean放到 session中 将某个用户所有的权限查询出来: select distinct a.actio

10、n from user_role ur inner join role_auth ra on ur.rid=ra.rid inner join auth a on a.aid=ra.aid 保存到session中;没有登陆登陆Softeem Consultancy Servicelogin.actionpublic String login() UserDTO dto = new UserDTO(); dto.setUserName(“lisi“); session.put(“user“, dto); List list = new ArrayList(); list.add(“boke_ad

11、d“); list.add(“boke_list“); session.put(“rights“, list); return “success“; 将权限存入list中。Softeem Consultancy Service拦截器管理AuthorityInterceptorpublic String intercept(ActionInvocation invocation) throws Exception ActionContext ctx = invocation.getInvocationContext();Map session = ctx.getSession();UserDTO

12、 user = (UserDTO)session.get(“user“);List list = (List)session.get(“rights“);if (user = null | list = null) ctx.put(“tip“ , “您还没有登陆,请输入scott,tiger登陆系统“);return Action.LOGIN;if(!list.contains(ctx.getName()ctx.put(“tip“ , “您没有当前操作的权限“);return Action.LOGIN;return invocation.invoke(); 获取当前请求的名字: 如请求为:bo

13、ke_list.action ctx.getName()为boke_listSofteem Consultancy Service拦截器配置boke/list.actionlogin.jsp1.jspSofteem Consultancy Service更加实用的设计权限表auth aid name action parent_aid show_order 1. 图书管理 0 1 2添加图书 book_add 1 2 3查询图书 book_list 1 3 3用户管理 0 4 4添加用户 user_add 3 5用户表user uid name address 1 Zhangsan wuhan

14、 2 Lisi hannan 3 Wangwu beijing角色表role rid name 1 部门经理 2 研发工程师 3 市场用户角色表user_role Id uid rid 1 1 1 2 1 2 3 2 3角色权限表role_auth Id rid aid 1 1 1 2 1 2 3 2 1可以根据权限表的设计,自 动生成菜单Softeem Consultancy Service更加实用的设计添加图书book_add2HashMapkeyvalueList查询图书添加图书修改图书图书管理 添加用户查询用户用户管理Class Authint id;String name;Strin

15、g actionName;String order; List list1 = new ArrayList(); list1.add(new Auth(“查询图书”,”book_list”); list1.add(new Auth(“添加图书”,”book_add”);Map map = new HashMap(); Map.put(“图书管理”, list1); Map.put(“用户管理”, list2);session.put(“auths”, map);Softeem Consultancy Service.actionStruts2标签生成Softeem Consultancy Service拦截器管理AuthorityInterceptorString actionName = arg0.getInvocation

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号