【发布时间】:2013-12-11 09:25:00
【问题描述】:
这里的奇怪问题我似乎无法解决。
我在 Eclipse Java EE 中工作,我有一个名为 Process(映射到 /process)的 servlet
有处理链接
<a href="process?intent=order">Checkout</a>
进程内是一个 doGet 方法,验证是否有用户登录,然后重定向到结帐页面。 (这有效)结帐页面包含项目,每个项目都有一个单独的输入,我有一个单独的 doPost 方法来更新数据库..获取要更新的输入如下
<input id='ID created in servlet' value='decided in servlet'>
紧随其后
<button id="update">Button</button>
我有以下JS
var json = [];
$('#update').click(function(){
$('.items').find('input').each(function(){
var tmp = "{id:" + $(this).attr('id') + ",quantity:" + $(this).val() + "}";
json.push(tmp);
});
$.ajax( {
url : 'process',
type : 'POST',
data : json,
dataType : 'json',
success: function(data) {
alert("success");
}
});
});
所以,我猜有两个问题。
首先,这是向不同项目中的不同 servlet 发送请求。但是,当使用 doGet 访问时,它可以工作。 (我有不同的 doPost 代码)是否有任何原因无法识别我的 Process.java 文件中的 doPost 方法?什么可能导致它搜索另一个 servlet?
其次,我知道在 servlet 中获取数据后该做什么,但我不知道如何实际访问数据。它通过'data:'中的jquery传递,那么我将如何在servlet中访问它?
【问题讨论】:
-
您的 javascript 代码是否在不同路径的另一个文件中?
-
我试过 url:'projectName/process' 无济于事。它仍然在另一个项目中调用进程。 @AlexandreLavoie js 位于 MyProject/jsp/page.jsp 中的
-
Aman 的意思是,您使用的是相对路径,因此调用是相对于当前 URL 的。您可以将
url : 'process'更改为url : '/your-context-path/process'并替换为正确的路径。 -
项目名称是什么?您在 Eclipse 中给出的名称?通读我刚刚发布的答案。我猜应该会有所帮助:)
标签: java ajax jakarta-ee servlets