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

📄 loginaction.java

📁 这是一个用java三层框架做的ISS学员管理系统
💻 JAVA
字号:
package com.isoftstone.isscrmweb.web.struts.system;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.pontifex.util.StringUtil;
import org.pontifex.util.security.ImgCheckCode;
import org.pontifex.web.mapping.LoginUser;

import com.isoftstone.isscrmweb.web.struts.AbstractDynamicAction;
import com.isoftstone.isscrmweb.web.logic.system.LoginLogic;

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

import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Enumeration;

/**
 * Created by IntelliJ IDEA.
 * User: Songzou
 * Date: 2007-4-8
 * Time: 11:21:36
 *
 * 登陆控制器
 */
public class LoginAction extends AbstractDynamicAction {

    public static final String MENU = "MENU";// 用户菜单在request中的key

    private LoginLogic loginLogic;

    public void setLoginLogic(LoginLogic loginLogic) {
        this.loginLogic = loginLogic;
    }

    /**
     * 登陆初始化方法
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    public ActionForward loginInit(ActionMapping mapping, ActionForm form,
                                   HttpServletRequest request, HttpServletResponse response)
            throws Exception {
    	session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
    	return mapping.findForward("loginInit");
    }
    
    
    public ActionForward loginCheckCode(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    	ImgCheckCode check = new ImgCheckCode(60,18);
        session.setAttribute("charRandomCode", check.getCharRandomCode());
        ImageIO.write(check.getImageRandomCode(), "JPEG", response.getOutputStream());
    	return null;
    }
    
    
    public ActionForward loginSeeCheckCode(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    	response.setCharacterEncoding("GBK");
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.write("<img src='loginAction.do?method=loginCheckCode' width='60' height='18' >");
		out.flush();
		out.close();
    	return null;
    }
    

    /**
     * 登陆验证方法
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    public ActionForward loginPost(ActionMapping mapping, ActionForm form,
                                   HttpServletRequest request, HttpServletResponse response)
            throws Exception { 	
    	Object _obj = servletContext.getAttribute("randomCheckCode");
    	if(_obj!=null&& _obj instanceof Boolean){
    		if((Boolean)_obj){
    	    	  String checkCode= request.getParameter("charRandomCode");
    	          String sessionCheckCode = (String)session.getAttribute("charRandomCode");
    	          if(sessionCheckCode==null) {
    	        	  request.setAttribute("message", "请输入验证码!");
    	        	  session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
    	              return mapping.findForward("loginInit");
    	          }
    	          if((checkCode==null)||(!sessionCheckCode.equals(checkCode))){
    	              request.setAttribute("message", "验证码错误!");
    	              return mapping.findForward("loginInit");
    	          }
    		}
    	}
        LoginUser loginUser = new LoginUser();
        String loginUserCode = request.getParameter("loginUserCode");
        String loginPassword = request.getParameter("loginPassword");
        loginUser.setLoginUserCode(loginUserCode);
        loginUser.setLoginPassword(loginPassword);
        loginUser.setRealPath(getRealPath("/WEB-INF/config/"));
        Map<String,Object> map = new HashMap<String,Object>();
        switch (loginLogic.checkAdmin(loginUser, map)) {
        case 1:// 超级管理员登陆成功
        	session.removeAttribute("charRandomCode");
            session.setAttribute(LOGIN_USER_KEY, loginUser);
            session.setAttribute(LOGIN_USER_ACTION_KEY, map.get("actionSet"));
            request.setAttribute(MENU, map.get("menuList"));
            return mapping.findForward("main");
        case 2:// 超级管理员登陆密码错误
            request.setAttribute("message", "该用户密码错误!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        default:
            break;
        }
        switch (loginLogic.checkUser(loginUser, map)) {
        case 0:// 用户名不存在
            request.setAttribute("message", "该用户不存在!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        case 1:// 用户登陆成功
        	session.removeAttribute("charRandomCode");
            session.setAttribute(LOGIN_USER_KEY, loginUser);
            session.setAttribute(LOGIN_USER_ACTION_KEY, map.get("actionSet"));
            request.setAttribute(MENU, map.get("menuList"));
            return mapping.findForward("main");
        case 2:// 帐户未启用
        	request.setAttribute("message", "该用户未被启用!!");
        	session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        case 3:// 用户登陆密码错误
            request.setAttribute("message", "该用户密码错误!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        case 4:// 用户已经被禁用
            request.setAttribute("message", "该用户已经被禁用!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        case 5: //用户角色被禁用
            request.setAttribute("message", "该用户的角色已被禁用!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");
        case 6: //用户被删除
            request.setAttribute("message", "该用户已被删除!");
            session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
            return mapping.findForward("loginInit");  
        default:
            return null;
        }

    }

    public ActionForward loginOut(ActionMapping mapping, ActionForm form,
                                  HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        Enumeration enumerations = session.getAttributeNames();
        while (enumerations.hasMoreElements()) {
            Object key = enumerations.nextElement();
            session.removeAttribute(key.toString());
        }
        session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
        return mapping.findForward("loginInit");
    }
    
    public ActionForward sorry(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
		throws Exception {
		return mapping.findForward("sorry");
	}
}

⌨️ 快捷键说明

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