- 浏览: 635123 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
用户登录之后session我们设置一定的时间失效,失效后页面的转向问题一般都是跳回主页或者是我们自定义的页面 action: 如果注册页面的请求也包含在拦截器的拦截中加以判断: 这里用户的拦截器定义在user包下 全局拦截器的定义: Struts2分别对Request、Session和Application三个对象封装成了三个Map对象,直接使用封装好的Map对象来读取和保存数据。可以通过com.opensymphony.xwork2.ActionContext类来得到这三个对象。ActionContext是Action执行的上下文,保存了很多对象如parameters、request、session、application和locale等。通过ActionContext类获取Map对象的方法为: web.xml配置package com.tkbs.web.interceptors;
import java.util.Date;
import java.util.Map;
import javax.annotation.Resource;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
import com.tkbs.domain.user.UserAccounts;
import com.tkbs.service.user.UserService;
/**
* 用户拦截器
* author zxg
* version 1.0
*/
public class UserInterceptor implements Interceptor {
private static final long serialVersionUID = 5582842221490358379L;
public void destroy() {
}
/**
* 在服务启动的时候执行
*/
public void init() {
}
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("<<<教师拦截器初始化...");
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
// sessionUser 如果session中不存在用户在返回index视图
if (session.get("sessionUser")== null) {
return "index";
}
String result = actionInvocation.invoke();
return result;
}
}
package com.tkbs.web.interceptors;
import java.util.Date;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
import com.tkbs.domain.user.UserAccounts;
import com.tkbs.service.user.UserService;
/**
* 用户拦截器
* author zxg
* version 1.0
*/
public class UserInterceptor implements Interceptor {
private static final long serialVersionUID = 5582842221490358379L;
public void destroy() {
}
/**
* 在服务启动的时候执行
*/
public void init() {
}
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("<<<教师拦截器初始化...");
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
// sessionStudent
if (session.get("sessionUser")== null) {
//判断是不是注册用户,如果是注册用户(包含userRegisterPage)则继续执行,否则跳转到index视图
HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
String uri = request.getRequestURI();
if(uri.indexOf("userRegistPage") == -1) {
return "index";
}
}
String result = actionInvocation.invoke();
return result;
}
}
User包下拦截器
<!-- user 包配置 -->
<package name="user" extends="myDefault" namespace="/user">
<interceptors>
<interceptor name="userInterceptor"
class="com.tkbs.web.interceptors.UserInterceptor">
</interceptor>
<interceptor-stack name="userStack">
<interceptor-ref name="userInterceptor"></interceptor-ref>
<interceptor-ref name="myDefaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 默认拦截器,此包下所有的ACTION将都被拦截。如果ACTION再定义了拦截器,则失效 -->
<default-interceptor-ref name="userStack"></default-interceptor-ref>
<global-results>
<!-- 首页-->
<result name="index">/index.jsp</result>
</global-results>
<!-- *_*_*
页面转向${ctp}/page/resource_queryResource_resourceList
...actions.page.resource.queryResource[method=resourceList]
...actions.page.resource.queryResourceDetial[method=resourceDetial]
-->
<action name="*_*_*" class="{2}Action" method="{3}">
<result name="update" type="redirectAction">
<param name="actionName">
userDiary_userDiary_diaryShow
</param>
<param name="namespace">/user</param>
<param name="parse">true</param>
<param name="diaryId">${diaryId}</param>
<param name="userId">${userId}</param>
</result>
<!-- page 与包相应 -->
<result name="{3}" type="dispatcher">
/modulePage/{1}/{3}.jsp
</result>
<!-- json -->
<result name="json" type="json" />
<!-- user -->
<result name="pwdUpOff" type="redirectAction">
<param name="namespace">/user</param>
<param name="actionName">
userUser_user_userIndex
</param>
<param name="parse">true</param>
</result>
</action>
</package>
全局拦截器:
<!-- default (全局)包配置 -->
<package name="myDefault" extends="json-default" namespace="/">
<interceptors>
<interceptor name="configInterceptor"
class="com.tkbs.web.interceptors.ConfigInterceptor">
</interceptor>
<!-- 默认的必须放在最下面! -->
<interceptor-stack name="myDefaultStack">
<interceptor-ref name="configInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 默认拦截器,此包下所有的ACTION将都被拦截。如果ACTION再定义了拦截器,则失效 -->
<default-interceptor-ref name="myDefaultStack"></default-interceptor-ref>
<global-results>
<!-- 首页-->
<result name="index">/index.jsp</result>
<result name="adminLoginPage">
/moduleAdmin/index/adminLogin.jsp
</result>
</global-results>
<!-- 用户登录 login_adminLogin/userLogin-->
<action name="login_*" class="loginAction" method="{1}">
<!-- 前台用户登录 userLogin-->
<result name="loginMessage" type="json"></result>
<result name="adminLogSuccess" type="redirectAction">
<param name="actionName">
index_indexManage_adminIndex
</param>
<param name="namespace">/admin</param>
</result>
<result name="adminLoginIn">
/moduleAdmin/index/adminIndex.jsp
</result>
<result name="adminLoginPage">
/moduleAdmin/index/adminLogin.jsp
</result>
</action>
<!-- 用户退出登录-->
<action name="existLogin_*" class="existLoginAction"
method="{1}">
<result name="index">/index.jsp</result>
</action>
</package>
ActionContext context=ActionContext.getContext(); --得到Action执行的上下文
Map request=(Map)context.get("request");--得到HttpServletRequest的Map对象
Map session=context.getSession();--得到HttpSession的Map对象
Map application=context.getApplication();--得到ServletContext的Map对象
HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);
HttpServletRequest request = ctx.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!-- struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
<!--org.apache.struts2.dispatcher.FilterDispatcher-->
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- 配置struts2的CleanUp的Filter -->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
发表评论
-
maven项目第一行报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mave
2020-04-09 01:23 456maven项目第一行报错:org.apache.maven.a ... -
删除项目中的所有.svn文件夹(或CVS文件夹)
2019-06-06 19:19 408当你的项目用SVN管理时,在项目的每个文件夹中会多一个.svn ... -
eclipse下生成Java类图和时序图,生成UML图
2016-12-30 02:28 2009最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理 ... -
eclipse使用ModelGoon插件自动生成java类的UML图
2016-12-30 02:23 11931、ModelGoon介绍 ModelGo ... -
linux下的tomcat jvm内存
2016-11-30 23:19 550常见的内存溢出有以下两种: Java.lang.OutOf ... -
FTP实现客户端与服务器文件传输(二)
2016-08-06 01:22 980/*以sun开头的class不是java里面的标准类,而是 ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2651一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Resource specification not allowed here for source level below 1.7
2016-08-05 11:14 1085现象:tomcat能正常启动,但打开页面时,出现上面的错误 ... -
使用commons.net FTP 和sun.net.ftp.FtpClient 多种方式上传下载(包括批量)删除功能(一)
2016-08-04 10:38 649使用commons.net FTP 上传下载删除功能 ... -
第十一节 CAS服务端RememberMe
2016-06-07 11:03 1131关于启用RememberMe功能所需做的修改描述 ... -
第七节:CAS4.0.0 以上服务端配置多个数据源
2016-06-03 14:50 10591.首先打开deployerConfigContext.x ... -
第六节:CAS服务端自定义数据库认证用户
2016-06-03 11:46 2300/** * @see --------------- ... -
第四节:将CAS https的认证方式改为http
2016-06-01 08:49 1646一、CAS Server端的修改 1、找到cas\W ... -
java 读取html过滤标签
2016-05-27 16:19 947public static void main(Strin ... -
获取cookie
2016-05-26 16:07 779获取cookie -
spring同时集成redis和mongodb时遇到多个资源文件加载的问题
2016-05-14 15:40 734两天平台中集成redis和mongodb遇到一个问题 单独 ... -
Windows上安装OpenSSL和生成证书
2016-05-10 15:52 22871,先下载OpenSSL http://www.slpr ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6251、使用系统自动获取安装。 1)获取更新 s ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 520安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
第二节:cas处理中文乱码
2016-04-07 11:38 1225cas service配置参考第一节。 casServi ...
相关推荐
struts2拦截器使用(用户session失效后的统一页面指向).docx
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
简单的struts2拦截器利用session拦截用户登录.docx
Struts2拦截器.ppt Struts2拦截器.ppt Struts2拦截器.ppt
struts2拦截器的使用说明文档,配置说明文档。可以看一下
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
NULL 博文链接:https://cmexico.iteye.com/blog/621208
Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序
关于struts2 拦截器的详细的解释及其在开发中对struts2的拦截器的应用和拦截器在框架中的作用.
struts1.2拦截器使用插件
运用struts2的拦截器技术实现的页面检测拦截非法用户饿坏指定用户注册。。。
Struts通过拦截器实现登录后跳转到登录前页面
Struts2拦截器实现权限控制demo,我感觉对初学者还是有一定帮助的
基于struts2的拦截器测试,实现了页面的跳转,中间过程的拦截
struts2拦截器应用小例子,与大家共分享
Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
使用struts的拦截器拦截一些敏感性的词或一些非法或不文秘的言论
Struts2拦截器原理分析实例 博文链接:https://zmx.iteye.com/blog/457432
创建自己struts2拦截器,手工创建自己的拦截器实现
struts2 用拦截器 实现用户权限登录 可以直接运行,只单单用到struts的东西。