2017-05-28 149 views
0

我正在用JSP和Ajax來引發一個名稱和一個和的例子,但是我沒有看到帶有結果的窗口。這些是我的文件在JSP中處理Ajax請求Servlet

我無法找到錯誤,或者他們認爲的地方,或者我可以修復它?

的index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 

    <!DOCTYPE html> 
    <html> 
<head> 
<title>Demo Ajax</title> 

<link href="/resources/css/miPrimerCSS.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="resources/js/jquery.js"></script> 
<script type="text/javascript"> 



    $(document).ready(function(){ 
    $('#unHola').click(function(){ 
     var nombreCompleto = $('#nombreCompleto').val(); 
     $.ajax({ 
      type:'POST', 
      data: { 
       nombreCompleto : nombreCompleto, 
       action: 'demo1' 
      }, 
      url: 'AjaxController', 
      success: function(result){ 
       $('#resultado1').html(result); 
      } 

     }); 
    }); 

    $('#unaSuma').click(function(){ 
     var numero1 = $('#numero1').val(); 
     var numero2 = $('#numero2').val(); 
     $.ajax({ 
      type:'POST', 
      data: { 
       numero1 : numero1, 
       numero2 : numero2, 
       action: 'demo2' 
      }, 
      url:'AjaxController', 
      success : function(result){ 
       $('#resultado2').html(result); 
      } 

     }); 
    }); 



    }); // $(document).ready(function() 

</script> 
</head> 
<!-- <span id="titulo">Un Saludo</span> 
<p style="font-size: 20px">Un Hola<p> 

--> 
<body> 

    <fieldset> 
     <h1>Un Hola</h1> 
      <form> 
       Nombre <input type="text" id="nombreCompleto"><br> 
       <input type="button" value="Hola" id="unHola"><br> 
       <span id="resultado1"></span> 
      </form> 
    </fieldset> 


    <fieldset> 
      <h2>Una Suma</h2> 
      <form> 
       Numero 1 <input type="text" id="numero1"><br> 
       Numero 2 <input type="text" id="numero2"><br> 
       Resultado <span id=resultado2></span><br> 
       <input type="button" value="Suma" id="unaSuma"> 


      </form> 
    </fieldset> 



    </body> 

</html> 

AjaxController.java

package controladores; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class AjaxController 
*/ 
@WebServlet("/AjaxController") 
public class AjaxController extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public AjaxController() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("text/plain "); 

     PrintWriter out = response.getWriter(); 
     String action = request.getParameter("action"); 

     if(action.equals("demo1")){ 
      String nombreCompleto = request.getParameter("nombreCompleto"); 
      out.println("Hola " + nombreCompleto); 
     } 
     else if (action.equals("demo2")){ 
      int a = Integer.parseInt(request.getParameter("numero1")); 
      int b = Integer.parseInt(request.getParameter("numero2")); 
      out.println(a + b); 
     } 



    } 

} 

的例子應該是這樣

enter image description here

回答

0

我在我的上下文中重新運行您的代碼,並在以下修復後按預期運行。試試看:

  • 您的JQuery可能無法正確加載。儘量確保此導入URL是有效的,並運行<script type="text/javascript" src="resources/js/jquery.js"></script>
  • 考慮使用一些JSTL標籤庫支持加載上下文相關的資源這樣<script src="<c:url value="/resources/js/jquery.min.js" />"></script>

  • 將您<script></script> s到身體的末端。實際上,在主體的末尾加載JS文件是一種很好的做法,因此它不會阻止頁面加載。

一些更多的提示:

  • 你不必聲明構造函數在你的Servlet,除非你真的打算對任何自定義的東西

  • 如果你不使用doGet()那麼不守它在Servlet中。

+0

感謝您的信息! –

+0

我通過直接將URL添加到URL而不是從「Web-Content」中找到解決方案:「」 –

+0

是的,那是附加靜態資源的另一種方式。它也工作和喧鬧自由。 –