1. 需求

自定义拦截器实现,用户登录的访问控制。

2. 定义拦截器类

 public class LoginInterceptor extends AbstractInterceptor
{ @Override
public String intercept(ActionInvocation ai) throws Exception
{
// TODO Auto-generated method stub
System.out.println("--------------intercept");
String methodName = ai.getProxy().getMethod(); //获得被拦截的方法名字
System.out.println("=============" + methodName);
if (methodName.equals("userLogin"))
{
return ai.invoke();//放行:继续向下执行
}
//获得登陆成功之后,会话对象封装的数据
Object obj = ai.getInvocationContext().getSession().get("user");
if (obj == null)
{
return Action.LOGIN; //跳转到登陆页面
} else
{
return ai.invoke();//放行:继续向下执行
}
}
}

3. 配置拦截器

 <?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>
<package name="user" namespace="/" extends="struts-default">
<interceptors>
<!-- 声明自定义拦截器 -->
<interceptor name="loginInterceptor" class="com.bjsxt.util.LoginInterceptor"></interceptor>[A2]
<!-- 自定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors> <!-- 全局的跳转结果 -->
<global-results>
<result name="login">WEB-INF/jsp/login.jsp</result>
</global-results> <action name="userAction_*" class="com.bjsxt.action.UserAction"
method="{1}">
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="mystack"></interceptor-ref>
<result name="input">/index.jsp</result>
<result>/index.jsp</result>
<result name="show">WEB-INF/jsp/show.jsp</result>
</action>
<action name="defAction">
<result>WEB-INF/jsp/show.jsp</result>
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="mystack"></interceptor-ref>
</action>
</package>
</struts>

Struts2自定义拦截器的更多相关文章

  1. Struts2自定义拦截器Interceptor以及拦截器登录实例

    1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...

  2. struts2自定义拦截器 设置session并跳转

    实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆. 为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟 修改web.xml view plainco ...

  3. 12.Struts2自定义拦截器

    12.自定义拦截器        拦截器是Struts2的一个重要特性.因为Struts2的大多数核心功能都是通过拦截器实现的. 拦截器之所以称之为“拦截器”,是因为它可以拦截Action方法的执行, ...

  4. 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】

    一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...

  5. Struts2 自定义拦截器

    自定义拦截器(权限管理),包含了对ajax和表单请求的拦截 package com.interceptor; import java.io.IOException; import java.io.Pr ...

  6. struts2自定义拦截器与cookie整合实现用户免重复登入

    目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码 结构(两部份)=struts2.xml+自定义拦截器 ...

  7. 5、Struts2自定义拦截器

    一.拦截器相关知识 1.Struts2框架剖析 Holly版本生活案例: 影视公司(拍电影)    ActionMapper 传媒公司(包装明星) ActionMapping 明星           ...

  8. Struts2自定义拦截器处理全局异常

    今天在整理之前的项目的时候想着有的action层没有做异常处理,于是想着自定义拦截器处理一下未拦截的异常. 代码: package cn.xm.exam.action.safeHat; import ...

  9. Struts2自定义拦截器——完整实例代码

    比如一个网上论坛过滤系统,将网友发表的不文明.不和谐的语言,通过拦截器对这些文字进行自动替代. 该项目包含: 1.自定义拦截器(MyInterceptor.java) 2.发表评论的页面(news.j ...

随机推荐

  1. js验证姓名和身份证号

    js验证真实姓名,是用的unicode字符的来进行匹配,而中国人的姓名长度一般都是2-4,所以重复匹配{2,4}次 1.js验证真实姓名 1 var regName =/^[\u4e00-\u9fa5 ...

  2. centos bad ELF interpreter: No such file or directory

    sudo yum install glibc.i686

  3. Object.prototype.toString.call()进行类型判断

    为什么类型判断用到Object.prototype.toString.call()进行类型判断,而不用typeof()呢? 然后翻了一下资料: Typeof 在使用 ]));/));));//[obj ...

  4. nodejs,node原生服务器搭建实例

    nodejs,node原生服务器搭建实例

  5. 用phpcms开发模块时中文乱码问题

    学着用phpcms开发一个文件管理模块,出现中文乱码,折腾了半天,总结如下 1.自己在mysql客户端建表,默认表格的编码为latin1_swedish_ci,虽然可以建好后用alter命令修改编码, ...

  6. MongoDB的安全(五)

    MongoDB用户管理操作: MongoDB开启权限认证的方式有两种一种是auth形式,一种是keyfile形式 MongoDB创建用户: 1. 创建用户语法:在MongoDB2.6版本之后使用cre ...

  7. Codeforces 259 B - Little Pony and Sort by Shift

    题目链接:http://codeforces.com/contest/454/problem/B 解题报告:太渣了,这个模拟题最后跑大数据的时候挂了,最后还花了很久才过,用的最笨的方法,直接模拟,代码 ...

  8. JS判断设备的类型

    利用JS判断浏览器的用户代理,从而获得设备类型.利用这个方法可以获得用户的设备是移动设备还是PC设备.     JS代码如下:       function browerType() {       ...

  9. ACCESS延时注入

    这也算是个新知识吧.今天遇到个站,实实在在存在注入,但是弄不出字段.本应该可以用便宜注入.但是不知道为什么就是就是弄不出来. 大家如果有兴许可以加学习交流群:281245781 交流一下吧. Payl ...

  10. WebStorm设置手机测试服务器-局域网内其他设备访问

    前端开发中,经常需要将做好的页面给其他同事预览或手机测试,之前一直用的第三方本地服务器usbwebserver,偶然了解到WebStorm内置服务器也可以满足此需求,来看看如何设置吧~~ 1.端口更改 ...