📄 loginaction.java
字号:
package netctoss.login.actions;
import global.ModuleMenu;
import global.SortToolbar;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import netctoss.dao.AdminsDAO;
import netctoss.entities.Adminroles;
import netctoss.entities.Admins;
import netctoss.entities.Modules;
import netctoss.entities.Operations;
import netctoss.entities.Rights;
import netctoss.entities.Rolerights;
import netctoss.entities.Roles;
import netctoss.entities.logic.dao.AdminDAO;
import netctoss.login.forms.LoginForm;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
//处理业务逻辑
//验证附加码 session中的key是img
//验证用户,并保存用户id到session,key是adminid
//ActionForward两个,成功到index.do,失败到login.do本身
System.out.println("开始登录验证");
LoginForm fm=(LoginForm)form;
HttpSession session=request.getSession();
Object objcode=session.getAttribute("img");
ActionMessages errors=new ActionMessages();
if(objcode!=null && objcode.toString().equals(fm.getImgcode())){
AdminDAO dao=new AdminDAO();
try{
int id=dao.verify(fm.getLoginname(), fm.getPassword());
session.setAttribute("adminid", id);
//下面的处理部分决定用户的显示工具条模块与菜单操作选项
//角色列表
AdminsDAO admins=new AdminsDAO();
Admins admin=admins.findById(id);
Set adminroles=admin.getAdminroles();//该管理员的角色
//权限列表
Set setmodules=new HashSet();//存放所有的模块实体对象//防止模块ID重复
Iterator itroles=adminroles.iterator();
while(itroles.hasNext()){
Adminroles adminrole=(Adminroles)itroles.next();
Set rolerights=adminrole.getRoleid().getRolerights();
Iterator itrolerights=rolerights.iterator();
//模块列表
while(itrolerights.hasNext()){
Rolerights roleright=(Rolerights)itrolerights.next();
setmodules.add(roleright.getRightid().getModuleid());//添加所有模块到到Set结构
}
}
//setmodules.remove(null);
Object[] obj=setmodules.toArray();
ModuleMenu[] toolbar=new ModuleMenu[obj.length];
for(int i=0;i<obj.length;i++){
toolbar[i]=new ModuleMenu();
toolbar[i].setId(((Modules)obj[i]).getId());
toolbar[i].setName(((Modules)obj[i]).getName());
toolbar[i].setUrl(((Modules)obj[i]).getUrl());
}
Arrays.sort(toolbar,new SortToolbar());//排序
session.setAttribute("toolbars", toolbar);
return mapping.findForward("gomain");//登录成功
}
catch(Exception e){
//e.printStackTrace();
errors.add("login.warning.valid",new ActionMessage("login.warning.valid"));
}
}
else{
errors.add("login.warning.imagecode",new ActionMessage("login.warning.imagecode"));
}
this.saveErrors(request, errors);
return mapping.findForward("back");//登录失败
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -