struts2自定义拦截器(登陆校验拦截器)
需求:有些页面需要先登录才可以访问,如果没有登陆就跳转到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自定义拦截器(登陆校验拦截器)相关推荐
- JAVAEE——SSH项目实战05:用户注册、登陆校验拦截器、员工拜访客户功能和MD5加密...
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7170519.html 一.用户注册 显示错误信息到页面上的另一种方法: public ...
- ssh_crm:用户注册、登陆校验拦截器、员工拜访客户功能
登陆页面编辑: 用户注册 UserAction UserServiceImpl struts.xml 登陆错误回显信息 登陆校验拦截器 新建一个PrivilegeInterceptor类,在inter ...
- Spring MVC拦截器~~~登陆验证拦截
[ 30 分 钟 轻 松 入 门 Spring MVC][web 三 大 组 件 之 ~ ~ Filter 过 滤 器] Interceptor 拦截器学习: 1.了解spring mvc拦截器的概念 ...
- Struts2 自定义拦截器
所属栏目:AbstractInterceptor 如果要编写自定义拦截器,那么可以只用实现com.opensymphony.xwork2.interceptor.Interceptor这个接口即可. ...
- Struts2第七篇【介绍拦截器、自定义拦截器、执行流程、应用】
什么是拦截器 拦截器Interceptor-..拦截器是Struts的概念,它与过滤器是类似的-可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为 ...
- Struts2 自定义拦截器(方法拦截器)
转自:http://05061107cm.iteye.com/blog/365504 struts2系统自带了很多拦截器,有时需要我们自己定义,一般有两种方式: 一.实现Interceptor接口 J ...
- Struts2学习笔记(八) 拦截器(Interceptor)(上)
什么是拦截器(Interceptor) 拦截器是struts2框架最重要的特性之一.它可以让你在Action 方法执行前后(Result执行之后)进行一些功能处理.在前面学习Action和学习Resu ...
- Struts2拦截器实例-权限拦截器
查看本例之前首先要大概了解struts2的理论知识(点击查看) 本例实现了一个权限拦截器! 需求:要求用户登录,且必须为指定用户名才可以查看系统中的某个视图资源,如果不满足这两个条件,系统直接转入登录 ...
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【拦截器机制】
[Java EE (Struts2 + Spring + Hibernate)开发]:Struts2(二)之[拦截器机制] 本文地址:http://blog.csdn.net/shanglianlm/ ...
最新文章
- 大家都说 Java 反射效率低,为什么呢?
- C++中STL和容器、迭代器、算法之间的关系
- 每天一道LeetCode-----实现LFU置换算法
- 判断一个数是否是素数,为什么只要除到根号那个数就够了
- C# StreamReader类和StreamWriter类
- OpenCV计算机视觉实战(Python版)_005图像的梯度处理
- javascript 中文帮助文档_我的《ANSA快速入门指南》中文帮助文档浅析(上)
- 二十一天学通JavaScript:cookie的安全性
- SD从零开始29-30
- 【三维路径规划】基于matlab A_star算法无人机三维路径规划【含Matlab源码 003期】
- oracle基础教程(第四天)数据库管理
- Linux之nmap扫描多网段
- android代码 qq语音,仿QQ语音变声功能实现(二)---移植到android studio 并解决部分问题...
- Aviary发布iOS和Android App 成功从Android插件转型独立应用
- ar虚拟现实电子沙盘软件制作
- strtok函数源码
- mosquitto分析
- win7 无显示器 服务器,win7显示器无信号怎么办?电脑显示器无信号修复方法
- Java学习方法和经验分享,小白看过来
- 远程访问Access数据库