Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过两种不同的方法将数据从HTML发送到Servlet_Javascript_Jquery_Html_Servlets - Fatal编程技术网

Javascript 通过两种不同的方法将数据从HTML发送到Servlet

Javascript 通过两种不同的方法将数据从HTML发送到Servlet,javascript,jquery,html,servlets,Javascript,Jquery,Html,Servlets,我一直在将数据从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" VA

我一直在将数据从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>
但它不起作用,有人能看出我做错了什么吗??或者我应该使用不同的方法?非常感谢您的帮助!!:)

下面是我的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>");
    }
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”){
ServletOutputStream out=response.getOutputStream();
试一试{
out.println(“+”);
out.println(“+”);
字符串名称=request.getParameter(“用户名”);
//字符串注释=request.getParameter(“注释”);
out.println(“名称:“+Name+”
”); //out.println(“注释:“+Comment+”
”); } 捕获(可丢弃的t){ out.println(“

”); t、 printStackTrace(新打印流(输出)); out.println(“

”); } out.println(“”); }


您的表单似乎正在使用
GET
请求,而您的ajax正在执行
POST
请求。您的服务可能正在查找
GET
参数。将ajax请求更改为使用
GET
而不是
POST

var username = "you username here";
window.location = "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client?username=" + username;

首先是键,而不是值(变量)

好的,我想我知道你想做什么。AJAX请求不是你想要的。据我所知,你试图加载一个servlet并显示它,而根本不需要与你的页面交互

您只需在javascript中执行以下操作

使用ajax请求将servlet主体返回到done方法,这将有助于在当前页面上显示信息,而无需重新加载

您当前正在做的是将servlet响应主体附加到查询的末尾,从而重定向到错误的位置


额外信息:使用Ajax的替代方法是让servlet返回一些html,但不必返回整个页面,然后使用此响应填充当前页面的一部分。

它做了什么?您是否尝试过提醒
msg
查看它显示了什么?msg说“保存的数据:Name:username
此外,我不会在Ajax中使用done,因为您不知道状态。使用成功/失败回调-或者至少自己使用“Success”并接受失败的Ajax调用。@mattmgrath您也不需要
}中的'msg'。完成(函数(msg){
如果您在返回中未使用MSG。我尝试更改POST以获取put,但服务器端仍无法获取变量。谢谢,但它仍然不起作用。这与我对window.location所做的操作有关吗?这是加载servlet的不正确方法吗?您到底在尝试如何处理来自的响应ajax请求?您希望ajax请求返回什么?我只是想看看是否发送了数据,但这不是必需的,我真正想做的就是发送变量,然后加载servlet并查看其值您现在正在做什么:您有一个名为username的变量,您通过post将其发送到服务器,发送后,您更改了位置。尝试使用window.location.href='xxxxxxxxxxxxxxxxx',不幸的是,它在服务器端仍然为空。我添加了上面的servlet代码以查看是否有错误。它对我来说运行正常。在我将代码修改为在ge中使用
username
而不是
q
之前,您是否复制并粘贴了代码t参数?事实上,我刚刚看到我声明URL错误,我会再试一次
data: { "username": username }
var username = "you username here";
window.location = "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client?username=" + username;