OA系统开发(七)

85 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

1.pom.xml引入fastjson依赖

image.png

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>

2.创建controller包

新建LoginServlet image.png

@WebServlet(name = "LoginServlet", value = "/check_login")
public class LoginServlet extends HttpServlet {
    Logger logger = LoggerFactory.getLogger(LoginServlet.class);
    UserService  userService = new UserService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=utf-8");
            //1.获取参数
            String userName = request.getParameter("username");
            String password = request.getParameter("password");
            Map<String,Object> result = new HashMap<>();
            //2.捕获异常
            try{
                User user = userService.checkLogin(userName,password);
                result.put("code",0);
                result.put("message","success");
            }catch (BusinessException e){
                logger.error(e.getMessage(),e);
                result.put("code",e.getCode());
                result.put("message", e.getMessage());
            } catch (Exception e){
                logger.error(e.getMessage(),e);
                result.put("code", e.getClass().getSimpleName());
                result.put("message",e.getMessage());
            }
            //3.返回结果
            String json = JSON.toJSONString(result);
            response.getWriter().println(json);

    }
}

代码说明:

  • /check_login:表示接口url地址
  • Logger logger = LoggerFactory.getLogger(LoginServlet.class):初始化日志对象
  • doPost:表单提交,通常我们采用post方式来保证数据的安全性
  • request.setCharacterEncoding("utf-8"):设置请求采用utf-8编码要求
  • response.setContentType("text/html;charset=utf-8"):设置返回的格式
  • request.getParameter("username"):获取表单提交上来的数据
  • Map<String,Object> result = new HashMap<>():定义Map对象用来返回数据对象
  • userService.checkLogin(userName,password):传参用户名和密码来判断用户的合法性
  • result.put("code",0):设置返回状态码code
  • result.put("message","success"):设置返回信息message
  • catch (BusinessException e):用来捕获业务异常
  • result.put("code", e.getClass().getSimpleName()):系统的其他异常
  • String json = JSON.toJSONString(result):result放到Json上
  • response.getWriter().println(json):输出json结果

3.重启项目

image.png 看到以下界面,说明接口调用成功

4.登录按钮调用api

设置用户名和密码设置成必填 image.png

<script src="resources/layui/layui.js"></script>
<script>
    layui.form.on("submit(login)",function (formData){
        console.log(formData);
        layui.$.ajax({
            url:"/check_login",
            data:formData.field,
            type:"POST",
            dataType:"json",
            success:function (data){
             if(data.code==0){
                 layui.layer.msg("登录成功");
             }else{
                 layui.layer.msg(data.message);
             }
        }
        });
        return false;
    })
</script>

5.重启项目

image.png 登录成功 image.png