首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理jsp中的Ajax成功和错误

处理jsp中的Ajax成功和错误
EN

Stack Overflow用户
提问于 2018-02-15 05:13:47
回答 2查看 2.9K关注 0票数 1

我在JSP中有一个表单,它有两个输入框,还有提交按钮和清除按钮,如下所示

代码语言:javascript
运行
复制
<form name="loginForm" method="GET" action="Ajaxexample" id="loginForm">
 <table>
 <tr>
 <td>From Date</td><td><input type="text" name="n1" value=""/></td>
 </tr>
 <tr>
 <td>End Date</td><td><input type="text" name="n2" value=""/></td>
 </tr>
 <tr></tr>
 <tr>
 <td><input type="submit" name="validpro_insert" value="Insert"></td>
 <td><input type="reset" name="validpro_clear" value="Clear"></td>
 </tr>                     
 </table>
 </form>

由于我已经调用servlet,使用表单标记中的get方法,该方法用于通过JDBC从数据库中获取数据,并处理响应,因此我使用ajax如下所示

代码语言:javascript
运行
复制
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    

         processRequest(request, response);
         System.out.println("In get");
          PrintWriter out = response.getWriter();
          String responseStr = "";
          responseStr = addUser(request); // Return either error/success
          System.out.println("Reponse:" + responseStr);  
           response.setContentType("application/json"); 
           response.setCharacterEncoding("utf-8"); 
           response.getWriter().write(responseStr);
           out.print(responseStr);

由于我必须编写一些代码来从servlet中的DB获取数据,并将响应返回给ajax,该响应处理相同jsp上的成功和错误,如下所示

代码语言:javascript
运行
复制
<script type="text/javascript" src="js/jq.js"></script>   
   <script type="text/javascript">

        var form = $('#loginForm');
        form.submit(function () {
        $.ajax({
        type: form.attr('method'),
        url: form.attr('action'),
        data: form.serialize(),

          error: function (theRequest,textStatus, errorThrown) {
                     // Success = false;
                      alert (theRequest.responseText);
                      alert(errorThrown);
                   alert('No graph found');//doesnt goes here
            },
        success: function (data) {

                var result=data;
                alert(result);
        }     
                });
                return false;
            });
        </script>

但问题是,我无法从ajax中的servlet中获得任何价值来处理成功或错误。

由于servlet ()方法代码..如果还有其他问题,请告诉我。任何帮助都应该受到感谢。

EN

Stack Overflow用户

回答已采纳

发布于 2018-02-15 09:37:19

使用代码中的这些更改,它将成功运行。

代码语言:javascript
运行
复制
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) 

                 String responseSend = "";

            String from = request.getParameter("n1");
            String to = request.getParameter("n2");    

              if ((from == null) || (from.equals(""))) {

                System.out.println("From null");
                responseSend = "error";

            } 
              else if ((to == null) || (to.equals(""))) {

                System.out.println("End null");
               responseSend  = "error";

            }
              else{            
                      //jdbc code              
            System.out.println("got it");
            int n1 = Integer.parseInt(request.getParameter("n1"));
            int n2 = Integer.parseInt(request.getParameter("n2"));
            responseSend = "code";           
              }

             out.print(responseSend);

        }          
            }

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
           System.out.println("In get");
            processRequest(request, response);
    }

由于我添加了一个带有请求和响应参数的新方法processrequest(),它将在同一个jsp.Firstly上将文本/HTML返回到我们的Ajax代码中,我对ajax代码中的成功/错误感到困惑,但现在我发现

代码语言:javascript
运行
复制
 error: function (theRequest,textStatus, errorThrown) {
                          alert (theRequest.responseText);
                          alert(errorThrown);
                },

  success: function (data) {

                var result=data;
                alert(result);
        }   

当在给定的URL上没有找到servlet时,将调用错误,当它成功地使用给定类型和servlet URL调用servlet时,将调用成功。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48800333

复制
相关文章

相似问题

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