繁体   English   中英

如何在Servlet中以JSON格式获取表单数据

[英]how to get the form data in JSON format in servlet

我的html代码是

<form action="/FirstServlet/Profile" method="post"  class="login">
    UserName: <input type="text"  id="uName" name="name"><p>
    Password: <input type="password"  id="password" name="password"><br>
    <input type="submit" id="button" value="login">
</form>

和JavaScript代码是

<script  src="js/jquery-3.2.1.min.js"></script>
<script  src="js/jquery.serializeObject.js"></script>
<script  src="js/Gruntfile.js"></script> 
<script>
   $(document).ready(function(){
            var form=$('form.login').serializeObject();
            alert(form);
            form.submit(function(){
                $.ajax({
                    type:form.attr('method'),
                    url:form.attr('action'),
                    dataType:'json',
                    data:Json.stringify(form),
                    success:function(data){

                    }
                });
            });

        });
</script>

但是我仍然以这种格式得到答案

name=zeeshan&password=zeeshan@123

我想以json格式获得答案,例如:

{"name":"zeeshan","password":"zeeshan@123"}

我的servlet代码获取数据

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));


    String json = "";
    if(br != null){
        json = br.readLine();
    }
    System.out.println(json);
}

我搜索了很多内容,每个人都说此代码的输出在json中,但实际上我没有以这种格式获取它。

如何获取我的输出为JSON格式?

看来您在发送前将其加密了,这可能是问题所在

您可以在javascript中尝试这种解决方法:

 data:{'json':JSON.stringify($(form).serializeArray())},

在servlet中:

String json=request.getParameter("json");

编辑:

 data:{'json':JSON.stringify($(form).serializeObject())},

更改

<input type="submit" id="button" value="login">

<input type="button" id="button" value="login">

单击输入类型Submit,直接提交表单并重新加载页面,因此永远不会调用您的脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM