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

  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中自己放入的提醒信息。

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

  1. struts2拦截器interceptor的配置方法及使用

    转: struts2拦截器interceptor的配置方法及使用 (2015-11-09 10:22:28) 转载▼ 标签: it 365 分类: Struts2  NormalText Code  ...

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

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回 ...

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

    原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...

  4. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

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

    SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342 ...

  6. 安卓自定义View进阶-Canvas之画布操作 转载

    安卓自定义View进阶-Canvas之画布操作 转载 https://www.gcssloop.com/customview/Canvas_Convert 本来想把画布操作放到后面部分的,但是发现很多 ...

  7. dedecms为后台自定义菜单的完整方法

    dedecms为后台自定义菜单的完整方法 品味人生 dedeCMS 围观7330次 18 条评论 编辑日期:2014-06-14 字体:大 中 小   最近在给客户定制一个企业网站,客户要求使用ded ...

  8. 自定义HttpMessageHandler实现HTTP方法的重写

    自定义HttpMessageHandler实现HTTP方法的重写

  9. Collections.sort自定义排序的使用方法

    Collections.sort自定义排序的使用方法 总结:Collections可以对List进行排序:如果想对Map进行排序,可以将Map转化成List,进行排序: public static v ...

随机推荐

  1. LoadRunner中运行场景时提示"You do not have a license for this Vuser type."

    LoadRunner中运行场景时提示"You do not have a license for this Vuser type." 2012-06-15 17:09:07|  分 ...

  2. 如何配置 Oracle VirtualBox 中的客户机与物理机网络

    当你在 Oracle VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现物理机与虚拟机之间的相互访问. 在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux ...

  3. 微信小程序列表加载更多

    概述 基于小程序开发的列表加载更多例子. 详细 代码下载:http://www.demodashi.com/demo/13632.html 一.前言 基于小程序开发的列表加载更多例子. 二.运行效果 ...

  4. juqery和dom对象互换

    一.jQuery对象与DOM对象相互转换 1.jQuery对象转DOM对象 var $cr  = $("#cr");    //jQuery对象 //转换成DOM对象,索引号从0开 ...

  5. 用户 'NT AUTHORITY\IUSR' 登录失败

    今天在用VS20012发布XAF ASP.NET的程序时,在iis 调用SQLSERVER Express2008数据库时,总是出现错误“用户 'NT AUTHORITY\IUSR' 登录失败”,后来 ...

  6. C++:CursorType光标类型 和 LockType锁定类型

    简要: CursorType光标类型: 1.   AdOpenForwardOnly   (默认值)一次只能向前移动一行. 2.   AdOpenKeyset   打开键集类型游标. 3.   AdO ...

  7. Android+手势识别详解

      今天就来把以前的学习文章与经验简单总结中出来吧,在这里我就直接把代码贴下来了,希望能给初学者做最佳的学习参考,也希望有更多的开发人员来加入 ANDROID开发团队,参与更多的创新方式的开发,好了, ...

  8. EM 算法 实例

    #coding:utf-8 import math import copy import numpy as np import matplotlib.pyplot as plt isdebug = T ...

  9. 文本检测: CTPN

    参考: https://zhuanlan.zhihu.com/p/37363942 https://zhuanlan.zhihu.com/p/34757009 https://zhuanlan.zhi ...

  10. 禁止用户登陆的 /bin/false和/sbin/nologin的区别

    1 区别 /bin/false是最严格的禁止login选项,一切服务都不能用. /sbin/nologin只是不允许login系统  小技巧: 查看 /etc/passwd文件,能看到各用户使用的sh ...