版本:struts2.1.6

此实例实现功能:用户需要指定用户名登陆,登陆成功进入相应页面执行操作,否则返回到登陆页面进行登陆,当直接访问操作页面(登陆后才能访问的页面)时则不允许,须返回登陆页面。

代码如下:

一、页面

login.jsp

[xhtml] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>yuewei'Login</title>
  6. <!--
  7. <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
  8. -->
  9. </head>
  10. <body>
  11. <form action="login.action" method="post">
  12. User:<input type="text" name="username"><br>
  13. Passoword:<input type="password" name="password"><br>
  14. <input type="submit" value="submit">
  15. </form>
  16. </body>
  17. </html>

welcome.jsp

[xhtml] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title> yuewei's Welcome</title>
  6. <!--
  7. <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
  8. -->
  9. </head>
  10. <body>
  11. <h1>登录成功后显示此页面</h1>
  12. <a href="show.action" mce_href="show.action">show</a>
  13. </body>
  14. </html>

show.jsp

[xhtml] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>yuewei's Show</title>
  6. <!--
  7. <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
  8. -->
  9. </head>
  10. <body>
  11. Show This Page
  12. 登录后执行此页面<br>
  13. </body>
  14. </html>

二、Action

LoginFormAction

[java] view plain copy
  1. package com.ywjava.action;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. public class LoginFormAction extends ActionSupport {
  4. public String exexcute() {
  5. return "success";
  6. }
  7. }

LoginAction

[java] view plain copy
  1. package com.ywjava.action;
  2. import com.opensymphony.xwork2.ActionContext;
  3. import com.opensymphony.xwork2.ActionSupport;
  4. import com.ywjava.utils.Constants;
  5. public class LoginAction extends  ActionSupport{
  6. private String username;
  7. private String password;
  8. public String getPassword() {
  9. return password;
  10. }
  11. public void setPassword(String password) {
  12. this.password = password;
  13. }
  14. public String getUsername() {
  15. return username;
  16. }
  17. public void setUsername(String username) {
  18. this.username = username;
  19. }
  20. private boolean isInvalid(String value) {
  21. return (value == null || value.length() == 0);
  22. }
  23. public String execute(){
  24. System.out.println(username);
  25. System.out.println(password);
  26. if (isInvalid(getUsername()))
  27. return INPUT;
  28. if (isInvalid(getPassword()))
  29. return INPUT;
  30. if(this.getUsername().equals("yuewei")&& this.getPassword().equals("yuewei")){
  31. ActionContext.getContext().getSession().put(Constants.USER_SESSION,getUsername());
  32. ActionContext.getContext().getSession().put(Constants.PASS,getPassword());
  33. return "success";
  34. }
  35. return "error";
  36. }
  37. }

ShowAction

[java] view plain copy
  1. package com.ywjava.action;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. public class ShowAction extends ActionSupport {
  4. public String execute() {
  5. return "success";
  6. }
  7. }

三、拦截器

[java] view plain copy
  1. package com.ywjava.interceptot;
  2. import java.util.Map;
  3. import com.opensymphony.xwork2.Action;
  4. import com.opensymphony.xwork2.ActionContext;
  5. import com.opensymphony.xwork2.ActionInvocation;
  6. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
  7. import com.ywjava.utils.Constants;
  8. public class LoginInterceptor extends AbstractInterceptor {
  9. @Override
  10. public String intercept(ActionInvocation invocation) throws Exception {
  11. // 取得请求相关的ActionContext实例
  12. ActionContext ctx = invocation.getInvocationContext();
  13. Map session = ctx.getSession();
  14. String user = (String) session.get(Constants.USER_SESSION);
  15. // 如果没有登陆,或者登陆所有的用户名不是yuewei,都返回重新登陆
  16. if (user != null && user.equals("yuewei")) {
  17. System.out.println("test");
  18. return invocation.invoke();
  19. }
  20. ctx.put("tip", "你还没有登录");
  21. return Action.LOGIN;
  22. }
  23. }

四 struts.xml

[c-sharp] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
  4. "http://struts.apache.org/dtds/struts-2.1.dtd">
  5. <struts>
  6. <package name="authority" extends="struts-default">
  7. <!-- 定义一个拦截器 -->
  8. <interceptors>
  9. <interceptor name="authority"
  10. class="com.ywjava.interceptot.LoginInterceptor">
  11. </interceptor>
  12. <!-- 拦截器栈 -->
  13. <interceptor-stack name="mydefault">
  14. <interceptor-ref name="defaultStack" />
  15. <interceptor-ref name="authority" />
  16. </interceptor-stack>
  17. </interceptors>
  18. <!-- 定义全局Result -->
  19. <global-results>
  20. <!-- 当返回login视图名时,转入/login.jsp页面 -->
  21. <result name="login">/login.jsp</result>
  22. </global-results>
  23. <action name="loginform"
  24. class="com.ywjava.action.LoginFormAction">
  25. <result name="success">/login.jsp</result>
  26. </action>
  27. <action name="login" class="com.ywjava.action.LoginAction">
  28. <result name="success">/welcome.jsp</result>
  29. <result name="error">/login.jsp</result>
  30. <result name="input">/login.jsp</result>
  31. </action>
  32. <action name="show" class="com.ywjava.action.ShowAction">
  33. <result name="success">/show.jsp</result>
  34. <!-- 使用此拦截器 -->
  35. <interceptor-ref name="mydefault" />
  36. </action>
  37. </package>
  38. </struts>

Struts2自定义拦截器实例—登陆权限验证相关推荐

  1. Struts2自己定义拦截器实例—登陆权限验证

    版本号:struts2.1.6 此实例实现功能:用户须要指定username登陆,登陆成功进入对应页面运行操作,否则返回到登陆页面进行登陆,当直接訪问操作页面(登陆后才干訪问的页面)时则不同意,须返回 ...

  2. struts2自定义拦截器(登陆校验拦截器)

    需求:有些页面需要先登录才可以访问,如果没有登陆就跳转到login.jsp去登陆 此案例为访问login方法的时候不拦截,只有把user放到session中才可以访问别的方法 web.xml 配置拦截 ...

  3. struts2自定义拦截器一——模拟登陆权限验证

    1.http://localhost:8083/struts2/user.jsp 表示用户已登陆,存放session对象 2.http://localhost:8083/struts2/quit.js ...

  4. Struts2 自定义拦截器

    所属栏目:AbstractInterceptor 如果要编写自定义拦截器,那么可以只用实现com.opensymphony.xwork2.interceptor.Interceptor这个接口即可. ...

  5. Struts2 自定义拦截器(easy example)

    要自定义拦截器需要实现com.opensymphony.xwork2.interceptor.Interceptor接口: 新建一个MyIntercept package com.action;imp ...

  6. Struts2自定义拦截器

    1. 需求 自定义拦截器实现,用户登录的访问控制. 2. 定义拦截器类 1 public class LoginInterceptor extends AbstractInterceptor 2 { ...

  7. struts2自定义拦截器并配置拦截器使其生效

    首先编写一个struts2的拦截器,要继承 MethodFilterInterceptor 并获取其中的方法 package star.july.d_interceptor;import com.op ...

  8. Struts2 自定义拦截器(方法拦截器)

    转自:http://05061107cm.iteye.com/blog/365504 struts2系统自带了很多拦截器,有时需要我们自己定义,一般有两种方式: 一.实现Interceptor接口 J ...

  9. 使用mybatis plus自定义拦截器,实现数据权限

    需求 为了增强程序的安全性,需要在用户访问数据库的时候进行权限判断后选择性进行判断是否需要增强sql,来达到限制低级别权限用户访问数据的目的. 根据业务需要,这里将角色按照数据范围做权限限定.比如,角 ...

最新文章

  1. Android Studio——字体大小的修改
  2. oracle对比两列数据_oracle与mysql对同一张表 两列数据的某一字段进行值的交换
  3. dailybuild
  4. 零基础入门Python I/O:从print函数开始
  5. 浅析NVR主流芯片方案
  6. 判断字符串中是否包含Emoji表情代码
  7. 对Spring Boot还陌生吗?
  8. position之属性
  9. 四元数与欧拉角的转换
  10. 支持Linux系统双网卡ARM平台AM3352/AM3354
  11. NCURSES程序设计之皇后问题
  12. mysql 从大到小排序
  13. 深圳超美海边烧烤场 深圳户外烧烤攻略
  14. vuex的基本应用(vuex的购物车案例)
  15. svm matlab 图像分割,勇哥的视觉实验:SVM分类器(二) 支持向量机的应用例子,图片分割...
  16. 通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成。
  17. XMind商业思维导图——市场营销!
  18. 电脑文件误删除如何恢复?可以快速找回
  19. mit app中计算器制作程序_“个税APP”,防不胜防啊
  20. Java编程思想读书笔记——第十章:内部类

热门文章

  1. 【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )
  2. 【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )
  3. 【Java 虚拟机原理】垃圾回收算法 ( 设置 JVM 命令参数输出 GC 日志 | GC 日志输出示例 | GC 日志分析 )
  4. 【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )
  5. 【RecyclerView】 三、RecyclerView 布局 ( 线性布局管理器 LinearLayoutManager )
  6. 【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )
  7. 实践作业3 (2017-12-4)
  8. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?...
  9. 通用用户权限管理系统组件V3.8功能改进说明 - 行政审批流程组件的改进
  10. Windows Phone 7 开发资源汇总