通过两种不同的方法将数据从HTML发送到Servlet
Sending Data from HTML to Servlet by two different methods
我一直在将数据从HTML发送到servlet,如下所示:
<form Action="http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client" Method="GET">
Username: <input type="text" name="username" size="20" value="@gmail">
<BR>
<input type="submit" VALUE="submit">
<input type="reset" value="reset">
</form>
其将变量Username发送到servlet。但我不想让点击提交来发送数据,我只想在不点击任何东西的情况下发布数据并加载servlet。我试过这个:
$(document).ready(function() {
var username = "foo@example.com";
$.ajax({
type: "POST",
url: "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client",
data: { username: "username" }
}).done(function( msg ) {
// alert( "Data Saved: " + username );
window.location = "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client?q=" + username;
});
});
但它不起作用,有人能看到我做错了什么吗??或者我是否应该使用不同的方法?非常感谢您的帮助!!:)
这是我的servlet方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");{
ServletOutputStream out = response.getOutputStream();
try {
out.println("<html><head><title>" + "</title></head>");
out.println("<body><h1>" + "</h1>");
String name = request.getParameter("username" );
//String comment = request.getParameter( "comment" );
out.println("Name:" + name + "<BR>");
//out.println("Comment: " + comment + "<BR>");
}
catch(Throwable t ) {
out.println("<P><pre>");
t.printStackTrace( new PrintStream(out) );
out.println ("</pre><P>");
}
out.println ("</body></html>");
}
您的JSON数据错误:
data: { "username": username }
首先键,比值(变量)
好吧,我想我知道你想做什么了。AJAX请求不是你想要的。据我所知,您正在尝试加载servlet并显示它,而根本不需要与页面交互。
您所需要做的就是在javascript中执行以下
var username = "you username here";
window.location = "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client?username=" + username;
使用ajax请求将servlet主体返回到done方法,这对于在不重新加载的情况下显示当前页面上的信息非常有用。
您目前正在做的是将servlet响应主体附加到查询的末尾,并将其重定向到错误的位置。
额外信息:使用Ajax的替代方法是让servlet返回一些html,但不一定是完整的页面,然后使用此响应填充当前页面的一部分。
您的表单似乎正在使用GET
请求,而您的ajax正在执行POST
请求。您的服务可能正在查找GET
参数。将ajax请求更改为使用GET
而不是POST
相关文章:
- 在同一个html页面中显示servlet响应而不隐藏表单
- 使用外部JS文件对Servlet进行更改'的HTML输出
- 如何在servlet中从动态html表单元素中检索值
- 通过两种不同的方法将数据从HTML发送到Servlet
- 从 html 向 servlet 发送数据
- 如何从 Servlet 获得 HTTP JSON 响应后更改 HTML 代码
- Java servlet 无法读取 html select 标记名称
- HTML+Ajax+servlet不起作用
- 使用 servlet Filter 将 Javascript 注入每个 HTML 页面
- 网站中的单页体系结构或应用程序在 html 导航中使用 servlet 而不打开新页面
- Java Servlet 总是在 AJAX GET 请求 SERVLET 时返回调用页面的 HTML 代码
- 输入框的按键(html)调用servlet而不更改浏览器地址栏中的URL
- 从servlet向js应用程序发送HTML会破坏Firefox中的数据
- 如何在单击html表单的不同按钮时调用不同的servlet
- 正在从Html向Servlet检索值
- 在html中单击锚点时调用文件下载servlet
- 如何使用jQuery/jS将数据从HTML页面发布到servlet
- 从HTML文件中读取json数组并在servlet中打印值
- 将JSON数组从Java Servlet传递到HTML
- 将数据从Servlet发送到Html