`
knight_black_bob
  • 浏览: 830748 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cookie java spring

阅读更多

 

 

 

package com.fusionability.web.utils;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieTool {

	
	public static int maxAge = 7* 24 * 60 * 60; //保存7天
	
	public static void addCookie(HttpServletResponse response, String name,
			String value, int maxAge) {
		Cookie cookie = new Cookie(name, value);
		cookie.setPath("/");
		if (maxAge > 0)
			cookie.setMaxAge(maxAge);
		response.addCookie(cookie);
	}

	public static Cookie getCookieByName(HttpServletRequest request, String name) {
		Map<String, Cookie> cookieMap = ReadCookieMap(request);
		if (cookieMap.containsKey(name)) {
			Cookie cookie = (Cookie) cookieMap.get(name);
			return cookie;
		} else {
			return null;
		}
	}

	private static Map<String, Cookie> ReadCookieMap(HttpServletRequest request) {
	    Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
		Cookie[] cookies = request.getCookies();
		if (null != cookies) {
			for (Cookie cookie : cookies) {
				cookieMap.put(cookie.getName(), cookie);
			}
		}
		return cookieMap;
	}
}

 

 

 

isChecked = getRequest().getParameterValues("isChecked");
if (isChecked != null && isChecked.length > 0 ) {
CookieTool.addCookie(getResponse(), "username", user.getUsername(), CookieTool.maxAge);
CookieTool.addCookie(getResponse(), "userpswd", user.getUserpswd(), CookieTool.maxAge);
}

 

public String updateUserInfo(){
		user = userService.updateUser(user);
		if(user != null){
			getSession().setAttribute(Constants.SESSION_USER, user);
			CookieTool.addCookie(ServletActionContext.getResponse(), "username", user.getUsername(),  CookieTool.maxAge); // 清除Cookie
            CookieTool.addCookie(ServletActionContext.getResponse(), "userpswd",  user.getUserpswd(),  CookieTool.maxAge); // 清除Cookie
			return SUCCESS;
		}
		return ERROR;
	}

 

 

 

package com.fusionability.web.interceptor;

import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.Cookie;

import org.apache.struts2.ServletActionContext;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.fusionability.user.service.UserService;
import com.fusionability.web.bean.User;
import com.fusionability.web.utils.Constants;
import com.fusionability.web.utils.CookieTool;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * 认证拦截器(可以拦截URL的跳转)
 * @author liuzhengyi
 */
public class AuthInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = 8514282210475728866L;
	
	 
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		if("/FusionAbility/user/register.action".equals(ServletActionContext.getRequest().getRequestURI())
		    //||"/FusionAbility/user/login.action".equals(ServletActionContext.getRequest().getRequestURI())
		    ||"/FusionAbility/user/doRegister.action".equals(ServletActionContext.getRequest().getRequestURI())
		    ||"/FusionAbility/user/doLogin.action".equals(ServletActionContext.getRequest().getRequestURI())
		    ||"/FusionAbility/user/isExistUser.action".equals(ServletActionContext.getRequest().getRequestURI())
		    ||"/FusionAbility/user/otherUserAction.action".equals(ServletActionContext.getRequest().getRequestURI()) 
		    ||"/FusionAbility/user/goUpdateRetrievepassword.action".equals(ServletActionContext.getRequest().getRequestURI())){
			return invocation.invoke();
		}
		User user = (User)ServletActionContext.getRequest().getSession().getAttribute(Constants.SESSION_USER);
		
		 
		
		if (user == null) {
			//重定向到登录页面
			
			Cookie cokLoginName = CookieTool.getCookieByName(ServletActionContext.getRequest(), "username");
		    Cookie cokLoginPwd = CookieTool.getCookieByName(ServletActionContext.getRequest(), "userpswd");
		    if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue() != null && cokLoginPwd.getValue() != null) {
		        String loginName = cokLoginName.getValue();
		        String loginPwd = cokLoginPwd.getValue();
		        
		        User user2 = new User();
		        user2.setUsername(loginName);
		        user2.setUserpswd(loginPwd);
		        
		        ServletContext sc =  ServletActionContext.getServletContext();
		        ApplicationContext ac=  WebApplicationContextUtils.getWebApplicationContext(sc);
		        UserService userService = (UserService) ac.getBean("userService");
		        User user3 = userService.getUser(user2);
		        if (user3 == null) {
		        	 CookieTool.addCookie(ServletActionContext.getResponse(), "username", null, 0); // 清除Cookie
		             CookieTool.addCookie(ServletActionContext.getResponse(), "userpswd", null, 0); // 清除Cookie
		            
		             return Action.LOGIN;
				}else{
					
					ServletActionContext.getRequest().getSession().setAttribute(Constants.SESSION_USER,user3);
					
					return invocation.invoke();
				}
		    }else{
		    	return Action.LOGIN;
		    }
			
		}
		return invocation.invoke();
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

分享到:
评论

相关推荐

    springboot cookie 开发案例

    登入访问页面 http://localhost:8080/login 实现cookie初始化 设置超时时间为 60 秒 2. 初始化cookie之后,可以访问http://localhost:8080/index 3. http://localhost:8080/logout 注销cookie信息 /QS_001/src/...

    spring mvc项目

    可用于分析spring mvc源码、spring mvc父子容器初始化流程、session和cookie机制、spring session等,也可以用于学习Java Web(servlet、filter、listener等)、spring源码等。 该项目使用servlet3.0规范,无web.xml...

    cookie设置httpOnly和secure属性实现及问题

    该文档整合了cookie的httponly和secure的简介,已经设置该属性时会遇到的问题,以及设置属性的方式

    jwt学习Spring-security

    Spring Security 是一个广泛使用的 Java 认证和授权框架,用于保护基于 Java 的 web 应用程序。它提供了一个灵活的安全机制来保护 web 应用程序免受未经授权的访问。Spring Security 提供了许多功能,如身份验证、...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题22.Session和Cookie的区别.mp4 │ Java面试题23.mvc模式和mvc各部分的实现.mp4 │ Java面试题24.数据库分类和常用数据库.mp4 │ Java面试题25.关系型数据库的三范式.mp4 │ Java面试题26.事务的四大...

    Java Spring项目国际化(i18n)详细方法与实例

    主要介绍了Java Spring项目国际化详细方法与实例,需要的朋友可以参考下

    JAVA毕业设计论文题目大全.doc

    * Java 框架和库的应用:Spring、Hibernate、MyBatis 等 JSP 类论文题目 JSP(Java Server Pages)是一种基于 Java 的服务器端脚本语言,主要用于 Web 开发。JSP 类论文题目涵盖了 JSP 的基础知识、JSP 的高级应用...

    学习Java框架的正确顺序

    Spring 是目前最流行的 Java 框架之一,它提供了广泛的功能,如依赖注入、AOP、事务管理等。学习 Spring 需要先了解 Bean 的概念、XML 配置文件和注解等相关知识。同时还需要了解 Spring 中常用的模块,例如 Spring ...

    DailyFresh:DailyFresh (天天生鲜) - Java SSM 框架实现

    天天生鲜是Python中Django框架的一个经典案例,现将其用java的SSM框架实现 版本信息 v1.1 完成注册功能 实现功能: 用户注册:前台校验,成功后发送ajax请求,控制器响应并向数据库表中添加数据 用户激活:通过产生...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    java面试题大全--java基础,struts,spring,ejb等

    4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP...

    Java语言基础下载

    获取Cookie 565 HTTP响应报头--Response 566 会话管理 566 Servlet过滤器 569 Servlet监听器 576 内容总结 579 独立实践 580 第二十九章: Jsp 技术 583 学习目标 583 JSP介绍 584 JSP语法 584 模板元素 588 指令...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题22.Session和Cookie的区别和使用场景 Java面试题23.mvc模式和mvc各部分的实现 Java面试题24.数据库分类和常用数据库 Java面试题25.关系型数据库的三范式 Java面试题26.事务的四大特征 Java面试题27.mysql...

    深入分析Java Web技术内幕高清PDF版.zip

    《深入分析Java Web技术内幕》围绕JavaWeb相关技术从三方面全面深入地进行阐述...最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍。

    深入分析Java Web技术内幕 修订版.pdf

    主要围绕Java Web 相关技术从三方面...最后介绍了Java 服务端技术,主要包括Servlet、Session 与Cookie、Tomcat 与Jetty服务器、Spring 容器、iBatis 框架和Velocity 框架等原理介绍,并介绍了服务端的一些优化技术。

    spring-framework.rar

    spring,spring mvc所需的完整jar包,实现web项目的开发

    java技术栈.zip

    java开发常用的技术,本人多年总结了30多种JAVA开发相关技术,比如但不限于:MQ,爬虫,thymeleaf,spring,shiro,cookie,session,swagger等

    Java EE wed 简单的购物车应用开发

    Java EE wed 简单的购物车应用开发案例,使用了Cookie,数据库连接等技术

    史上最全java面试,103项重点知识,带目录

    一、Java 基础 1 1. JDK 和 JRE 有什么区别? 1 2. == 和 equals 的区别是什么? 1 3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 3 4. final 在 java 中有什么作用? 4 5. java 中的 Math.round...

Global site tag (gtag.js) - Google Analytics