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中自己放入的提醒信息。
strust2自定义interceptor的基本方法及操作的更多相关文章
- struts2拦截器interceptor的配置方法及使用
转: struts2拦截器interceptor的配置方法及使用 (2015-11-09 10:22:28) 转载▼ 标签: it 365 分类: Struts2 NormalText Code ...
- Android自定义View的实现方法,带你一步步深入了解View(四)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回 ...
- 【转】Android自定义View的实现方法,带你一步步深入了解View(四)
原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...
- QVariant类及QVariant与自定义数据类型转换的方法
这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...
- SpringMVC和Freemarker整合,带自定义标签的使用方法
SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342 ...
- 安卓自定义View进阶-Canvas之画布操作 转载
安卓自定义View进阶-Canvas之画布操作 转载 https://www.gcssloop.com/customview/Canvas_Convert 本来想把画布操作放到后面部分的,但是发现很多 ...
- dedecms为后台自定义菜单的完整方法
dedecms为后台自定义菜单的完整方法 品味人生 dedeCMS 围观7330次 18 条评论 编辑日期:2014-06-14 字体:大 中 小 最近在给客户定制一个企业网站,客户要求使用ded ...
- 自定义HttpMessageHandler实现HTTP方法的重写
自定义HttpMessageHandler实现HTTP方法的重写
- Collections.sort自定义排序的使用方法
Collections.sort自定义排序的使用方法 总结:Collections可以对List进行排序:如果想对Map进行排序,可以将Map转化成List,进行排序: public static v ...
随机推荐
- Creating a Fragment: constructor vs newInstance()
from stack overflow and another chapter I recently grew tired of constantly having to know String ke ...
- NSArray利用Cocoa框架进行汉字排序
NSArray利用Cocoa框架进行汉字排序 在NSString有一个函数localizedCompare:,它的功能是通过自身与给定字符串的比較,返回一个本地化的比較结果.也就是说这个函数是支持汉字 ...
- 【jQuery获取下拉框select、单选框radio、input普通框的值和checkbox选中的个数】
radio单选框:name属性相同 <input type="radio" id="sp_type" name="p_type" va ...
- 使用spring AOP获得session的思路
由于Spring 的AOP面向切面编程,与Servlet容器没有任何关联,所以想要获得Session会话比较麻烦. 当然Struts2同样不依赖Servlet容器,可以在Spring AOP中可以使用 ...
- 使用命令行设置树莓派的wifi网络
假设你没有登录到经常使用的图形用户界面.这样的方法就适合用来设置树莓派的wifi.尤其是在你没有屏幕或者有线网络,仅使用串口控制线的时候.另外,这样的方法也不须要额外的软件,全部须要的东西都已经包括进 ...
- map集合的循环示例
/** * 报警状态下拉列表信息 * @return * @throws Exception */ public String alarmStatusList() throws Exception { ...
- mysql_use_result & mysql_store_result & MYSQLI_ASYNC
博文一 : 在使用 mysql_query() 进行一次查询后,一般要用这两个函数之一来把结果存到一个 MYSQL_RES * 变量中. 两者的主要区别是,mysql_use_result() 的结果 ...
- 响应式布局框架 Pure-CSS 5.0 示例中文版-下
10. 表格 Tables 在 table 标签增加 .pure-table 类 <table class="pure-table"> <thead> &l ...
- KVM部署LVS集群故障案例一则
一.故障现象 KVM部署LVS(Linux Virtual Server)集群后,能够单独以HTTP方式访问RS(Real Server)的实际IP,但无法通过VIP(Virtual IP)访问. 二 ...
- 常用Linux shell命令汇总
1.检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台:Ctrl + z 3 ...