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)の場合:</p>
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>
症状:
showHelloWorld() が実行されると、アラート ボックスに次のように表示されます。
����2、
!()VCodeLineNumberTabledoGetR(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V Exceptions"# SourceFile TestAjax.java* Hello World * text/plain$%&UTF-8'&()*+&TestAjaxjavax/ servlet/http/HttpServletjava/io/IOExceptionjavax/servlet/ServletException&javax/servlet/http/HttpServletResponsesetContentType(Ljava/lang/String;)VsetCharacterEncoding getWriter()Ljava/io/PrintWriter;java/io/PrintWriterwrite!
*�� FN,�,�,�-��?@ABC
その中に「Hello World」が含まれていることに注意してください。ただし、正しい応答には「Hello World」のみが含まれている必要があります。応答にこれらすべてのがらくたがあるべきではありません。
コードと展開を何百万回もチェックしましたが、まだ手がかりが見つかりません。
この問題に光を当ててください。どうもありがとうございます!