gpt4 book ai didi

java - Servlet 和 AJAX 通信

转载 作者:行者123 更新时间:2023-12-02 08:37:37 25 4
gpt4 key购买 nike

我的 Java servlet 和 Ajax 请求之间确实存在通信问题。更多相关信息:

index.html 的绝对路径(包括 JavaScript/Ajax 请求):http://localhost:9080/chat/index.html

在同一文件夹中的 servlet: MyChat.class

请求的工作方式如下:

var url = "http://localhost:9080/chat";

var name = document.getElementById("username").getAttribute("value");
var message = document.getElementById("message").getAttribute("value");

var tosend = name+","+message;

request.open('GET', url, true);
request.send(tosend);
request.onreadystatechange = interpretRequest;

我有一个公式,用户只需输入姓名和消息以及 usernamemessage<input>我的 HTML 文件中的标签。 Ajax 请求确实有效,但它不与 servlet 通信。我也不知道 System.out.println() 的输出在哪里去。没有填充日志文件...Servlet 如下所示:

public class MyChat extends HttpServlet
{
private static final long serialVersionUID = 1L;

private ArrayList<String> myMessages = new ArrayList<String>();

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
BufferedReader r = request.getReader();

while(r.readLine() != null)
{
// split the words at the ','
String[] tmp = r.readLine().split(".\\s");
myMessages.add(tmp[0]+" "+tmp[1]);
}

//response.setContentType("text/html");
PrintWriter out = response.getWriter();

Iterator<String> it = myMessages.iterator();
while(it.hasNext())
{
out.println(it.next());
System.out.println(it.next());
}
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
}

最佳答案

您指定的 URL 不是您的 servlet。

就像索引页的 URL 是 http://<server>:<port>/<webapp name>/<resource>您的 servlet 的 URL 需要在 web.xml 中进行映射对应于 <resource> 的文件网址的一部分。

例如,如果您有一个 Controller servlet,您会期望在 web.xml 中出现类似以下内容的内容:

<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>ControllerServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>/*.do</url-pattern>
</servlet-mapping>

调用“ Controller ”servlet 的 URL 将遵循 http://<server>:<port>/<webapp name>/<anything>.do 的形式。 .

关于java - Servlet 和 AJAX 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1047797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com