07-项目训练_管理员登录前后端交互

目录

1,修改登录页面login.html

2,编写adminController

2.1 在application.properties中添加类的说明

2.2 编写controller

3,处理字符乱码问题


完整项目在这里实时更新<( ̄︶ ̄)↗[GO!]:https://github.com/GoodbyeFirefly/ExpressManagementSystem   

1,修改登录页面login.html

将登录按钮的类型改为button(原先是submit),这样可以通过ajax在前端拿到登录时的用户名和密码

引入jQuery和layer(注意引入的顺序)

编写脚本,取得用户名和密码

<script src="assets/layui.js"></script>
<script src="js/index.js" data-main="login"></script>
<script src="js/login.js" data-main="login"></script>
<script src="../js/jquery2.1.4.js"></script>
<script src="../layer/layer.js"></script>
<script>
    $(function () {
        $(".login-button").click(function () {
            var username = $("#username").val();
            var passowrd = $("#password").val();
            // 1, 先使用layer弹出load(提示加载中)
            var windowId = layer.load();
            // 2, ajax与服务器交互
            $.post("login.do", {username:username, password:passowrd}, function(data) {
                // 3, 关闭load窗口
                layer.close(windowId);
                // 4, 将服务器回复的结果进行显示
                layer.msg(data.result);
                if(data.status == 0) {
                    location.assign("index.html");
                }
            }, "JSON");
        });
    });
</script>

2,编写adminController

2.1 在application.properties中添加类的说明

2.2 编写controller

package com.xxy.controller;

import com.xxy.bean.Message;
import com.xxy.mvc.ResponseBody;
import com.xxy.service.AdminService;
import com.xxy.util.JSONUtil;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;

public class AdminController {

    @ResponseBody("/admin/login.do")
    public String login(HttpServletRequest req, HttpServletResponse resp) {
        // 1, 接收参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 2, 调用service传递参数,并获取结果
        boolean result = AdminService.login(username, password);
        // 3, 根据结果准备不同的返回数据
        Message msg = null;
        if (result) {
            msg = new Message(0, "登录成功");
            Date date = new Date();
            String ip = req.getRemoteAddr();
            AdminService.updateLoginTimeAndIP(username, date, ip);
        } else {
            msg = new Message(-1, "登录失败");
        }
        // 4, 将数据转换为JSON
        String json = JSONUtil.toJSON(msg);
        // 5, 将JSON返回给ajax
        return json;

    }
}

3,处理字符乱码问题

在src中创建filter目录,编写CharsetFilter

package com.xxy.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("*.do")
public class CharsetFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/json;charset=utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }
}

章节汇总在这里(づ ̄3 ̄)づ╭❤~@&再见萤火虫&【07-项目训练】


对学习Java感兴趣的同学欢迎加入QQ学习交流群:1126298731

有问题欢迎提问,大家一起在学习Java的路上打怪升级!(o゜▽゜)o☆[BINGO!]

Guess you like

Origin blog.csdn.net/qq_41528502/article/details/120116482