Struts2自定义拦截器实例—只允许从登录页面进入系统 struts2拦截器的作用

  1. 【1】struts.xml:
  2. <!--定义一个拦截器 -->
  3. <interceptors>
  4. <interceptor name="authority"
  5. >
  6. </interceptor>
  7. <!-- 拦截器栈 -->
  8. <interceptor-stackname="mydefault">
  9. <interceptor-ref name="defaultStack"/>
  10. <interceptor-ref name="authority" />
  11. </interceptor-stack>
  12. </interceptors>
  13. <!-- 定义全局Result -->
  14. <global-results>
  15. <!-- 当返回login视图名时,转入/login.jsp页面-->
  16. <resultname="login">/login.jsp</result>
  17. </global-results>
  18. <actionname="show">
  19. <resultname="success">/main.jsp</result>
  20. <!-- 使用此拦截器 -->
  21. <interceptor-ref name="mydefault"/>
  22. </action>
  23. <!--验证登录用户信息-->
  24. <actionname="login"method="execute">
  25. <resultname="error">/login.jsp</result>
  26. <resultname="input">/login.jsp</result>
  27. </action>
  28. 【2】自定义拦截器org.interceptot.LoginInterceptor:
  29. package org.interceptot;
  30. import java.util.Map;

  31. import com.opensymphony.xwork2.Action;
  32. importcom.opensymphony.xwork2.ActionContext;
  33. importcom.opensymphony.xwork2.ActionInvocation;
  34. importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;
  35. public class LoginInterceptor extendsAbstractInterceptor {
  36. @Override
  37. public String intercept(ActionInvocation invocation) throwsException {
  38. // 取得请求相关的ActionContext实例
  39. ActionContext ctx =invocation.getInvocationContext();
  40. Map session =ctx.getSession();
  41. String user = (String)session.get("username");
  42. // 如果没有登陆,即用户名不存在,都返回重新登陆
  43. System.out.println("user:"+user);
  44. if (user != null) {
  45. System.out.println("test");
  46. return invocation.invoke();
  47. }
  48. System.out.println("你还没有登录");
  49. ctx.put("tip", "你还没有登录");
  50. return Action.LOGIN;//返回一个叫login的result结果
  51. }
  52. }
  53. 【3】进入主页面的Action:org.action.showAction
  54. package org.action;

  55. importcom.opensymphony.xwork2.ActionSupport;

  56. Struts2自定义拦截器实例—只允许从登录页面进入系统 struts2拦截器的作用
  57. public class showAction extendsActionSupport {
  58. public String execute(){
  59. return "success";
  60. }
  61. }

  62. 【4】LoginAction:

  63. private boolean isInvalid(String value) {
  64. return (value == null || value.length()== 0);
  65. }
  66. if (isInvalid(user.getUsername()))
  67. return INPUT;
  68. if (isInvalid(user.getPassword()))
  69. return INPUT;
  70. //登录成功将User放入session中
  71. HttpServletRequest request =ServletActionContext.getRequest();
  72. Mapmap=ActionContext.getContext().getSession();
  73. map.put("username",user.getUsername());

  74. 【5】如果我们通过show.action访问main.jsp那么就会被自定义拦截器拦住,拦截器检查session中
  75. 是否有值,有证明用户已经登录,没有则为没有登录,那么就会被跳转到登陆页面。




  

爱华网本文地址 » http://www.aihuau.com/a/25101018/372116.html

更多阅读

如何自定义文件夹图标 win7自定义文件夹图标

如何自定义文件夹图标——简介如何制作个性的文件夹图标,一眼就区别开不同的文件夹。如何自定义文件夹图标——工具/原料png图片转化ico图片软件美图秀秀如何自定义文件夹图标——方法/步骤如何自定义文件夹图标 1、从百度图片里

加湿器的危害 六招有效解决加湿器隐患 纯净型加湿器的危害

加湿器的危害 六招有效解决加湿器隐患——简介 秋冬季节是一年四季最干燥的季节,特别是北方的天气,空气十分干燥,对人的皮肤和健康带来一些隐患,于是加湿器便不可置疑的进入到了人们的生活中,但是在日常生活中许多人却忽略了加湿器的危害

如何自定义QQ秀图片 qq秀免费自定义图片

如何自定义QQ秀图片——简介教你怎把QQ秀换成自定义图片,自定义图片功能可以把自己想要的图片传到QQ秀形象,也可以随时用空间的图片做形象,但是这个功能是收费的。下面小编就说说操作步骤。如何自定义QQ秀图片——工具/原料电脑QQ秀

声明:《Struts2自定义拦截器实例—只允许从登录页面进入系统 struts2拦截器的作用》为网友怨风离愁人分享!如侵犯到您的合法权益请联系我们删除