首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在对java servlet的ajax调用中,getParamteter不能处理文本元素

问在对java servlet的ajax调用中,getParamteter不能处理文本元素
EN

Stack Overflow用户
提问于 2019-02-05 01:34:29
回答 1查看 44关注 0票数 0

嗨,我有一个名称和pw文本字段与提交按钮。问题是我输入的任何值都不会被servlet获取。我不知道问题是出现在JQUERY试图获取HTML元素值的时候,还是servlet无法从ajax调用获取值的时候。

我有一个servlet,它打印出request.getParameters,但它一直打印空。我已经附加了html和js代码的相关片段以及servlet代码,以测试参数是否被接收到。

HTML代码:

代码语言:javascript
复制
<section id="customer_business">
        <div class="container">
            <div class="row">
                <div class="col-sm-6 col-xs-12 customer">
                    <div class="hover ehover3">
                        <img class="img-responsive" src="images/p13.jpg" 
    alt="">
                        <div class="overlay">
                            <div class="row">
                                <div class="col-sm-6 col-xs-12">
                                    <div class="form-group"> 
                                        <input type="text" id="cus_name" 
   class="form-control" maxlength="10" placeholder="Full Name" required>
                                    </div>
                                </div>
                                <div class="col-sm-6 col-xs-12">
                                    <div class="form-group"> 
                                        <input id="cus_password" 
    type="password" class="form-control" maxlength="22" 
    placeholder="Password" required>
                                    </div>
                                </div>
                            </div>

                            <div class="col-sm-2 col-xs-12">

                            </div>

                            <div class="col-sm-8 col-xs-12">
                                <div class="col-sm-6 col-xs-6">
                                    <a href="custreg.html"><button 
    id="cus_register" class="info" type="button">Register</button></a>
                                </div>
                                <div class="col-sm-6 col-xs-6">
                                    <a href="#"><button id="cus_login" 
class="info" type="button">Login</button></a>



                                </div>

JavaScript代码(在document.ready函数中完成):

代码语言:javascript
复制
$('#cus_login').click(function() {
    $.ajax({
        url: 'LoginServlet',
        type: 'POST',
        contentType: 'application/json',
        dataType: 'json',
        data: JSON.stringify({
            username : $("#cus_name").text(), 
            pw : $("#cus_password").text(), 
            method : "customer"
        }),
        success: function(result) {
            var obj = result;
            if(result.status == true) {
                alert("Success!");
            }
            else{
                alert("Login failure, please check and try again");
            }
        }
    });
});

最后是servlet代码,用于测试值是否正在被发送:

代码语言:javascript
复制
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("Servlet reached successfully");

    RequestDispatcher custdispatch = 
 request.getRequestDispatcher("CustProfile.html");
    RequestDispatcher busdispatch = 
 request.getRequestDispatcher("BusEntry.html");

    boolean isValid = false;
    String method = request.getParameter("method");
    String username = request.getParameter("username");
    String pw = request.getParameter("pw");
    System.out.println(method + username + pw);

我一直得到3个空值。这肯定是ajax和servlet之间的问题。如果您查看method属性,它不是从用户输入或任何html元素获取的,它是硬编码的,但即使它在servlet中也会返回null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-09 10:41:55

答:使用getVal()确实是正确的选择。问题不是js从html中提取出来的。问题是servlet不能从ajax POST中提取数据。原因是因为数据被设置为json,但是servlet不能读取json格式,所以下面的代码:

代码语言:javascript
复制
JsonObject data = new Gson().fromJson(request.getReader(), JsonObject.class);
    String method = data.get("method").getAsString();
    String username = data.get("username").getAsString();
    String pw = data.get("pw").getAsString();

数据变量是json ajax post参数转换成的java对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54521420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档