当前位置: 首页 > 知识库问答 >
问题:

Tomcat:从JavaScript调用时,Java Servlet响应奇怪的字符

柴英锐
2023-03-14

在testajax.java中(位置:webapps/servlets/,是编译的):

public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
{ 
        String data = "Hello World";
        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(data);
}

在HTML(JavaScript)中:

function showHelloWorld(inputForm) {
                var xhr = new XMLHttpRequest();
                    xhr.onreadystatechange = function() {
                        if (xhr.readyState == 4) {
                            var data = xhr.responseText;
                            alert(data);
                        }
                    }
                 xhr.open('GET', '../../examples/servlets/TestAjax.class', true);
                 xhr.send(null);
}

在web.xml中:

<servlet> 
<servlet-name>TestAjax</servlet-name> 
<display-name>TestAjax</display-name> 
<servlet-class>TestAjax</servlet-class> 
</servlet>  
<servlet-mapping> 
<servlet-name>TestAjax</servlet-name> 
<url-pattern>/servlet/TestAjax</url-pattern> 
</servlet-mapping>

症状:

我已经检查了一百万次代码和部署,仍然没有发现任何线索。

请你把这个问题弄清楚,我将不胜感激!

共有1个答案

宰父子安
2023-03-14

您正在尝试加载一个已编译的Java类客户端,这很正常,您会得到奇怪的字符。您可能想要的是调用servlet路径:

xhr.open('GET', '<%=request.getContextPath()%>/servlet/TestAjax', true);

记住 /Servlet/testajax ,这是到Servlet类的外部映射。应用程序容器通过此路径将请求转发给它。

 类似资料:
  • 这是个模糊的问题。因此,请随时询问任何具体数据。 我们有一个tomcat服务器,运行两个web服务。一个tomcat使用spring构建。90%的任务使用mysql,JSON缓存使用mongo(10%)。另一个web服务是使用grails编写的。这两项服务都是中等大小的代码库(每项约35k行代码) 计算仅在有HTTP请求(无批处理)时发生。每个请求大约有2000个数据库点击率(我知道它非常庞大,我

  • 在使用Spring WebFlux(5.2.6版)测试以下控制器时,我目前面临一个奇怪的问题 该控制器使用Spring webflux starter和一个简单的主类嵌入到“hello world”Spring启动应用程序中。Class只有一个属性“name”。 现在,我有以下测试(Junit5)来确保上述控制器的响应 你以为两次考试都能通过?我也是。不幸的是,第一个失败了,它告诉我响应体根不是j

  • 问题内容: 我有这种方法,它使用字符串的可变参数,从中创建一个列表,然后尝试删除列表的第一个元素。 但是,一旦被调用,就会抛出一个。我的猜测是返回的List- Type不支持remove方法。我对么?我有什么选择? 问题答案: 仅在数组周围提供薄包装。该包装器使您可以使用API 对阵列执行 大多数 操作。JavaDoc的引文: 返回由指定数组支持的 固定大小的 列表。[…]此方法充当基于数组的AP

  • 问题内容: 我有这种方法,它使用字符串的可变参数,从中创建一个列表,然后尝试删除列表的第一个元素。 但是,一旦被调用,就会抛出一个。我的猜测是返回的List- Type不支持remove方法。我对么?我有什么选择? 问题答案: 仅在数组周围提供薄包装。该包装器使您可以使用API 对阵列执行 大多数 操作。JavaDoc的引文: 返回由指定数组支持的 固定大小的 列表。[…]此方法充当基于数组的AP

  • 我有以下控制器: 重启控制器。爪哇 我已经使用mockMvc对web层进行了测试,用户服务bean按照标准进行了模拟: 重启控制器监控测试。爪哇 test正在返回404而不是200状态,并且没有返回正文中的错误消息,这暗指404不是“真正的”404(它没有返回,因为正确的响应正在返回,它返回是因为其他原因)。我还认为其他404状态中的一些可能会在相同的上下文中返回。

  • 我在使用FPDF库生成pdf文件时得到了这个输出。 %PDF-1.3.0 obj 我的代码: