Java 为什么AJAX没有';我不能在本地工作

Java 为什么AJAX没有';我不能在本地工作,java,jquery,ajax,json,servlets,Java,Jquery,Ajax,Json,Servlets,我一直在关注安,我做了和他一样的事情,但我不知道为什么这对我不起作用。以下是我所做的 index.jsp 在标题处,我放置了一些源脚本 <script src="../javascript/jquery-1.10.2.js"></script> <script src="../javascript/basic.js"></script> <link rel="stylesheet" href="css/basic.css" type="tex

我一直在关注安,我做了和他一样的事情,但我不知道为什么这对我不起作用。以下是我所做的

index.jsp
在标题处,我放置了一些源脚本

<script src="../javascript/jquery-1.10.2.js"></script>
<script src="../javascript/basic.js"></script>
<link rel="stylesheet" href="css/basic.css" type="text/css" media="screen">
UpdateUsername.java
servlet

Map<String, Object> map = new HashMap<String, Object>();
        boolean isValid = false;
        String username = request.getParameter( "username" );
        if( username != null && username.trim().length() != 0 )
        {
            isValid = true;
            map.put( "username", username );
        }
        map.put( "isValid", isValid );
        write( response, map ); // WRITE METHOD
response.setContentType( "application/json" );
        response.setCharacterEncoding( "UTF-8" );
        response.getWriter().write( new Gson().toJson( map ) );
在它为我工作之前,我需要一些设置吗?当我测试它时,url是这样的
http://localhost:8080/TestProject/?username=test
,似乎
帖子不起作用。我错过什么了吗

更新
我从
$('#displayName')向下滑动(500)
$('#displayName')。向下滑动(500)

顺便说一下,我确实将
字符集
和其他一些字符集更改为
UTF-8
。在
index.jsp的顶部

在头部

web.xml


更新服务器名
com.ajax.servlets.UpdateUsername
更新服务器名
/更新
结果的图像
首先,
http://localhost:8080/TestProject/?username=test
看起来不像是
POST
请求
POST
请求不将请求参数作为
URL
的一部分发送。如果要发送
POST
,并随附发送一些参数,则需要将参数作为正文的一部分发送

Jasoon Sperske评论:


另外,
data:$('updateUsername')
需要一个值和名称,如:data:
{username:$('updateUsername').val()}
我猜数据类型:'jason'应该是数据类型:'json'

是否可以是下一行中的“

$('#displayName'),slideDown(500);

另外,
data:$('#updateUsername')
需要一个值和名称,如:
data:{username:$('#updateUsername').val()}
实际上仔细检查后,我认为您需要调用
$('#updateUsername').serialize()
,因为选择器是表单本身。我尝试了数据:
username:$('#updateUsername').val()
但帖子仍然不起作用我也尝试了$('#updateUsername')。serialize()但不起作用either@newbie是否确实要在请求正文中传递参数,而不是作为URL的一部分传递?是否将servlet映射到
/TestProject/
?您将无法通过命令行测试带有
doPOST()
的servlet(它们是不同的HTTP请求类型)您的servlet名称是否在web.xml中更新,您的类是否位于包中?我正在my servlet上使用注释
@WebServlet(“/update”)
。单击submit按钮,您能告诉我发生了什么吗,在浏览器中显示console的输出,以了解服务器中是否存在404个错误或500个内部错误我更新了问题查看web xml和图像,我删除了注释并在web xml上进行了设置,还查看了其他答案。他们指出了代码中的几个其他问题。
response.setContentType( "application/json" );
        response.setCharacterEncoding( "UTF-8" );
        response.getWriter().write( new Gson().toJson( map ) );
<servlet>
<servlet-name>UpdateUsername</servlet-name>
<servlet-class>com.ajax.servlets.UpdateUsername</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UpdateUsername</servlet-name>
<url-pattern>/update</url-pattern>
</servlet-mapping>
$('#displayName'),slideDown(500);