请后台交互:简单的登录界面。(通过form的auction来请求路径,后台根据不同条件来控制界面的跳转。),后台返回string,跳转界面。
前台界面
<form action="<%=contextPath%>/LogonController/logonSubmit" method="post">
<div class="body_body">
<div class="body_body_child1" >
<h1>评级系统</h1>
</div>
<div class="body_body_child2">
<div style="width: 100%;height: 10%; ">
<h2>登录</h2>
</div>
<div class="body_body_child2_div">
<div style="width: 100%;height: 40%;">
</div>
<div style="width: 100%;height: 60%;">
<span style="font-size: 100%;">用户名</span>
<input type="text" maxlength="20" name="uname"/>
</div>
</div>
<div class="body_body_child2_div">
<div style="width: 100%;height: 40%;">
</div>
<div style="width: 100%;height: 60%;">
<span style="font-size: 100%;">密 码</span>
<input type="password" maxlength="16" name="passwd"/>
</div>
</div>
<%--//修改逻辑,删除验证码
<div class="body_body_child2_divOther">
<div style="width: 100%;height: 40%;">
</div>
<div style="width: 100%;height: 60%;">
<span>验证码</span>
<input type="text" maxlength="4" name="verifyCode"/>
<img id="codeObj" alt="" src="<%=contextPath%>/VerifyCodeUtils/generate?w=100&h=32" οnclick="refreshCode()" style="vertical-align:middle"/>
</div>
</div> --%>
<div style="width: 100%;height: 8%;padding-top: 3%;text-align: right;">
<span id="ts" style="color: red;z-index: 999;font-size: 13px;font-family: monospace;float: left;margin-left: 27%;"></span>
<a href="<%=contextPath%>/forgetPwd.jsp"><span style="padding-right: 13%;float: right;">忘记密码</span></a>
</div>
<!-- <div class="tj" style="color: red;z-index: 999;font-size: 13px;font-family: monospace;padding: 0px;">
</div> -->
<div class="body_body_child2_div">
<button type="submit"><span>登录</span></button>
</div>
</div>
</div>
<input type="hidden" name="<%=Constants.SESSION_ATTRIBUTE_KEY_DMID%>" value="dm00001">
</form>
后台controller层
@RequestMapping(value="/logonSubmit", method = RequestMethod.POST)
public String logonSubmit(HttpServletRequest request, HttpServletResponse response){
request.getSession().setAttribute(Constants.SESSION_ATTRIBUTE_KEY_DMID, request.getParameter(Constants.REQUEST_ATTRIBUTE_KEY_DMID));
request.getSession().setAttribute(Constants.SESSION_ATTRIBUTE_KEY_DMID, request.getParameter(Constants.SESSION_ATTRIBUTE_KEY_DMID));
String uname = request.getParameter("uname");
//String passwd = MyMD5Util.string2MD5(request.getParameter("passwd"));
//修改加密的方式
String passwd =CryptData.enCode(request.getParameter("passwd"));
//修改逻辑,删除验证码。
/*String verifyCode = request.getParameter("verifyCode");
String sessionVcode = (String)request.getSession().getAttribute(Constants.SESSION_ATTRIBUTE_KEY_VCODE);
if(StringUtils.isBlank(verifyCode)){
request.setAttribute(Constants.REQUEST_ATTRIBUTE_ERRORMSG, "验证码不能为空!");
return "logon";
}
if(!verifyCode.equalsIgnoreCase(sessionVcode)){
request.setAttribute(Constants.REQUEST_ATTRIBUTE_ERRORMSG, "验证码错误!");
return "logon";
}
*/
if(StringUtils.isBlank(uname)){
request.setAttribute(Constants.REQUEST_ATTRIBUTE_ERRORMSG, "用户名不能为空!");
return "logon";
}
/* System.out.println("uname=" + uname + "passwd=" + passwd + " verifyCode=" + verifyCode);*/
if(StringUtils.isBlank(passwd)){
request.setAttribute(Constants.REQUEST_ATTRIBUTE_ERRORMSG, "密码不能为空!");
return "logon";
}
request.getSession().setAttribute(Constants.SESSION_ATTRIBUTE_KEY_UNAME, unameStr);;//将uname塞入进session
request.getSession().setAttribute(Constants.SESSION_ATTRIBUTE_KEY_ROLEID, roleId);;//将roleId塞入进session
return "main";
}
Map<String,Object> param = new HashMap<>();
param.put("uname", uname);
param.put("passwd", passwd);
boolean bool = LogonService.logonSubmit(param);
if(!bool){
request.setAttribute(Constants.REQUEST_ATTRIBUTE_ERRORMSG, "用户名或密码错误!");
return "logon";
}
Map<String, Object> userList = LogonService.searchUser(param);
String nameStr = (String) userList.get("name");
String unameStr = (String) userList.get("uname");
String roleId = (String) userList.get("role_id");
String phone =(String) userList.get("phone");
String email =(String) userList.get("email");
param = new HashMap<>();
param.put("uname", uname);
param.put("dmid", request.getParameter(Constants.REQUEST_ATTRIBUTE_KEY_DMID));
List<Map<String, Object>> resultList = userGroupService.getUserGroupByUname(param);
String gidArry = "";
for (int i = 0 ; i < resultList.size(); i++) {
String gid = (String) resultList.get(i).get("gid");//获取组ID
if(i==0){
gidArry = gid;
}else{
gidArry += ","+gid;
}
}
request.getSession().setAttribute("gid", gidArry);//将组ID塞进session
request.getSession().setAttribute(Constants.SESSION_ATTRIBUTE_KEY_NAME, nameStr);;//将name塞入进session
request.getSession().setAttribute("phone", phone);;//将name塞入进session
request.getSession().setAttribute("email", email);;//将name塞入进session
return "main";
}
后台service层
@Service("LogonServiceImpl")
public class LogonServiceImpl implements LogonService {
@Resource(name = "LogonDaoImpl")
LogonDao LogonDao;
@Override
public boolean logonSubmit(Map<String, Object> param) {
List<Map<String, Object>> reusuleList = LogonDao.logonSubmit(param);
if(reusuleList.size()>0){
return true;
}else{
return false;
}
}
后台dao层
@Service("LogonDaoImpl")
public class LogonDaoImpl extends BaseMybatisDaoImpl implements LogonDao {
@Override
public List<Map<String,Object>> logonSubmit(Map<String, Object> param) {
return getSqlSession().selectList("logon.logonSubmit", param);
}
}
注意:注入的使用,各个层都需要注入,同一个工程中不能有重名的,namespace不能重名,可以随意定义。随时注意调用方法记录日志。