俊俊的良 2023-05-01 21:14 采纳率: 50%
浏览 28
已结题

layui登录模板Ajax提交时,后台request.getParameter()拿到的值为null

说明

  • layui2.8+jsp+servlet
  • 描述:使用layui登录提交时,servlet拿不到页面传的值,无论怎样调怎样改一直是null

jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>超神学院登录界面</title>
    <link href="./layui-v2.8.1/layui/css/layui.css" rel="stylesheet">
</head>
<style>
    .demo-login-container {
        width: 320px;
        margin: 21px auto 0;
    }

    .demo-login-other .layui-icon {
        position: relative;
        display: inline-block;
        margin: 0 2px;
        top: 2px;
        font-size: 26px;
    }
</style>
<body>
<script src="./layui-v2.8.1/layui/layui.js"></script>
<form method="get" class="layui-form">
    <div class="demo-login-container">
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-username"></i>
                </div>
                <input type="text" name="username" id="username" lay-verify="required" placeholder="用户名"
                       lay-reqtext="请填写用户名" autocomplete="off" class="layui-input" lay-affix="clear">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-wrap">
                <div class="layui-input-prefix">
                    <i class="layui-icon layui-icon-password"></i>
                </div>
                <input type="password" name="password" id="password" lay-verify="required" placeholder="密   码"
                       lay-reqtext="请填写密码" autocomplete="off" class="layui-input" lay-affix="eye">
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-row">
                <div class="layui-col-xs7">
                    <div class="layui-input-wrap">
                        <div class="layui-input-prefix">
                            <i class="layui-icon layui-icon-vercode"></i>
                        </div>
                        <input type="text" name="captcha" value="" lay-verify="required" placeholder="验证码"
                               lay-reqtext="请填写验证码" autocomplete="off" class="layui-input" lay-affix="clear">
                    </div>
                </div>
                <div class="layui-col-xs5">
                    <div style="margin-left: 10px;">
                        <img src="https://www.oschina.net/action/user/captcha"
                             onclick="this.src='https://www.oschina.net/action/user/captcha?t='+ new Date().getTime();">
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <input type="checkbox" name="remember" lay-skin="primary" title="记住密码">
            <a href="#forget" style="float: right; margin-top: 7px;">忘记密码?</a>
        </div>
        <div class="layui-form-item">
            <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="demo-login">登录</button>
        </div>
        <div class="layui-form-item demo-login-other">
            <label>社交账号登录</label>
            <span style="padding: 0 21px 0 6px;">
        <a href="javascript:;"><i class="layui-icon layui-icon-login-qq" style="color: #3492ed;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat" style="color: #4daf29;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo" style="color: #cf1900;"></i></a>
      </span><a href="register.jsp">注册帐号</a></span>
        </div>
    </div>
</form>
<script src="jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        layui.use('form', function () {
            //var $ = layui.$;
            var form = layui.form;
            var layer = layui.layer;
            // 提交事件
            form.on('submit(demo-login)', function (data) {
                var field = data.field; // 获取表单字段值
                var username = $("#username").val();
                var password = $("#password").val();
                //var username = field.username
                //var password = field.password
                alert(username)
                //alert(JSON.stringify(field))
                $.ajax({
                    type: "GET",
                    url: "loginServlet",
                    date: {username: username, password: password},
                    dataType: "json",
                    success: function (data) {
                        if (data.num === "200") {
                            window.location.href = ("./jsp/index.jsp")
                        } else {
                            alert(data.err_msg)
                        }
                    }, error: function () {
                        alert("出错啦。。。")
                    }
                });
                return false; // 阻止默认 form 跳转
            });
        });
    })
</script>
</body>
</html>

Java代码


@WebServlet("/loginServlet")
public class LoginServlet  extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/json;charset=utf-8");
        StuDao stuDao=new StuDaoImpl();
        String name = req.getParameter("username");
        String pwd = req.getParameter("password");
        System.out.println(name+"\t"+pwd);
        Student stu = stuDao.findStuByNameAndPwd(name, pwd);
        PrintWriter out =resp.getWriter();
        String str;
        if (stu!=null){
            System.out.println(stu.toString());
            str="{\"num\":\"200\"}";
            out.println(str);
        }else {
            str="{\"num\":\"400\",\"err_msg\":\"用户名或密码错误\"}";
            out.println(str);
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

附图如下

img

img

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-05-01 23:26
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日
  • 创建了问题 5月1日

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图