- 浏览: 1504691 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
1、使用cookie自动登陆的拦截器(IMemberAware.java):
/** * */ package com.web.struts.inteceptor; import com.model.Member; /** * @author Administrator * */ public interface IMemberAware { public Member getMember(); public void setMember(Member member); }
/** * */ package com.web.struts.inteceptor; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.model.Member; import com.service.IMemberService; import com.tools.Constant; /** * title:会员cookie自动登陆 * * @author Administrator * @时间 2009-4-24:下午03:42:25 */ public class MemberCookieLoginInterceptor extends AbstractInterceptor { private Member member; private IMemberService memberService; /** */ private static final long serialVersionUID = 6998551363568297012L; @SuppressWarnings("null") @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); if (StringUtils.isBlank(username)) { Cookie[] cookies = request.getCookies(); Cookie member_cookie = null; if (cookies != null || cookies.length >= 0) { for (int i = 0; i < cookies.length; i++) { member_cookie = cookies[i]; if (member_cookie != null && StringUtils.isNotBlank(member_cookie.getName()) && StringUtils.isNotBlank(member_cookie.getValue()) && member_cookie.getName().equals( Constant.MEMBER_SESSION_ID)) { member = memberService.getMember(member_cookie .getValue()); if (member != null) { session.setAttribute(Constant.MEMBER_SESSION_ID, member_cookie.getValue()); } break; } else { member_cookie = null; } } } } return invocation.invoke(); } public Member getMember() { return member; } public void setMember(Member member) { this.member = member; } public void setMemberService(IMemberService memberService) { this.memberService = memberService; } }
3、会员管理面板的拦截器:
/** * */ package com.web.struts.inteceptor; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.model.Member; import com.service.IMemberService; import com.tools.Constant; /** * title: 用户在线 * * @author conkeyn * @时间 2009-3-30:下午01:48:10 */ public class MemberOnlineInterceptor extends AbstractInterceptor { /** */ private static final long serialVersionUID = 2470845588966783260L; private Member member; private IMemberService memberService; @SuppressWarnings("null") @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); String username = (String) session .getAttribute(Constant.MEMBER_SESSION_ID); if (StringUtils.isBlank(username)) { Cookie[] cookies = request.getCookies(); Cookie member_cookie = null; if (cookies != null || cookies.length >= 0) { for (int i = 0; i < cookies.length; i++) { member_cookie = cookies[i]; if (member_cookie != null && StringUtils.isNotBlank(member_cookie.getName()) && StringUtils.isNotBlank(member_cookie.getValue()) && member_cookie.getName().equals( Constant.MEMBER_SESSION_ID)) { member = memberService.getMember(member_cookie .getValue()); if (member != null) { session.setAttribute(Constant.MEMBER_SESSION_ID, member_cookie.getValue()); } break; } else { member_cookie = null; } } } } if (StringUtils.isBlank(username)) { return "global_login"; } else { System.out.println(invocation.getClass().getName()); if (invocation instanceof IMemberAware) { member = memberService.getMember(username); if (member != null) { ((IMemberAware) invocation).setMember(member); } } return invocation.invoke(); } } public Member getMember() { return member; } public void setMember(Member member) { this.member = member; } public void setMemberService(IMemberService memberService) { this.memberService = memberService; } }
4、相关配置文件:
1)spring配置方式:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="memberOnlineInterceptor" class="com.web.struts.inteceptor.MemberOnlineInterceptor" scope="prototype"> <property name="memberService" ref="memberService" /> </bean> <bean id="memberCookieLoginInterceptor" class="com.web.struts.inteceptor.MemberCookieLoginInterceptor" scope="prototype"> <property name="memberService" ref="memberService" /> </bean> </beans>
2)struts配置方式:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" > <struts> <include file="struts-manager.xml"></include> <include file="struts-manager-templ.xml"></include> <include file="struts-member.xml"></include> <include file="struts-client.xml"></include> <include file="struts-account.xml"></include> <package name="map_main" extends="struts-default"> <!-- 会员Cookie自动登陆 --> <interceptors> <!-- 权限拦截器 --> <interceptor name="MemberCookieLoginInterceptor" class="memberCookieLoginInterceptor" /> <interceptor-stack name="MemberCookieLogin"> <interceptor-ref name="MemberCookieLoginInterceptor" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="MemberCookieLogin" /> </package> <package name="map_member" extends="map_main" namespace="/member"> <!-- 会员拦截器 --> <interceptors> <!-- 权限拦截器 --> <interceptor name="memberOn" class="memberOnlineInterceptor" /> <interceptor-stack name="memberOnline"> <interceptor-ref name="memberOn" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> <interceptor-stack name="noneStack"></interceptor-stack> </interceptors> <default-interceptor-ref name="memberOnline" /> <global-results> <result name="global_login" type="redirectAction"> <param name="namespace">/</param> <param name="actionName">login</param> </result> </global-results> </package> </struts>
发表评论
-
Struts2 (Json) + jQuery 组合的简单用法
2011-03-01 23:02 9961、将struts2的json插件加入web工程的lib,js ... -
Struts2中$,#,%的区别
2011-03-01 22:57 1354转自:http://hi.baidu.com/di ... -
<s:generator>
2011-02-27 21:54 1403<s:generator val="%{'aa ... -
<s:merge>
2011-02-27 21:45 866<s:set var="americanCar ... -
<s:append>
2011-02-27 21:44 1213<s:set var="list1" ... -
<s:iterator>
2011-02-27 21:01 1369属性名称 必填项 默认值 ... -
<s:bean>
2011-02-27 18:32 915public class DegreeConverter { ... -
<s:param>
2011-02-27 18:21 3573param标签用来把一个参数传递给包含着它的那个标签。 不管 ... -
updownselect
2011-02-27 16:24 1364<s:updownselect name="c ... -
combobox
2011-02-27 16:08 928<s:combobox name="combo ... -
checkboxlist
2011-02-27 12:15 866ddd public class LoginAction ... -
select optgroup
2011-02-27 11:58 692代码片段: public class LoginAction ... -
select标签
2011-02-23 21:17 987import com.opensymphony.xwork2. ... -
radio标签
2011-02-23 21:13 987import java.util.SortedMap; ... -
list、listkey、listValue属性
2011-02-22 21:07 7223list、listKey、listValue属性对 ... -
Ongl 与 ValueStack ActionContext
2011-01-09 21:03 1450转自:http://blog.sina.com.c ... -
struts2.0的ognl表达式研究
2011-01-09 21:02 1008OGNL —— 完美的催化剂 为了解决数据从V ... -
关于Struts2.0 标签中采用%{} 的处理原理
2011-01-09 20:57 1570项目中采用struts2.0时,常常使用计算表单式的处理源码 ... -
struts2 tags
2010-01-08 13:22 11981.<s:property> propert ... -
Struts2和Freemarker整合应用批量静态页面的生成
2009-11-07 23:19 3819利用Struts2生成静态页面其实很灵活,很强大,尤其是利用S ...
相关推荐
在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取...
Springmvc框架进行登录验证,除了某些特定的action请求不需要登录验证,例如登录,注册等。其他的action请求均需要登录验证,若没有登录则直接调到登录界面。若登录成功,则通过拦截
3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调一次。 4、拦截器可以利用依赖注入,因此在spring框架程序中,优先拦截器 5、拦截器是包裹在过滤器中使用的。 复习 converter 转换器 ...
1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按...
struts2注解配置Action及拦截器几种不同方式写法对应的路径指向.docx
关于对用户的拦截验证。 <!-- 部署自定义拦截器!! --> <action name="test" class="com.cvit.avtion.TestAction"> <result>/MyJsp.jsp <!-- 应用自定义拦截器栈 --> ...
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
在action执行之前先进行拦截器的拦截处理,然后再执行action的execute方法,返回给拦截器,再对应相应result
在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取...
struts2的一个简单的拦截器例子
拦截器可以抽象出一部分代码可以用来完善原来的Action。同时可以减轻代码冗余,提高重用率。比如在登入一个页面时,如果要求用户密码、权限...更多>> 拦截器可以说相当于是个过滤器:就是把你不想要的或不想显示的内容...
当前应用的默认拦截器栈,对用户的每次请求都需要调用拦截器栈中的每个拦截器来拦截请求,最后一个拦截器处理完后将请求传递到 具体控制器中。拦截器栈是对拦截器的应用,相当于拦截器的集合。通过拦截器栈可以将一...
strut2 配置自定义拦截器 包括struts2.xml 和 action对应的xml 以及拦截器 可能有点简单 但是基本配置都有
自己写的struts2小案例,DAO是用JPA开发,包含Action,mysq等,mvc模式
struts2.0描述了拦截器并有对应的例子,用struts实现crud 用法及例子,并介绍了struts2的action的流程 及请求过程
structs2拦截器实例计算action执行的时间,涉及拦截器,structs.xml的配置等等。。
看到strut2的Interceptor(拦截器), tomcat源码的Valve(tomcat中各种各样容器如Wrapper,Context都是靠Valve实现各种功能), 以及最早学习到的java web中的javax.servlet.Filter的概念, 都是一种链式的处理流程...
主要介绍了SpringMVC配置拦截器实现登录控制的方法,SpringMVC读取Cookie判断用户是否登录,对每一个action都要进行判断,有兴趣的可以了解一下。
该请求被提交到一系列的标准过滤器(Filter)组建链中(如ActionContextCleanUp:它主要是清理当前线程的ActionContext、Dispatcher,FilterDispatcher主要是通过ActionMapper来决定需要调用那个Action,...
自定义的简单的struts,自己写一个和struts一样的xml文件,利用反射进行生成实例和注入参数,自定义拦截器和action