- 浏览: 1499535 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
版本:struts2.1.6
实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆。
为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟
修改web.xml
- <session-config>
- <session-timeout>1</session-timeout>
- </session-config>
此实例用到的jsp页面及登陆所涉及到的相关代码请参考:
实现自定义拦截器类
- package com.ywjava.interceptor;
- import java.util.Map;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionInvocation;
- import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
- import com.ywjava.action.LoginAction;
- import com.ywjava.utils.Constants;
- public class SessionIterceptor extends AbstractInterceptor {
- @Override
- public String intercept(ActionInvocation actionInvocation) throws Exception {
- ActionContext ctx = ActionContext.getContext();
- Map session = ctx.getSession();
- Action action = (Action) actionInvocation.getAction();
- if (action instanceof LoginAction) {
- return actionInvocation.invoke();
- }
- String userName = (String) session.get(Constants.USER_SESSION);
- if (userName == null) {
- return Action.LOGIN;
- } else {
- return actionInvocation.invoke();
- }
- }
- }
struts.xml中定义并使用此拦截器
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
- "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <package name="authority" extends="struts-default">
- <!-- 定义一个拦截器 -->
- <interceptors>
- <interceptor name="authority"
- class="com.ywjava.interceptor.LoginInterceptor">
- </interceptor>
- <interceptor name="sessionout"
- class="com.ywjava.interceptor.SessionIterceptor"></interceptor>
- <!-- 拦截器栈 -->
- <interceptor-stack name="mydefault">
- <interceptor-ref name="defaultStack" />
- <interceptor-ref name="authority" />
- <interceptor-ref name="sessionout"/>
- </interceptor-stack>
- </interceptors>
- <!-- 定义全局Result -->
- <global-results>
- <!-- 当返回login视图名时,转入/login.jsp页面 -->
- <result name="login">/login.jsp</result>
- </global-results>
- <action name="loginform"
- class="com.ywjava.action.LoginFormAction">
- <result name="success">/login.jsp</result>
- </action>
- <action name="login" class="com.ywjava.action.LoginAction">
- <result name="success">/welcome.jsp</result>
- <result name="error">/login.jsp</result>
- <result name="input">/login.jsp</result>
- </action>
- <action name="show" class="com.ywjava.action.ShowAction">
- <result name="success">/show.jsp</result>
- <!-- 使用此拦截器 -->
- <interceptor-ref name="mydefault" />
- </action>
- </package>
- </struts>
当我们登陆后一分钟不做任何操作刷新后则会跳转到登陆页面
发表评论
-
Struts2对Action名称的搜索顺序
2011-08-03 22:47 1382新建一个struts2项目,命名为struts2。按照如下XM ... -
探究Struts2运行机制:StrutsPrepareAndExecuteFilter 源码剖析
2011-08-03 19:09 1770一、概述 Struts2的核心是一个Filter ... -
struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别
2011-08-03 18:02 1344FilterDispatcher是struts2.0.x到2. ... -
框架学习之Struts2 第二节 Action的详解
2011-08-03 17:50 1371http://www.cnblogs.com/ying ... -
Struts2的模板和主题theme及自定义theme
2011-08-03 16:59 8265Struts2提供了三种主题,ajax, simple, cs ... -
struts2 action基类 ActionSupport
2011-08-03 16:14 2637Struts 2的Action无须实现 ... -
Struts2访问Web元素(RequestAware,SessionAware,ApplicationAware)
2011-08-03 14:50 9701在Struts2中,动作类虽然继承ActionSupport类 ... -
Struts2数据传输的背后机制:ValueStack(值栈)
2011-07-11 15:34 1342今天看到一篇讲struts2的valuestack的很好文章, ... -
struts2文件上传的采用的三种方式解析
2011-07-06 18:29 1371文件上传几乎是每个项目实现的一个必须的模块。 上传就是将 ... -
Struts2 <s:token/>标签
2011-03-01 09:24 16081、使用Struts2的表单标签,其中需要增加token标签。 ... -
struts2的Action配置通配符
2011-02-28 17:05 22191.注意,书写代码的时候一定要注意命名的规则,不要胡乱的命名, ... -
struts2中form的theme属性
2011-02-28 16:00 2380struts2中theme属性包括xhtml,html,sim ... -
Struts2的类型转换器
2011-02-24 17:27 1391一、概述 在B/S应用中,将字符串请求参数转换为相应的 ... -
Struts2标签--s:url
2011-02-23 17:09 1881<!--action就是struts2 acti ... -
hgdfghgdfh
2011-01-06 17:57 0datealocaltonight.com -
Struts2 默认的模板配置 theme
2010-10-29 10:26 1472在使用struts2标签时,默认情况下生成的html代码会添加 ... -
Struts2自定义Theme
2010-10-29 10:21 15931. Struts2 Theme与WebWork Theme ... -
Struts2 的四种theme类型
2010-10-29 10:13 1675struts2 中有四种 theme 类型: simple ... -
struts2数据校验流程图
2010-10-29 09:40 2151通过我在blog中写到关于利用Struts 2完成手动校验这篇 ... -
详解struts2中struts.properties
2010-10-18 11:28 1219Struts 2框架有两个核心配置文件: strut ...
相关推荐
在这个实例中,我们将探讨如何创建一个自定义拦截器来处理未登录用户的非法请求。 首先,我们需要理解Struts2拦截器的工作原理。拦截器是基于Java的动态AOP(面向切面编程)实现的,它们按照配置的顺序组成一个链,...
Struts2采用了拦截器(Interceptor)机制,开发者可以通过自定义拦截器实现诸如日志记录、权限检查等预处理或后处理操作。此外,Struts2支持多种结果类型,如JSP、FreeMarker、Velocity等,方便视图的展示。 接下来...
### Java Struts2 拦截器知识点解析 #### 一、Struts2拦截器概述 **知识点1:拦截器的概念** - **定义**: 拦截器(Interceptor)是Struts2框架的一个核心特性。它负责在Action执行前后进行一系列操作。 - **功能*...
可以自定义拦截器来处理会话更新,例如在用户登录成功后,更新会话ID,并设置相关的用户信息。 2. **ActionContext**:ActionContext是Struts2中用于获取和设置请求、响应、session等上下文信息的对象。在Action的...
- 强大的拦截器机制:可以自定义拦截器来处理请求前后的逻辑。 - 内置表单标签库:提供了丰富的HTML表单标签,方便快速构建表单。 - 支持多种视图技术:除了传统的JSP,还支持Freemarker、Velocity等多种视图技术...
5. **Interceptor拦截器**: Struts2引入了Interceptor,可以扩展框架的功能,如权限检查、日志记录等。在登录系统中,可以自定义拦截器,如LoginInterceptor,用于检查用户是否已登录,未登录则跳转到登录页面。 6....
- **Interceptor**: 拦截器是Struts2的核心特性之一,允许在Action执行前后插入自定义逻辑,如登录验证、日志记录、权限检查等。在这个登录系统中,可能包含了验证用户身份的拦截器。 - **Result**: 结果是Action...
Struts2的配置文件通常为`struts.xml`,其中定义了Action(控制器)和结果页面的映射,以及拦截器等配置。在SSH框架中,Struts2会根据`struts.xml`来决定如何转发请求到对应的业务处理方法。 2. **Spring**:Spring...
2. AOP(面向切面编程)集成:可以使用Struts的拦截器或者Spring AOP来注入数据源,使得每次数据库操作都能获取到连接池中的连接。 3. 数据访问对象(DAO)层:在DAO层的接口和实现类中,使用`BasicDataSource`获取...
Ajax请求Session超时问题:Ajax请求可能会遇到Session超时的问题,需要特别处理。 Java线程池概述:Java线程池可以重用一组线程来执行多个任务,提高程序性能。 OSCache概述:OSCache用于将频繁访问的数据缓存在...
4. **拦截器和过滤器**:在Spring MVC或Struts2等框架中,Shiro可以集成到拦截器或过滤器链中,以控制对URL或方法的访问。例如,我们可以配置一个`shiroFilter`,设定不同的URL路径需要的权限级别。 5. **会话管理*...
【知识点详解】 1. Hibernate的状态管理...Session一般有超时设置,超时后Session将被服务器销毁。开发者可以通过HttpSession接口在Java Web应用中操作Session,如设置、获取、移除属性,以及设置Session的有效时间。
过滤器用于拦截请求与响应,用于执行如日志记录、加密、数据压缩等预处理和后处理操作。它们可以串联执行,形成过滤器链。 10. 会话管理(Session) Servlet通过会话跟踪机制(Session Tracking)来管理用户会话。...
2. 监听器(Listener):监听web应用中的特定事件,如session创建、销毁、请求到达等,进行相应处理。 七、MVC模式与Servlet 1. Model-View-Controller:一种软件设计模式,Servlet常作为Controller处理请求,与...
- **Struts2**:基于拦截器的设计模式。 ##### Struts2中result中的type类型 - **dispatcher**:转发到一个JSP页面。 - **redirect**:重定向到一个URL。 - **chain**:调用另一个Action。 ##### Struts2标签 - ...
- **基于拦截器**:使用 Struts2 的拦截器进行数据验证。 #### 30. JavaScript起到什么样的作用,在项目中如何使用? JavaScript 用于实现网页的交互功能,如动态效果、表单验证等。在项目中通常与 HTML、CSS 结合...
### Java面试知识详解 #### 基础篇 ##### JDK常用的包 - **java.lang**:包含所有编程必需的基础类,如String、Math等。 - **java.util**:提供了大量...##### Ajax请求Session超时问题 - **解决方法**: - 设置...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
Struts2是Struts1的后继者,引入了拦截器、值栈和OGNL(对象图导航语言)等概念,提供了更加灵活的控制器层。JSF(JavaServer Faces)是一个基于组件的用于构建Web用户界面的Java标准,它将页面标记与后端代码分离。...