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

📄 loginservlet.java

📁 本文论述了一个前台笔记本销售系统的开发过程
💻 JAVA
字号:
package com.set.appframe.web;

import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.StringTokenizer;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.set.appframe.data.GenericValueObject;
import com.set.appframe.exception.SystemException;

import com.set.security.table.AuthLogin;
import com.set.utils.DesUtils;
import com.set.utils.ParamUtils;

/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2005
 * </p>
 * <p>
 * Company:
 * </p>
 * 
 * @author zhengbh
 * @version 1.0
 */

public class LoginServlet extends HttpServlet {

	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String action = ParamUtils.getNotNullParam(request, "ActionID");
		String redirect = request.getParameter("REDIRECT");

		if (action.equalsIgnoreCase("login")) {
			processLogin(request, response);
		} else if (action.equalsIgnoreCase("loginfromportal")) {
			processLoginForPortal(request, response);
		}

	}

	private void processLogin(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String loginName = "";
		String password = "";
		String orgCode = "";
		String organizationID = "0";

		loginName = (String) request.getParameter("username");
		password = DesUtils.Encrypt((String) request.getParameter("password"));
		orgCode = (String) request.getParameter("orgCode");

		if (!checkVerifyCode(request)) { // 验证码错误
			RequestDispatcher rqd = getServletConfig().getServletContext()
					.getRequestDispatcher(response.encodeURL("/Login.jsp"));
			rqd.forward(request, response);
			return;
		}

		loginName = loginName + ".";

		// String [] logins=loginName.split(".");
		StringTokenizer st = new StringTokenizer(loginName, ".");
		int total = st.countTokens();

		if (total == 2) {
			orgCode = st.nextToken();
			loginName = st.nextToken();
		} else if (total == 1) {
			loginName = st.nextToken();
		} else { // 无效用户名
			RequestDispatcher rqd = getServletConfig().getServletContext()
					.getRequestDispatcher(response.encodeURL("/Login.jsp"));
			rqd.forward(request, response);
			return;

		}

		String strURL = "";
		GenericValueObject authLogin = null;
		AuthLogin sessionValue = new AuthLogin();

		
		// 用户ip限制
		boolean ipLogin = false;
	

		if (authLogin != null && ipLogin) {
			// 设置cookie
			try {
				String cookieName = "username";
				String cookieCName = "companyname";
				Cookie cookie = new Cookie(cookieName, URLEncoder
						.encode(loginName));
				Cookie companycookie = new Cookie(cookieCName, URLEncoder
						.encode(orgCode));
				cookie.setMaxAge(365 * 24 * 60 * 60);
				companycookie.setMaxAge(365 * 24 * 60 * 60);
				response.addCookie(cookie);
				response.addCookie(companycookie);
			} catch (Exception e) {
				e.printStackTrace();
			}

			// 检验是否是运行商后台帐号登陆
			sessionValue.setSystemUserName(loginName);

			sessionValue.setOrganizationID(authLogin.getItemString("ORGANIZATIONID"));

			sessionValue.setOrganizationName(authLogin
					.getItemString("ORGANIZATIONNAME"));

			sessionValue.setSystemUserName(authLogin.getItemString("USERNAME"));

			sessionValue.setSystemUserID(authLogin.getItemString("SYSTEMUSERID"));

			sessionValue.setEmail(authLogin.getItemString("EMAIL"));

			sessionValue.setMobile(authLogin.getItemString("MOBILE"));
			sessionValue.setBusinessUnitID(authLogin.getItemString(
					"BUSINESSUNITID").toString());
			sessionValue.setBusinessUnitName(authLogin.getItemString(
					"BUSINESSUNITNAME").toString());
			sessionValue.setIsCustomer(authLogin.getItemString("ISCUSTOMER"));
			sessionValue.setParentId(authLogin.getItemString("PARENTID"));
			// sessionValue.setSystemUserName(authLogin.getItemString("SYSTEMUSERNAME").
			// toString());
			sessionValue.setOrgCode(orgCode);
			sessionValue.setMenuCategory(authLogin.getItemString("CATEGORY"));
			sessionValue.setVersion(authLogin.getItemString("VERSION"));
			sessionValue.setLogo(authLogin.getItemString("LOGO"));

			organizationID = authLogin.getItemString("ORGANIZATIONID");

			request.getSession().setAttribute("AuthLogin", sessionValue);

			{
				List userRights = null;
				request.getSession().setAttribute("UserRights", userRights);
			}

			if (authLogin.getItem("ORGANIZATIONID").toString().equals("0")) {
				strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
			} else if (authLogin.getItem("ISCUSTOMER").toString().equals("0")) {
				strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
			} else {
				strURL = "/home/IndexAction.do?dispatch=index";
			}
		} else {
			strURL = "/Login.jsp";
		}
		RequestDispatcher rqd = getServletConfig().getServletContext()
				.getRequestDispatcher(response.encodeURL(strURL));
		rqd.forward(request, response);

	}

	private void processLoginForPortal(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String loginName = "";
		String password = "";
		String orgCode = "";
		String organizationID = "0";

		loginName = DesUtils.Decrypt((String) request.getParameter("username"));
		password = (String) request.getParameter("password");
		orgCode = DesUtils.Decrypt((String) request.getParameter("orgcode"));
		request.getSession().setAttribute("EORGCODE",
				(String) request.getParameter("orgcode"));

		loginName = loginName + ".";

		// String [] logins=loginName.split(".");
		StringTokenizer st = new StringTokenizer(loginName, ".");
		int total = st.countTokens();

		if (total == 2) {
			orgCode = st.nextToken();
			loginName = st.nextToken();
		} else if (total == 1) {
			loginName = st.nextToken();
		} else { // 无效用户名
			RequestDispatcher rqd = getServletConfig().getServletContext()
					.getRequestDispatcher(response.encodeURL("/Login.jsp"));
			rqd.forward(request, response);
			return;

		}

		String strURL = "";
		GenericValueObject authLogin = null;
		AuthLogin sessionValue = new AuthLogin();

		// 用户ip限制
		boolean ipLogin = false;
		

		if (authLogin != null && ipLogin) {
			// 设置cookie
			try {
				String cookieName = "username";
				String cookieCName = "companyname";
				Cookie cookie = new Cookie(cookieName, URLEncoder
						.encode(loginName));
				Cookie companycookie = new Cookie(cookieCName, URLEncoder
						.encode(orgCode));
				cookie.setMaxAge(365 * 24 * 60 * 60);
				companycookie.setMaxAge(365 * 24 * 60 * 60);
				response.addCookie(cookie);
				response.addCookie(companycookie);
			} catch (Exception e) {
				e.printStackTrace();
			}

			// 检验是否是运行商后台帐号登陆
			sessionValue.setSystemUserName(loginName);

			sessionValue.setOrganizationID(authLogin
					.getItemString("ORGANIZATIONID"));

			sessionValue.setOrganizationName(authLogin
					.getItemString("ORGANIZATIONNAME"));

			sessionValue.setSystemUserName(authLogin.getItemString("USERNAME"));

			sessionValue.setSystemUserID(authLogin
					.getItemString("SYSTEMUSERID"));

			sessionValue.setEmail(authLogin.getItemString("EMAIL"));

			sessionValue.setMobile(authLogin.getItemString("MOBILE"));
			sessionValue.setBusinessUnitID(authLogin.getItemString(
					"BUSINESSUNITID").toString());
			sessionValue.setBusinessUnitName(authLogin.getItemString(
					"BUSINESSUNITNAME").toString());
			sessionValue.setIsCustomer(authLogin.getItemString("ISCUSTOMER"));
			sessionValue.setParentId(authLogin.getItemString("PARENTID"));
			// sessionValue.setSystemUserName(authLogin.getItemString("SYSTEMUSERNAME").
			// toString());
			sessionValue.setOrgCode(orgCode);
			sessionValue.setMenuCategory(authLogin.getItemString("CATEGORY"));
			sessionValue.setVersion(authLogin.getItemString("VERSION"));

			organizationID = authLogin.getItemString("ORGANIZATIONID");

			request.getSession().setAttribute("AuthLogin", sessionValue);

			{
				List userRights = null;
				
				request.getSession().setAttribute("UserRights", userRights);
			}

			if (authLogin.getItem("ORGANIZATIONID").toString().equals("0")) {
				strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
			} else if (authLogin.getItem("ISCUSTOMER").toString().equals("0")) {
				strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
			} else {
				strURL = "/home/IndexAction.do?dispatch=index";
			}
		} else {
			strURL = "/Login.jsp";
		}
		RequestDispatcher rqd = getServletConfig().getServletContext()
				.getRequestDispatcher(response.encodeURL(strURL));
		rqd.forward(request, response);

	}

	protected boolean checkVerifyCode(HttpServletRequest request) {
		boolean f = false;
		HttpSession session = request.getSession();
		String rand = (String) session.getAttribute("rand");
		String input = String.valueOf(request.getParameter("VERIFYCODE"));
		return input.equals(rand);
	}

}

⌨️ 快捷键说明

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