登录业务后台代码主要实现验证登录业务,对admin_login.jsp传递过来的用户表单数据进行验证,验证成功页面跳转到admin_index.jsp,验证失败返回“用户验证失败,用户名或密码或类型错误”提示信息。
编写验证登录接口
在ShopManagerService类中编写验证登录接口,验证登录接口代码如下:
/** * @Title: verifyUser * @Description: 验证商城管理员登录账号 * @param @param inLoginName * @param @param inPassWord * @param @return 参数 * @return InnerResult 返回类型 * @throws */ public InnerResult verifyUser(String inLoginName,String inPassWord);
verifyUser接口用于验证商城管理登录过程中输入的登录账号和密码是否合法。
实现验证登录接口
ShopManagerService接口类添加verifyUser接口后,ShopManagerServiceImpl类会出现接口没有实现的错误,需要在ShopManagerServiceImpl类中实现verifyUser接口。
在ShopManagerServiceImpl类中编写实现验证登录接口代码,实现验证登录接口的ShopManagerServiceImpl类代码如下:
package com.eshop.admin.service.impl;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.eshop.admin.service.ShopManagerService;
import com.eshop.dao.UserMapper;
import com.eshop.pojo.User;
import com.eshop.pojo.UserExample;
import com.eshop.util.ESHOPConstant;
import com.eshop.util.InnerResult;
/**
* @ClassName: ShopManagerServiceImpl
* @Description: 商铺管理和商城管理员登录业务逻辑接口实现类
* @author xinch
* @date 2019年7月19日
*
*/
@Service
public class ShopManagerServiceImpl implements ShopManagerService {
/**
* @log 日志类
*/
private Logger log = Logger.getLogger(ShopManagerServiceImpl.class);
/**
* @userMapper user表DAO接口
*/
@Autowired
UserMapper userMapper;
/**
* <p>Title: verifyUser</p>
* <p>Description: </p>
* @param inLoginName
* @param inPassWord
* @return
* @see com.eshop.admin.service.ShopManagerService#verifyUser(java.lang.String, java.lang.String)
*/
@Override
public InnerResult verifyUser(String inLoginName, String inPassWord) {
//使用UserExample加入查询条件
UserExample userExmple=new UserExample();
//添加登录名查询条件
userExmple.createCriteria().andLoginnameEqualTo(inLoginName);
//添加登录密码查询条件
userExmple.createCriteria().andPswEqualTo(inPassWord);
//添加用户类型查询条件
userExmple.createCriteria().andUsertypeEqualTo(2);
//使用userMapper对象执行查询
try {
List<User> userList = userMapper.selectByExample(userExmple);
//查询到合法记录
if( userList.size() > 0 )
return new InnerResult(ESHOPConstant.RESULT_CODE.SUCC,"用户验证成功");
else
return new InnerResult(ESHOPConstant.RESULT_CODE.FAIL,"用户验证失败,用户名或密码或类型错误");
} catch (Exception e) {
log.error(e);
return new InnerResult(ESHOPConstant.RESULT_CODE.FAIL,"用户验证失败,数据库访问错误");
}
}
}MyBatis自动创建的xxxExample类可以设置查询条件,创建动态的where子句。在上面的代码中,使用userExmple对象设置要查询的条件,使用UserMapper类的selectByExample方法执行SQL查询,并返回查询结果。如果查询结果不为空记录,则说明登录账号、密码和用户类型是合法的,验证成功,否则验证失败。
编写登录业务请求响应
在ShopManagerControll类添加登录业务请求响应方法。ShopManagerControll类完整代码如下:
package com.eshop.admin.controller;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.eshop.admin.service.ShopManagerService;
import com.eshop.util.ESHOPConstant;
import com.eshop.util.InnerResult;
/**
* @ClassName: ShopManagerControll
* @Description: 商铺管理和管理员登录请求响应处理
* @author xinch
* @date 2019年7月20日
*
*/
@Controller
@RequestMapping("/admin/shopmanager")
public class ShopManagerControll {
/**
* @log 日志输出
*/
private Logger log = Logger.getLogger(ShopManagerControll.class);
/**
* @shopManagerService 商铺管理和商城管理员登录业务类
*/
@Autowired
private ShopManagerService shopManagerService;
/**
* @Title: verifyUser
* @Description: 商城管理员登录业务响应
* 响应页面:admin_login.jsp
* @param @param request
* @param @return
* @param @throws Exception 参数
* @return ModelAndView 返回类型
* @throws
*/
@RequestMapping(value = "/verifyuser.do")
public ModelAndView verifyUser(HttpServletRequest request) throws Exception {
//数据模型和视图对象
ModelAndView view=new ModelAndView();
//获取前端表单的name和psw
String loginName = request.getParameter("name");
String passWord = request.getParameter("psw");
//调用ShopManagerService类的verifyUser接口
InnerResult result = shopManagerService.verifyUser(loginName, passWord);
//验证成功
if( result.getCode() == ESHOPConstant.RESULT_CODE.SUCC )
{
//跳转到admin_index.jsp页页面
view.setViewName("jsp/admin/admin_index");
return view;
}
//验证失败,设置验证失败信息
view.addObject("info",result.getMessage());
//跳转到admin_login页面
view.setViewName("jsp/admin/admin_login");
return view;
}
}verifyUser方法用于响应前端admin_login.jsp页面提交的商城管理员登录请求。verifyUser方法传入的参数类型是HttpServletRequest对象,使用该对象可以获取客户端的请求信息,包括客户端提交的表单数据。verifyUser方法返回的是ModelAndView对象,使用该对象可以设置前端视图(JSP页面)以及在视图中要显示的数据。