⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userlogin.java

📁 野蔷薇论坛源码 java 自己看看吧。 学习用
💻 JAVA
字号:
/* 
 * Created on 2007-2-10
 * Last modified on 2007-6-26
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.service.user;

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


import org.apache.log4j.Logger;

import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.model.UserModel;
import com.yeqiangwei.club.service.model.UserSettingsModel;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.club.util.PostUtils;
import com.yeqiangwei.util.Validator;
import com.yeqiangwei.club.controller.form.UserLoginForm;
import com.yeqiangwei.club.exception.ClubException;
import com.yeqiangwei.club.view.model.UserView;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.TypeChange;

/**
 * 
 * @author yeqiangwei
 */
public class UserLogin {
	
	private static final Logger logger = Logger.getLogger(UserLogin.class);
	
	public static UserSettingsModel getUserSettingsModel(HttpServletRequest request){
		return UserLogin.getUserSettingsService().getUserSettingsModel(UserLogin.getUserId(request));
	}
	
	public static int getUserId(HttpServletRequest request){
		UserModel user = getUserModel(request);
		if(!Validator.isEmpty(user)){
			return user.getUserId();
		}else{
			return 0;
		}
	}
	
	public static String getUserName(HttpServletRequest request) {
		UserModel user = getUserModel(request);
		if(!Validator.isEmpty(user)){
			return user.getUserName();
		}else{
			return null;
		}
	}

	public static UserModel getUserModel(HttpServletRequest request) {
		return ParamUtils.getSessionObject(request,"User", null);
	}
	
	public static void setCookies(HttpServletRequest request
			,HttpServletResponse response, UserModel model, int days)
	{
		logger.debug("set cookie password is "+model.getPassword());
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",String.valueOf(model.getUserId()), days);
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",model.getUserName(), days);
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",model.getPassword(), days);
		ParamUtils.setSession(request,"User",model);
	}
	
	/**
	 * 登录失效后初始化登录
	 * @param service
	 */
	public static UserModel loginInit(HttpServletRequest request, UserService service){
		UserModel model = (UserModel) ParamUtils.getSessionObject(request,"User",null);
		if(model==null){
			int userId = TypeChange.stringToInt(ParamUtils.getCookieValue(request, "YQWuserId",null));
			String userName = ParamUtils.getCookieValue(request, "YQWuserName",null);
			String password = ParamUtils.getCookieValue(request, "YQWpassword",null);
			model = new UserModel();
			model.setUserId(userId);
			model.setUserName(userName);
			model.setPassword(password);
			model.setLastLoginDateTime(FormatDateTime.now());
			model.setLastLoginIp(request.getRemoteAddr());
			try {
				model = service.findByUserNameAndPassword(model,false);
				ParamUtils.setSession(request,"User",model);
			} catch (ClubException e) {
				logger.error(e.toString());
			}
		}
		return model;
	}
	
	/**
	 * 登录成功后数据SET
	 * @param user
	 * @param days
	 */
	public static UserModel login(HttpServletRequest request,HttpServletResponse response
			, UserService service, UserLoginForm f){
		int days = f.getRemember();
		UserModel model = new UserModel();
		BeanUtils.copyProperties(model,f);
		int num = ParamUtils.getSessionInt(request,"loginPosts",0);
		String rand = ParamUtils.getSessionString(request,"rand","");
		if(num>=3){
			if(!f.getRand().equals(rand)){
				request.setAttribute("message",MessageUtils.getMessage("error_post_rand"));
				return null;
			}
		}
		try {
			model = service.findByUserNameAndPassword(model,true);
		} catch (ClubException e) {
			logger.error(e.toString());
		}
		if(!Validator.isEmpty(model)){
			setCookies(request,response,model,days);
			PostUtils.removeNumber(request,"loginPosts");
		}
		return model;
	}

	public static UserModel getInstance(HttpServletRequest request){
		return (UserModel) ParamUtils.getSessionObject(request,"User",null);
	}
	
	public static UserView getInstanceV(HttpServletRequest request){
		UserModel user = (UserModel) ParamUtils.getSessionObject(request,"User",null);
		if(!Validator.isEmpty(user)){
			UserView view = new UserView();
			BeanUtils.copyProperties(view,user);
			return view;
		}else{
			return null;
		}
	}
	
	public static void update(HttpServletRequest request, UserModel user){
		ParamUtils.setSession(request,"User",user);
	}
	
	public static void logout(HttpServletRequest request,HttpServletResponse response){
		update(request, null);
		ParamUtils.setSession(request,"User",null);
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",null, 0);
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",null, 0);
		ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",null, 0);
		logger.info("loginOut");
	}
	
	public static BasicInfoService getBasicInfoService() {
		return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
	}

	public static UserSettingsService getUserSettingsService() {
		return ServiceWrapper.<UserSettingsService>getSingletonInstance(ServiceLocator.USERSETTINGS);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -