Struts2自定义拦截器
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自定义拦截器的更多相关文章
- Struts2自定义拦截器Interceptor以及拦截器登录实例
1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...
- struts2自定义拦截器 设置session并跳转
实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆. 为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟 修改web.xml view plainco ...
- 12.Struts2自定义拦截器
12.自定义拦截器 拦截器是Struts2的一个重要特性.因为Struts2的大多数核心功能都是通过拦截器实现的. 拦截器之所以称之为“拦截器”,是因为它可以拦截Action方法的执行, ...
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...
- Struts2 自定义拦截器
自定义拦截器(权限管理),包含了对ajax和表单请求的拦截 package com.interceptor; import java.io.IOException; import java.io.Pr ...
- struts2自定义拦截器与cookie整合实现用户免重复登入
目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码 结构(两部份)=struts2.xml+自定义拦截器 ...
- 5、Struts2自定义拦截器
一.拦截器相关知识 1.Struts2框架剖析 Holly版本生活案例: 影视公司(拍电影) ActionMapper 传媒公司(包装明星) ActionMapping 明星 ...
- Struts2自定义拦截器处理全局异常
今天在整理之前的项目的时候想着有的action层没有做异常处理,于是想着自定义拦截器处理一下未拦截的异常. 代码: package cn.xm.exam.action.safeHat; import ...
- Struts2自定义拦截器——完整实例代码
比如一个网上论坛过滤系统,将网友发表的不文明.不和谐的语言,通过拦截器对这些文字进行自动替代. 该项目包含: 1.自定义拦截器(MyInterceptor.java) 2.发表评论的页面(news.j ...
随机推荐
- linux下gedit读取txt乱码解决办法
修改一下gedit的设置来让它显示的txt不再是乱码: 你可以通过以下步骤,使 gedit 正确显示中文编码文件. 按下 Alt-F2,打开“运行应用程序”对话框.在文本框中键入“gconf-edit ...
- Yahoo News Digest(雅虎新闻摘要)APP的推出,未来的seo界又要受伤了
雅虎在 CES 上公布了旗下首款基于 Summly (天才青少年尼克·阿洛伊西奥(Nick D'Aloisio)开发,此前将其公司以3300万美元出售给雅虎)的新闻 APP - Yahoo News ...
- 软件测试-----Graph Coverage作业
/******************************************************* * Finds and prints n prime integers * Jeff ...
- JS获取节点的兄弟,父级,子级元素的方法(js获取子级获取到换行与空格元素-FF)
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比. JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 < ...
- Redis学习笔记四:独立功能之发布与订阅
客户端可以通过执行 subscribe 命令订阅一个或多个频道,每当有其他客户端向被订阅的频道发送消息时,频道所有的订阅者都会收到这条消息. 客户端还可以通过执行 psubscribe 命令订阅一个或 ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- linux下好用的软件
搜狗输入法 http://pinyin.sogou.com/linux/ wps http://community.wps.cn/download/ 浏览器 chrome or FireFox or ...
- Android学习笔记(二)——探究一个活动
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一 ...
- html5拖拽实现
1.需求 做一个h5正方形的拖拽框 2.分析 使用touchstart,touchmove,touchend这3个事件实现. 需要记录的数据有三组数据,分别是下图的(x0,y0),(x1,y1),(x ...
- 使用 Intel HAXM 为 Android 模拟器加速,媲美真机
http://www.cnblogs.com/beginor/archive/2013/01/13/2858228.html