为了账号安全,请及时绑定邮箱和手机立即绑定

Struts2拦截器浅析

难度中级
时长59分
学习人数
综合评分9.77
231人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.7 逻辑清晰
  • 自定义拦截器的方式二

    查看全部
  • 自定义拦截器

    查看全部
  • 拦截器工作原理

    查看全部
  • (案例)开发权限验证的拦截器. 效果:后台有一个管理页面,要求用户必须是已登录的用户才能访问页面,如果用户未登录则不允许访问此页面. 1.首先创建一个管理页面(manager.jsp)与登录页面(login.jsp). 2.创建一个专门用来跳转到后台管理页面的action并配置,跳转方法返回的字符串是对应结果集中的manager.jsp页面,即管理页面.因此当直接访问此action时,就可以跳转到后台管理页面(此时不需要登录). 3.在login.jsp中需要定义表单,用于登录,此表单提交到一个用来处理登录信息的action来接收和处理表单的信息,在action中要获取session对象.action中有一个处理信息的login()方法,表单提交到此action时便执行此login()方法,在方法里通过if语句判断用户输入的用户名与密码是否正确. 如果都正确,便把登录信息保存在Session当中,即session.put("loginsuccess",username)),login()方法直接返回SUCCESS即可. 如果用户登录失败,则保存一个登录失败的信息进入session,即session.put("loginfalse","登录失败!").login()方法返回ERROR. 在strut.xml中配置此验证登录的action(跳转的action已配置),当login()方法返回SUCCESS时,即登录成功,则在<result>的路径返回后台管理页面.否则返回登录页面,即login.jsp. <action name="" class=""> <result>web-inf/manager.jsp</result> <result name="error">/login.jsp</result> </action>

    查看全部
  • 使用拦截器进行用户权限验证1.创建被访问的资源如后台管理页面manager.jsp将其放到WEB-INF下外部不能直接访问 2.创建authAction将请求转发到被访问资源manager.jsp 3.创建登陆页面login.jsp接收用户登录信息 4.创建loginAction处理登陆请求校验登录信息并将有效登陆信息或错误信息放到session中 其中有效登录信息loginInfo用于步骤5拦截器校验会话信息错误信息用于前台页面展示 5.创建拦截器authInterceptor对访问authAction的请求进行拦截处理通过ActionContext获取会话session并校验session的登陆信息如果不为空即获取权限放行否则拦截并转发到登陆界面 总结如果只是一次登陆的话这里的2和5确实看起来很多余但是这个功能实际是为了多页面访问时校验同一个session下是否有权限因此使用了两个action进行请求转发当第一次登陆之后用户只需要直接访问authAction就可以访问到后台资源无需再次登陆。

    查看全部
  • 下面是4个开发模式常用配置的简介---    <!-- 开启使用开发模式,详细错误提示 -->    <!-- <constant name="struts.devMode" value="true"/>-->    <!-- 指定每次请求到达,重新加载资源文件 -->    <!-- <constant name="struts.i18n.reload" value="true"/>-->    <!-- 指定每次配置文件更改后,自动重新加载 -->    <!-- <constant name="struts.configuration.xml.reload" value="true"/>-->    <!-- 指定XSLT Result使用样式表缓存 -->    <!-- <constant name="struts.xslt.nocache" value="true"/>-->

    查看全部
  • 默认拦截器栈: <!-- 为Action显示引用拦截器后,默认的拦截器defaultStack不再生效,需要手工引用。而且从顺序角度去讲,最好把默认的拦截器写在自定义拦截器上面 --> <interceptor-ref name="defaultStack"></interceptor-ref>

    查看全部
  • 1.定义拦截器 1.1.创建一个拦截器类继承自AbstractInterceptor类 1.2.实现intercept方法 eg: public String intercept(ActionInvocation invocation) throws Exception { //1.执行action之前 long start=System.currentTimeMillis(); //2.执行下一个拦截器,如果是最后一个拦截器,则执行目标action String result=invocation.invoke(); //3.执行action之后 long end=System.currentTimeMillis(); //4.花费的时间 long time=end-start; System.out.println("执行花费的时间: "+time+" ms"); return result; } 2.配置拦截器       <interceptors>          <interceptor name="timeinterceptor" class="com.imooc.interceptor.TimerInterceptor"></interceptor>       </interceptors> 3.引用拦截器 <interceptor-ref name="timeinterceptor"></interceptor-ref>

    查看全部
  • 自定义拦截器: 1.方法一:实现Interceptor接口 -void init():初始化拦截器所需资源 -void destroy() :释放在init()中分配的资源 -String intercept(ActionInvocation ai)throws Exception 实现拦截器功能,利用ActionInvocation参数获取Action状态,返回result字符串作为逻辑视图。 2.方式二:继承AbstractInterceptor类 -提供了init()和destroy() 方法的空实现 -只需要实现intercept方法即可 实际开发当中一般会去继承AbstractInterceptor这个父类

    查看全部
  • 拦截器: Struts2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能。 拦截器方法在Action执行之前或者之后执行。 拦截器栈: 从结构上看,拦截器栈相当于多个拦截器的组合。 在功能上看,拦截器栈也是拦截器。 拦截器的执行过程是一个递归的过程,工作原理类似于过滤器。

    查看全部
  • strust2的工作流程: 客户端通过HttpServletRequest向Tomcat容器发送请求---->过滤器(核心控制器StrutsPrepareAndexecuteFiler)----> 核心控制器访问ActionMapper来决定是否调用某个action(如果是jsp页面等则不会调用action)------> 核心控制权ActionProxy(action代理)---->ConfigurationManager(配置管理器)加载struts.xml找到要调用的action---> ActionProxy(action代理)创建Action invocation实例--->调用拦截器123————》拦截器执行完后才执行action 调用action业务处理方法 同时这个方法返回一个 字符串结果--->根据字符串去匹配视图--->再次倒序执行拦截器321 ----最后通过HttpServletRequest响应请求

    查看全部
  • 默认拦截器栈

    查看全部
  • 自定义拦截器

    查看全部
  • 自定义拦截器

    查看全部
  • 拦截器工作原理

    查看全部

举报

0/150
提交
取消
课程须知
本课程主要讲解Struts2中的拦截器,小伙伴们需要对Struts2基本用法、 Action配置等相关知识有一定的基础。
老师告诉你能学到什么?
1、拦截器概念、作用 2、Struts2内建的拦截器 3、如何自定义拦截器 4、使用拦截器实现权限控制

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!