我在这里做有我的Java Servlet和Ajax请求之间的通信probleme。更多关于它:

到的index.html绝对路径(包括JavaScript / AJAX请求): HTTP://本地主机:9080 /聊天/ index.html中

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

和该请求是这样工作:

VAR URL = “ HTTP://本地主机:9080 /聊天”;

变种名称=的document.getElementById( “用户名”)的getAttribute( “值”)。 VAR =消息的document.getElementById( “消息”)的getAttribute( “值”);

变种tosend =名+ “” +消息;

request.open( 'GET',网址,TRUE); request.send(tosend); request.onreadystatechange = interpretRequest;

我有一个公式推,其中用户只是在名字和消息和“用户名”和“信息”类型在我的HTML文件标签。 Ajax请求的作品,这是肯定的,但它并没有与servlet的通信。我也没有一个想法,其中来自的System.out.println()的输出去。没有日志文件被填满......并且servlet是这样的:

公共类MyChat延伸的HttpServlet {     私有静态最后长的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);
}

}

有帮助吗?

解决方案

您所指定的网址是不是你的servlet。

就像URL到索引页http://<server>:<port>/<webapp name>/<resource>的URL到您的servlet需要在与URL对应的web.xml部分<resource>文件的映射。

例如,如果你有你期望像在你的web.xml以下一个控制器servlet:

<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>

这将调用“控制器”的servlet然后将遵循形式http://<server>:<port>/<webapp name>/<anything>.do的网址。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top