我使用在Ubuntu 12.04上运行的Eclipse EE Juno来测试简单的servlet。因此,我在Eclipse
中使用以下命令安装了一个Web工具包sudo apt-get install libwebkitgtk-1.0-0
当我运行servlet时,内部浏览器会显示我在servlet中使用的html标记。像这样(这个问题在Firefox中不会发生)
<h3>Hello from servlet!!!</h3>
这是servlet的代码
package org.javaweb;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SimpleServlet
*/
@WebServlet("/SimpleServlet")
public class SimpleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter printWriter = response.getWriter();
printWriter.println("<h3>Hello from servlet!!!</h3>");
}
}
错误在哪里? 如何纠正这个??
谢谢!
答案 0 :(得分:2)
我想你必须提到正确的响应类型为text / html。如同,将其添加到您现有的代码中,它应该适合您:
response.setContentType("text/html;charset=UTF-8");
与Eclipse的内部浏览器相比,Firefox或Web浏览器通常足够智能,可以猜测它是否是HTML内容并正确呈现。
答案 1 :(得分:2)
尝试将内容类型设置为HTML。
response.setContentType("text/html");
我猜测eclipse内置浏览器并不总是等待html内容,而firefox或任何其他常见浏览器总是填写内容类型,如果没有给出。