📄 loginaction.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 + -