2017-05-28 144 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

是的,那是附加静态资源的另一种方式。它也工作和喧闹自由。 –