JQuery, Java Servlet Examplet within Eclipse WTP
JQuery, Java Servlet Examplet within Eclipse WTP
有人能给我一个例子,告诉我如何在HTML页面中通过JQuery对Java Servlet进行ajax调用吗(请发布HTML页面、调用和Servlet类的完整代码)。我想在Eclipse中的动态Web项目中做到这一点。我想也必须修改web.xml才能做到这一点,所以请解释如何修改这个文件。是否有其他必须修改的文件?
提前致以问候和感谢,Michael
首先我创建Servlet,它没有任何额外的代码来处理Ajax请求,所以在我的示例中,我从请求中获得两个参数,添加它们并返回一个字符串和结果,非常简单。
@WebServlet("/CalculatorServlet")
public class CalculatorServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Get the parameters from the request
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
int result = Integer.parseInt(param1) + Integer.parseInt(param2);
String responseResult = "The result is " + result;
response.setContentType("text/plain");
response.getOutputStream().write(responseResult.getBytes());
}
}
我使用的是Servlet容器的3.0版本,这样我就可以用注释@WebServlet指定Servlet Url映射的信息,而且我不需要修改我的web.xml。
Html非常简单,它有两个输入来获取操作数,它有3个按钮,第一个按钮在没有Ajax的情况下调用servlet,第二个按钮用Ajax调用servlet来获取表单的参数,最后一个按钮用Ajax调用,但它使用json发送参数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Calculator</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<fieldset>
<legend>Parameters</legend>
<form id="form1" action="CalculatorServlet" method="get">
<label for="param1" > Operand 1</label>
<input type="number" id="param1" name="param1">
<label for="" id="param2">Operand 2</label>
<input type="number" id="param2" name="param2">
<div>
<input type="submit" value="Submit without Ajax">
<input type="button" value="Submit with Ajax" id="btnCall1">
<input type="button" value="Submit param1 and 2" id="btnCall2">
</div>
</form>
</fieldset>
<script>
(function() {
$("#btnCall1").click(function() {
$.ajax({
url : "CalculatorServlet",
type: "get",
data: $("#form1").serialize(),
dataType: "text",
success: success,
error: error
});
});
$("#btnCall2").click(function() {
var param1Value = $("#param1").val();
$.ajax({
url : "CalculatorServlet",
type: "get",
data: {param1: param1Value, param2: 2},
dataType: "text",
success: success,
error: error
});
});
function success(data, textStatus, jqXHR)
{
alert(data);
}
function error(jqXHR, textStatus, errorThrown)
{
alert("error "+textStatus);
}
})();
</script>
</body>
</html>
*观察:*我使用get方法,因为我想用无ajax调用来显示答案,所以应该使用POST。我用Tomcat7.0测试了这个例子。如果你需要接收要序列化为对象的数据(你需要接收一个对象),或者返回需要用于通信的对象JSON,并且在servlet中使用一些JSON序列化程序,我建议你GSON o Jackson,这样你就可以接收一个JSON字符串作为参数并在servlet中反序列化,以响应将你的对象序列化为JSON并发送响应,如果您发送JSON,您需要更改jquery ajax调用的数据属性,以便data:"JSON"
- Eclipse编辑器中无法访问的代码
- 用于 Eclipse 的 JavaScript 编辑器插件
- 如何使用Javascript在Eclipse中关闭选项卡
- 如何为Eclipse安装JavaScript编辑器
- 将JS项目导入eclipse时出错
- Tern 在 Eclipse 中没有定义
- 任何好的 JavaScript Eclipse 插件
- Java 警告 (?) 在 Eclipse (Juno) 中显示为 JavaScript 代码
- 如何让 Eclipse 在 Javascript 文档中执行自动 javadoc 注释
- Xhtml 中 JavaScript 的 Eclipse 格式删除了 //<![CDATA[ 标记
- Angular 的新手 - 在 eclipse 中的设置无法正常工作
- Ui-view within ui-view
- Fancybox within Jquery Cycle Slide
- 在Eclipse中执行Protractor测试
- 终于有办法让重构在Eclipse Kepler中的JavaScript、HTML项目中发挥作用了吗
- 使用Eclipse GAE运行PhantomJS
- '角度'在Eclipse中Node Express项目的javascript文件中没有定义
- JQuery, Java Servlet Examplet within Eclipse WTP
- 如何在Eclipse中运行和调试AngularJS应用程序
- 在Eclipse中输入分号或大括号时自动格式化代码