strust2自定义interceptor的基本方法及操作

需求:制作一个网站需要用户登陆后才能查看,即一个权限的问题

  1.首先明确在用户没登陆前有两个Action请求是可以通过的,即注册和登陆。

  2.创建拦截器,如UserLoginInterceptor.java,如下

public class UserLoginInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        Action action = (Action) arg0.getAction() ;
        //放行这两种Action请求
        if(action instanceof RegisterAction||action instanceof LoginAction){
            return arg0.invoke() ;
        }else{
            //获取session有没有用户?
            User user = (User) arg0.getInvocationContext().getSession().get("user") ;
            if(user==null){
                //若没有,则想页面传达错误的消息
                arg0.getInvocationContext().getSession().put("noLand", "您没有权限,请先注册或登录!");
                return "input" ;
            }else{
                //若有则放行
                return arg0.invoke() ;
            }
        }
    }

}

  3.拦截器写好后要在struts.xml中配置

     <interceptors>
       <!-- 配置已写好的拦截器 -->
            <interceptor name="userLogin" class="com.blog.interceptor.UserLoginInterceptor"/>
       <!-- 定义自己的拦截器栈,由struts2自己的拦截器栈和前面的拦截器组成 -->
            <interceptor-stack name="blogStack">
                <interceptor-ref name="userLogin"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>
     <!-- 将自定义的拦截器栈设为默认栈 -->
        <default-interceptor-ref name="blogStack"/>

  4.在无权限跳转页面上显示session中自己放入的提醒信息。

时间: 2024-10-27 16:42:29

strust2自定义interceptor的基本方法及操作的相关文章

Android自定义View的实现方法,带你一步步深入了解View(四)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不 知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程. 视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了.如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东 西. 之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲View的

详述 Spring MVC 框架中拦截器 Interceptor 的使用方法

1 前言 昨天新接了一个需要,"拦截 XXX,然后 OOO",好吧,说白了就是要用拦截器干点事(实现一个具体的功能).之前,也在网络上搜了很多关于Interceptor的文章,但感觉内容都大同小异,而且知识点零零散散,不太方便阅读.因此,正好借此机会,整理一篇关于拦截器的文章,在此分享给大家,以供大家参考阅读. 2 拦截器 2.1 概念 Java 里的拦截器是动态拦截 action 调用的对象.它提供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个

【转】Android自定义View的实现方法,带你一步步深入了解View(四)

原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了.如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东西. 之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲Vi

黑马程序员——TreeMap方法 演示操作

TreeMap方法  演示操作 import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.TreeMap; public class TreeMapDemos { public static void main(String[] args) { TreeMap<Studenti,String> hm = new TreeMap<Studenti,St

SpringMVC和Freemarker整合,带自定义标签的使用方法

SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342.shtml] SpringMVC现在是比较热门的一种框架了,使用起来感觉还是很不错的,现在我分享一下集体的配置和使用,希望对学习SpringMVC的朋友有用.一.首先我们做准备工作,下载Spring包,下载Freemarker包.二.配置web.xml. 1 2 3 4 5 6 7 8 9 10

自定义view的自定义属性方法

一般自定义view以达到某些效果,复写onDraw()方法就行了.当我们需要动态地响应用户的操作且能像Android自带View那样直接操作属性就很方便了,为了达到这个目的,我们就可以使用自定义view属性的方法来对我们的自定义view进行动态响应了. 为了实现自定义的view的自定义属性,应该完成这四步: 为你的view在资源标签下定义自设的属性 在你的XML layout中指定属性值 在运行时获取属性值 把获取到的属性值应用在你的view上 step1: 在资源标签下定义自设的属性,放置于r

C#自定义字符串替换Replace方法实例

本文实例讲述了C#自定义字符串替换Replace方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab12345abcdfb12345fg. 二.实现方法: 显然不能用string.Replace方法,需要自定义一个方法 strin

Android之十一Toast 自定义Toast的实现方法,及其说明

Android Toast 自定义Toast的实现方法,及其说明 Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失.信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view).  1.简单用法 Toast.makeText(midlet.getApplicationContext(), "用户名不能为空", Toast.LENGTH_LONG).show(); 2.自定义显示位置效果 代码 toast = Toast.makeText(

AX 在增强入站端口中使用自定义服务 找不到服务操作

写好自定义服务A,添加好服务操作A1,A2,A3..... 在增强的入站端口,选择服务操作时,却找不到这些A1,A2,A3. 查找相关资料后,发现,要在服务A上右键,点"登记服务". 一段等待之后,重新打开入站端口,在选择服务操作时,就能找到A1,A2,A3了. AX 在增强入站端口中使用自定义服务 找不到服务操作,布布扣,bubuko.com