Java无法从我的servlet获得任何响应

时间:2017-02-08 11:46:49

标签: javascript java angularjs servlets

我的jsp页面:

<table>
 <thead class="scroll-thead">
          <tr> 
           <th>Key</th>
           <th>Value</th>
          </tr> 
         </thead>
         <tbody class="scroll-tbody-y table-body">
          <tr> 
          <td>Blah</td> 
          <td>Blah</td> 
          </tr> 
</tbody>
</table>

mainController.js

<button data-ng-click="login()">Fetch data from server</button>

FileEditServlet.java

    $scope.login = function() {
    var xmlHttpReq = new XMLHttpRequest();
    xmlHttpReq.open('POST', "http://localhost:8080/WEB-war/FES", false);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/json');

    xmlHttpReq.send(JSON.stringify($scope.strings));
    if (xmlHttpReq.status === 200) {
        alert(xmlHttpReq.responseText)
    }

}

的web.xml

@WebServlet("/FileEditServlet")
public class FileEditServlet extends HttpServlet {

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

    System.out.println("inside do POST");

    PrintWriter out = response.getWriter();
    out.println("response");
    response.getWriter().write("do something omg");

 }

按下按钮从服务器获取数据并调用登录功能后,将调用mainContrller中的函数,输出为空。我的意思是警报是空的,就像没有回应一样。

此外,控制台中没有任何内容,但有2个字:&#34; test test&#34; 我在代码中找不到。

2 个答案:

答案 0 :(得分:0)

我会把这个写成一个答案,我认为可能比附加评论更清楚。

我认为web.xml和js部分不应该导致问题。返回字符串test test肯定应该在代码中的某处,在项目中进行文本搜索(如果您使用的是Eclipse)。

但问题是,我猜是因为你尝试从getWriter两次调用HttpServletResponse方法 - 第一个方法会在流中写入println秒。您可以尝试删除其中一个。这是一个例子:

@WebServlet("/FileEditServlet")
public class FileEditServlet extends HttpServlet {

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

    System.out.println("inside do POST");

    PrintWriter out = response.getWriter();
    out .getWriter().write("do something omg");

 }

答案 1 :(得分:-2)