loginaction.java

来自「一个购房管理系统,JSF+Hibernate+Mssql2」· Java 代码 · 共 103 行

JAVA
103
字号
package com.housesale.struts.action;

import java.io.UnsupportedEncodingException;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.housesale.hibernate.Customer;
import com.housesale.hibernate.Operator;
import com.housesale.struts.form.LoginForm;
import com.housesale.util.TreeBuildMenu;

public class LoginAction extends DispatchAction {

	private static final String USER_TYPE = "userType";

	private static final String LOGINFAIL = "loginfail";

	private static final String LOGINOK = "loginok";

	private static final String SYS_USER = "sysUser";

	private static final String JAVASCRIPT = "javascript";

	private static final String toChart = "utf-8";

	private static final String fromChart = "ISO-8859-1";

	public LoginAction() {
		super();

	}

	public ActionForward logIn(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		LoginForm loginForm = (LoginForm) form;

		String userName = loginForm.getName();
		String password = loginForm.getPassword();
		String userType = loginForm.getUserType();
		String javaScript = null;
		TreeBuildMenu treeBuildMenu = new TreeBuildMenu();
		if (userType.equals("manager")) {
			Operator operator = treeBuildMenu.getOperator(userName, password);
			if (operator != null) {
				javaScript = treeBuildMenu.buildMenu(
						operator.getOperatorName(), userType);
				return setAttribute(mapping, request, javaScript, operator,
						userType);
			}
		} else if (userType.equals("customer")) {
			Customer customer = treeBuildMenu.getCustomer(userName, password);
			if (customer != null) {
				javaScript = treeBuildMenu.buildMenu(
						customer.getCustomerName(), userType);
				return setAttribute(mapping, request, javaScript, customer,
						userType);
			}
		}
		return mapping.findForward(LOGINFAIL);
	}

	private ActionForward setAttribute(ActionMapping mapping,
			HttpServletRequest request, String javaScript, Object sysUser,
			String userType) throws UnsupportedEncodingException {
		if (javaScript != null && !javaScript.equals("")) {
			HttpSession session = request.getSession(true);
			session.setAttribute(USER_TYPE, userType);
			session.setAttribute(SYS_USER, sysUser);
			session.setAttribute(JAVASCRIPT, javaScript);
			return mapping.findForward(LOGINOK);
		} else {
			return mapping.findForward(LOGINFAIL);
		}
	}

	private String toChinise(String javaScript)
			throws UnsupportedEncodingException {
		return new String(javaScript.getBytes(fromChart), toChart);
	}

	public ActionForward logOut(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		HttpSession session = (HttpSession) request.getSession(false);
		session.removeAttribute("sysUser");
		session.removeAttribute("userType");
		session.removeAttribute("javascript");

		return mapping.findForward("index");

	}
}

⌨️ 快捷键说明

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