当前位置:首页 > 开发 > Web前端 > 前端 > 正文

struts2自定义拦截器与cookie整合实现用户免重复登入

发表于: 2013-10-10   作者:ak23173969   来源:转载   浏览次数:
摘要: 目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码   结构(两部份)=struts2.xml+自定义拦截器对象   配置文件 <!-- 自定义拦截栈与拦截器 --> <interceptors> <interceptor n

目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码

 

结构(两部份)=struts2.xml+自定义拦截器对象

 

配置文件

		<!-- 自定义拦截栈与拦截器 -->
		<interceptors>
			<interceptor name="visitInterceptor" class="cn.kjkj.web.ema.view.interceptor.VisitInterceptor" />
			<interceptor name="cookieInterceptor" class="cn.kjkj.web.ema.view.interceptor.CookieInterceptor" />
			<interceptor-stack name="MyStack">
				<interceptor-ref name="cookieInterceptor" />
				<interceptor-ref name="visitInterceptor" />
				<interceptor-ref name="paramsPrepareParamsStack" />
			</interceptor-stack>
		</interceptors>

		<!-- 设置默认拦截栈 -->
		<default-interceptor-ref name="MyStack" />

 

    自定义拦截器具体实现

import java.util.List;
import java.util.Map;

import javax.servlet.http.Cookie;
import org.springframework.beans.factory.annotation.Autowired;

import cn.kjkj.web.ema.domain.User;
import cn.kjkj.web.ema.service.UserService;
import cn.kjkj.web.ema.view.action.BaseAction;
import cn.kjkj.web.ema.view.action.LoginAction;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**登入时间缓存拦截器
 * */
@SuppressWarnings("serial")
public class CookieInterceptor extends AbstractInterceptor  {
	@Autowired
	private UserService userService;
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
	/**登入拦截*/
		Object action=invocation.getAction();  
		Map<String, Object> session=invocation.getInvocationContext().getSession();
		Cookie [] cookies= BaseAction.getRequest().getCookies();
		//System.out.println(cookies!=null);
		String account=null;
		String  password=null;
		if(!(action instanceof LoginAction)){ //判断是否正在登入
			if(session.get("usermessage")!=null){
				return invocation.invoke();
			}else{
				if(cookies!=null){
					
				for(Cookie c:cookies){
					if(c.getName().equalsIgnoreCase("username")){
					if(c!=null){
						account=c.getValue();
					}
					}else if(c.getName().equalsIgnoreCase("password")){
						if(c!=null){
							password=c.getValue();
						}
					}
				}
				if(account!=null&&password!=null){
					User u=new User(account, password);
					List<User> list=userService.checkMessage(u);
					if(list.size()==1){
						session.put("usermessage", list.get(0));
						return BaseAction.MAIN;
					}
					}
				}
			}
		}
		
		return invocation.invoke();
	}

 

 

 

struts2自定义拦截器与cookie整合实现用户免重复登入

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Struts框架汲取了Struts的优点,以WebWork为核心,拦截器,可变和可重用的标签。 第一步:加载Strut
有了前面做够的准备,我们现在可以来做登入了。 首先打开我们的login.js,在登入按钮事件那里写上 f
Struts 2框架整合Spring很简单 1.首先确定所需的包 2.WEB-INF目录下建立web.xml <?xml version="1
要求 必备知识 JAVA/Struts2,JS/JQuery,HTML/CSS基础语法。 开发环境 MyEclipse 10 演示地址 演示地
上一篇博客我们已经把jboss整合进开发工具eclipse里,并建立好了开发项目Person。今天我们就要开始
参考:http://blog.csdn.net/zyujie/article/details/6904025 http://sgq0085.iteye.com/blog/20031
此博主要介绍通过google 账号(gmail)实现登入,授权方式OAuth2.0,下面我们开始介绍。 1.去google官
c#实现Google账号登入授权(OAuth 2.0)并获取个人信息 此博主要介绍通过google 账号(gmail)实现登入
服务器端要做得事很多,虽然逻辑不是很复杂,但是我们必须要分析清楚我们要做哪些事,请看下图: 通
Authenticatingto OAuth2 Services [使用OAuth2来进行鉴定] 为了安全的访问线上服务,用户需要在ser
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号