gpt4 book ai didi

java - 在 JSP Servlet 中处理 Ajax 请求

转载 作者:行者123 更新时间:2023-11-30 06:42:09 24 4
gpt4 key购买 nike

我正在使用 JSP 和 Ajax 的示例来抛出名称和总和,但我没有看到包含结果的窗口。这些是我的文件

我找不到错误,或者他们认为在哪里,或者按照你的说法我可以修复它吗?

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

最佳答案

我在我的上下文中重新运行您的代码,并在进行以下修复后按预期运行。尝试一下:

  • 您的 JQuery 可能未正确加载。尝试确保此导入 URL 有效并运行 <script type="text/javascript" src="resources/js/jquery.js"></script>
  • 考虑使用一些 jSTL taglib 支持来加载上下文相关资源,如下所示 <script src="<c:url value="/resources/js/jquery.min.js" />"></script>

  • 放置您的<script></script> s 到正文的末尾。实际上,在 body 末尾加载 JS 文件是一个很好的做法,这样就不会阻塞页面加载。

更多提示:

  • 除非您确实计划任何自定义事物,否则无需在 Servlet 中声明构造函数

  • 如果您不使用doGet()那么不要将其保留在 Servlet 中。

关于java - 在 JSP Servlet 中处理 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44223180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com