需求:有些页面需要先登录才可以访问,如果没有登陆就跳转到login.jsp去登陆

此案例为访问login方法的时候不拦截,只有把user放到session中才可以访问别的方法

web.xml 配置拦截器

  <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

LoginInterceptor 自定义登陆拦截器

public class LoginInterceptor extends MethodFilterInterceptor{@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {//获取sessionMap<String, Object> session = ActionContext.getContext().getSession();//session中获取userObject object = session.get("user");//没登陆if(object==null) {return "toLogin";}else {//已经登陆  ,放行return invocation.invoke();}}}

LoginAction 登陆Action

public class LoginAction extends ActionSupport{public String login() throws Exception {User user = new User();user.setName("jack");user.setPassword("123");Map<String, Object> session = ActionContext.getContext().getSession();session.put("user", user);return "toIndex";}public String list() throws Exception {List<String> arrayList = new ArrayList<>();arrayList.add("user1");arrayList.add("user2");ActionContext.getContext().put("list", arrayList);return "toSuccess";}}

struts.xml 指定login方法不拦截

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><constant name="struts.devMode" value="true"></constant><package name="result" namespace="/" extends="struts-default"><interceptors><!-- 1.注册拦截器 --><interceptor name="myInterceptor" class="com.it.action.LoginInterceptor"></interceptor><!-- 2.注册拦截器栈 --><interceptor-stack name="myStack"><!-- 自定义拦截器引入 --><interceptor-ref name="myInterceptor"><!-- 指定哪些方法不拦截--><param name="excludeMethods">login</param> <!-- 拦截哪些方法 --><!-- <param name="includeMethods">print,list</param> --></interceptor-ref><!-- 默认的拦截器 --><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack></interceptors><!-- 3.指定默认拦截器 --><default-interceptor-ref name="myStack"></default-interceptor-ref><!-- 定义全局结果集 --><global-results><result name="toLogin" type="redirect">/login.jsp</result></global-results><action name="DemoAction1_*" class="com.it.action.LoginAction" method="{1}"><result name="toIndex" type="dispatcher">/hello.jsp</result><result name="toSuccess" type="dispatcher">/success.jsp</result></action></package></struts>

struts2自定义拦截器(登陆校验拦截器)相关推荐

  1. JAVAEE——SSH项目实战05:用户注册、登陆校验拦截器、员工拜访客户功能和MD5加密...

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7170519.html 一.用户注册   显示错误信息到页面上的另一种方法: public ...

  2. ssh_crm:用户注册、登陆校验拦截器、员工拜访客户功能

    登陆页面编辑: 用户注册 UserAction UserServiceImpl struts.xml 登陆错误回显信息 登陆校验拦截器 新建一个PrivilegeInterceptor类,在inter ...

  3. Spring MVC拦截器~~~登陆验证拦截

    [ 30 分 钟 轻 松 入 门 Spring MVC][web 三 大 组 件 之 ~ ~ Filter 过 滤 器] Interceptor 拦截器学习: 1.了解spring mvc拦截器的概念 ...

  4. Struts2 自定义拦截器

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

  5. Struts2第七篇【介绍拦截器、自定义拦截器、执行流程、应用】

    什么是拦截器 拦截器Interceptor-..拦截器是Struts的概念,它与过滤器是类似的-可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为 ...

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

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

  7. Struts2学习笔记(八) 拦截器(Interceptor)(上)

    什么是拦截器(Interceptor) 拦截器是struts2框架最重要的特性之一.它可以让你在Action 方法执行前后(Result执行之后)进行一些功能处理.在前面学习Action和学习Resu ...

  8. Struts2拦截器实例-权限拦截器

    查看本例之前首先要大概了解struts2的理论知识(点击查看) 本例实现了一个权限拦截器! 需求:要求用户登录,且必须为指定用户名才可以查看系统中的某个视图资源,如果不满足这两个条件,系统直接转入登录 ...

  9. 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【拦截器机制】

    [Java EE (Struts2 + Spring + Hibernate)开发]:Struts2(二)之[拦截器机制] 本文地址:http://blog.csdn.net/shanglianlm/ ...

最新文章

  1. 大家都说 Java 反射效率低,为什么呢?
  2. C++中STL和容器、迭代器、算法之间的关系
  3. 每天一道LeetCode-----实现LFU置换算法
  4. 判断一个数是否是素数,为什么只要除到根号那个数就够了
  5. C# StreamReader类和StreamWriter类
  6. OpenCV计算机视觉实战(Python版)_005图像的梯度处理
  7. javascript 中文帮助文档_我的《ANSA快速入门指南》中文帮助文档浅析(上)
  8. 二十一天学通JavaScript:cookie的安全性
  9. SD从零开始29-30
  10. 【三维路径规划】基于matlab A_star算法无人机三维路径规划【含Matlab源码 003期】
  11. oracle基础教程(第四天)数据库管理
  12. Linux之nmap扫描多网段
  13. android代码 qq语音,仿QQ语音变声功能实现(二)---移植到android studio 并解决部分问题...
  14. Aviary发布iOS和Android App 成功从Android插件转型独立应用
  15. ar虚拟现实电子沙盘软件制作
  16. strtok函数源码
  17. mosquitto分析
  18. win7 无显示器 服务器,win7显示器无信号怎么办?电脑显示器无信号修复方法
  19. Java学习方法和经验分享,小白看过来
  20. 远程访问Access数据库

热门文章

  1. java.util.sortedmap_SortedMap接口
  2. 赛题分析:AI决策•强化学习落地挑战赛——学习指定平等的促销策略
  3. Ubuntu中dpkg命令
  4. linux mutt dns,使用mutt处理电子邮件
  5. 手把手教你制作中英文词云_英文.py
  6. 英语语法 -- 第一讲、语序和基本句式
  7. C++ 11 deleted函数
  8. 机器学习 - 机器学习名字的由来
  9. elasticsearch自定义企业词典
  10. android 系统短信数据库的查询与删除