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

📄 loginaction.java

📁 eclipse java/jsp 航空管理系统
💻 JAVA
字号:
/*
 * Created on 2005-5-12
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package ddllogin.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import zhangchunliang.model.AppMode;
import ddllogin.form.LoginForm;
import ddllogin.model.AcessBean;
import ddllogin.model.CookieBean;
import ddllogin.model.Logon;

//import java.util.HashMap;

/**
 * @author duzhibo@neusoft
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class LoginAction extends Action {

	//声明一个哈希表,来存放用户的登陆次数,里面采用用户名和cout的键值对
	//HashMap hashMap = new HashMap();

	//定义一个静态的cout来存放登陆的次数
	public static int cout = 0;

	//定义一个字符转换的方法
	public String change(String s) {
		String str = s;
		try {
			byte b[] = str.getBytes("ISO-8859-1");
			str = new String(b);
			return str;
		} catch (Exception e) {
			return str;
		}
	}

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		
		if(!AppMode.getAppMode()){
			System.out.println("status is "+AppMode.getAppMode());
			System.out.println("Application is terminated...");
			return mapping.findForward("appInfo");
		}

		//首先将表单获得进来
		LoginForm loginForm = (LoginForm) form;
        //实例化Logon的对象
        Logon logon=new Logon();
		//跳转回到原来的界面
		if (loginForm.getEvent() != null) {
			if ("return".equals(loginForm.getEvent())) {
				return mapping.findForward("error");
			}
		}
		/**
		 * 获得出表单中的用户名和密码,用AcessBean中的acess方法进行判断是否是有效的 有效就返回1,
		 * 登陆成功,否则就返回0,登陆失败
		 */
		String userName = change(loginForm.getUserName());
		String password = change(loginForm.getPassword());
		boolean checkBox = loginForm.getCheckBox();
		System.out.println(userName);
		System.out.println(password);
		System.out.println(checkBox);
		//调用AcessBean类
		AcessBean acessBean = new AcessBean();
		//调用CookieBean类的cookieSave方法,来保存用户名和密码
		CookieBean cookieBean = new CookieBean();
		cookieBean.cookieSave(userName, password, checkBox, request, response);
		//将用户名传递进去,获得返回值
		int i = acessBean.acess(userName);
		//根据返回值进行判断,是不是存在该用户,存在,再进行密码判断
		//System.out.println(i + "wo shi i");
		if (i == 1) {
			//如果存在这个帐户,那么判断是否账户已经被封
			int m=acessBean.judgeAccount(userName);
			//如果m==1,则帐户没有被封,就去判断密码
			if(m==1){
				System.out.println(m+"wo shi m");
			//return mapping.findForward("success");
			/**
			 * 如果存在这个用户,调用acessp方法,进行判断,只有当账户没有被封并且密码正确的时候, 
			 * 返回1,就是完全登陆成功,如
			 * 是0或者是2,那么就是登陆失败.
			 */
			int j = acessBean.acessp(userName, password);
			//System.out.println(j + "wo shi j");
			if (j == 1) {
				//完全登陆成功,那么就跳到正式的界面,并且将cout设置为0
				cout = 0;
				//System.out.println("kkkkkkkkkk");
                //添加权限的取得方法
                
                String strgrant[]=logon.UserGrant(loginForm);
                /**String tablename=logon.UserTable(logonform);*/
                String str=logon.findTable(loginForm);
                /**List a=logon.findTables(logonform);*/
                request.getSession().setAttribute("sid",userName);
                request.getSession().setAttribute("userSelectGrant",strgrant[0]);
                request.getSession().setAttribute("userAddGrant",strgrant[1]);
                request.getSession().setAttribute("userDeleteGrant",strgrant[2]);
                request.getSession().setAttribute("userUpdateGrant",strgrant[3]);
                request.getSession().setAttribute("userAdminGrant",strgrant[4]);
               /**request.getSession().setAttribute("userTableName",tablename);*/
               /**request.getSession().setAttribute("userTableNameList",a);*/
                request.getSession().setAttribute("userTableName",str);
                //到这里是登陆成功并带有权限
				return mapping.findForward("success");
			} else {

				/**
				 * 如果登陆的不成功,那么就将hashMap中的cout计数器+1,如果cout的值为3的时候,
				 * 那么将数据库的flag标志位设置成为false,那么就将这个账户封杀.并且返回到一个
				 * 提示用户正户被封的页面
				 */
				cout++;
				request.setAttribute("counter", String.valueOf(cout));
				//System.out.println(cout + "wo shi cout");
				if (cout >= 3) {
					//调用方法,将数据库的账户flag置为false,就是账户停用
					//System.out.println("wo shi cout你好");
					int k = acessBean.upDate(userName);
					//System.out.println("wo  shi  k" + k);
					if (k == 1) {
						return mapping.findForward("killaccount");
					} else
						return mapping.findForward("error");
				} else
					return mapping.findForward("falsecout");
			}
			}else return mapping.findForward("accountDied");
		} else
			//不存在该用户,就在回到登陆页面
			return mapping.findForward("noaccount");

	}
}

⌨️ 快捷键说明

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