Logo

郎哥编程

登录业务后台实现

2019-07-23 191

登录业务后台代码主要实现验证登录业务,对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页面)以及在视图中要显示的数据。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论