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

Struts2拦截器浅析

难度中级
时长59分
学习人数
综合评分9.77
231人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.7 逻辑清晰
  • 相关代码——(下): @login.jsp 信息:${session_error} <form action="Login" method="post"><!-- 默认情况下:Login.action或Login都行。 --> 用户名:<input name="user" type="text" /> 密码:<input name="pwd" type="password" /> <input value="Login" type="submit" /> </form> @manager.jsp 后台管理页面。只有已登录的用户才能访问! 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 相关代码——(中): @struts.xml <struts> <package name="default" extends="struts-default" namespace="/"> <!-- 注册拦截器 --> <!-- Ps:拦截器栈内的拦截器(除了默认拦截器)的name要与拦截器栈外的拦截器要一致,因为引用拦截器栈的时候,里面的拦截器是从外面的拦截器中的class引用的 --> <interceptors> <interceptor name="AuthI" class="com.imooc.interceptor.AuthInterceptor"></interceptor> <!-- 自定义拦截器mystack:组合了defaultStack和AuthI --> <interceptor-stack name="mystack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="AuthI"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 通过此Action访问后台管理页面,需要判断用户是否已登录,如果未登录则跳转到登录页面 --> <action name="Auth"> <result>/WEB-INF/page/manager.jsp</result> <result name="login">/login.jsp</result> <!-- 引用自定义的拦截器 --> <interceptor-ref name="mystack"></interceptor-ref> </action> <action name="Login" class="com.imooc.action.LoginAction" method="login"> <result>/WEB-INF/page/manager.jsp</result> <result name="error">/login.jsp</result> </action> </package> </struts>
    查看全部
  • 相关代码——(上): @LoginAction.java public class LoginAction extends ActionSupport implements SessionAware{ private String user; private String pwd; private Map<String,Object> session; public void setSession(Map<String, Object> session) { this.session=session; } //setter/getter... public String login(){ if("admin".equals(user)&&".".equals(pwd)){ session.put("session_user", user); return SUCCESS; }else{ session.put("session_error", "用户名或密码不正确!"); return ERROR; } } } @AuthInterceptor.java public class AuthInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { ActionContext context=ActionContext.getContext(); Map<String , Object> session=context.getSession(); if(session.get("session_user")!=null){ String result=invocation.invoke(); return result; }else{ return "login"; } } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • <!-- 为Action显示引用拦截器后,默认的拦截器defaultStack不再生效,需要手工引用。而且从顺序角度去讲,最好把默认的拦截器写在最上面 --> <interceptor-ref name="defaultStack"></<interceptor-ref> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 相关代码——(下): @struts.xml <struts> <package name="default" extends="struts-default" namespace="/"> <!-- 注册(定义)拦截器 --> <interceptors> <interceptor name="mytimer" class="com.imooc.interceptor.TimerInterceptor"></interceptor> </interceptors> <action name="timer" class="com.imooc.action.TimerAction"> <result>/success.jsp</result> <!-- 引用拦截器 --> <interceptor-ref name="mytimer"></interceptor-ref> </action> </package> </struts> @index.jsp <a href="timer">访问TimerAction</a><!-- 因为默认后缀为.action或没有,所以可以不用写timer.action,直接写timer --> 提示:实现一个拦截器主要过程: 第一步:实现一个拦截器的类,有两个方法,写一个拦截器的类继承自AbstractInterceptor或者实现Interceptor接口,并且在这个类里面实现对应的intercept方法。 第二步:在struts.xml中对拦截器进行注册(定义),并且在action中对拦截器进行引用。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 相关代码——(上): @TimerAction.java public class TimerAction extends ActionSupport{ @Override public String execute() throws Exception { for(int i=0;i<10000;i++){ System.out.println("访问suceess.jsp"); } return SUCCESS; } } @TimerInterceptor.java /** * 计算执行Action花费的时间 */ public class TimerInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { //1.执行Action之前 long start=System.currentTimeMillis(); //2.执行下一个拦截器,如果已经是最后一个拦截器,则执行目标Action。返回值:方法中return的值,如"success"。 String result=invocation.invoke(); //3.执行Action之后 long end=System.currentTimeMillis(); System.out.println("执行Action花费的时间:"+(end-start)+"ms"); System.out.println(result); return result; } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • @自定义拦截器方法二(推荐) 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • @自定义拦截器方法一(比较麻烦) 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 拦截器工作原理(类似Web中的过滤器) 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 什么是拦截器 II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 什么是拦截器 I 作用如:数据转移、类型转换、数据校验。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • strut.xml常量设置
    查看全部

举报

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

微信扫码,参与3人拼团

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

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