在Java中使用doGet()编写HTML代码
我想使用servlet在Java内部编写HTML代码。我阅读了有关方法在Java中使用doGet()编写HTML代码,java,html,servlets,Java,Html,Servlets,我想使用servlet在Java内部编写HTML代码。我阅读了有关方法doGet()的内容,并编写了这个简单的示例 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter( ); response.setContentType("text/html"); out.println
doGet()
的内容,并编写了这个简单的示例
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter( );
response.setContentType("text/html");
out.println("<H1>Hello from a Servlet</h2>");
public void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出IOException{
PrintWriter out=response.getWriter();
response.setContentType(“text/html”);
println(“来自Servlet的你好”);
但是它没有在浏览器中显示任何内容,有人能告诉我出了什么问题吗?通过调用
response.getWriter();
得到的标准PrintWriter
不会自动刷新其缓冲区。这是一个bug/功能
将out.flush()
添加到doGet()的末尾
还要注意,PrintWriter.close()
不会刷新。这是一个bug;PrintWriter/PrintStream
是唯一在关闭时不会刷新的输出类
[编辑]为了确保没有其他问题困扰您,请在方法中添加断点并在调试器中运行它。您还应该添加注释@Override
,以确保您的方法签名正确。看起来您实际上没有覆盖doGet。您错过了ServletException
异常。您是如何配置的在servlet容器中查看servlet?请尝试首先检查服务器日志,可能是out.close();是否可以帮助我认为您应该发布整个类,问题可能是您没有从Servlet继承,或者甚至您不知道如何将其发布到应用程序服务器,无论如何-我们需要更多信息。提示:如果编辑器删除了您的称呼,那么这是有原因的。混淆它以避开该原因不是一个好主意.Aaron,你确定刷新是必要的吗?看起来你可以只写,而不刷新。是的,我确定。结果是输出进入PrintWriter
的缓冲区,该缓冲区封装了底层的OutputStream
。Servlet API将刷新OutputStream
,但不会关闭或刷新打印Writer
。这意味着输出永远不会被刷新到流中,因此您在浏览器中不会得到任何东西。胡说。如果您遇到过这种情况,那么您使用的是一个坏的HttpServletReponseWrapper
实现。@BalusC:您是指像Tomcat 5.5、Tomcat 6和7这样的坏的实现吗?不,是一个自定义的HttpServletResponseWrap根据应用程序中某个地方的
实现(检查所有筛选器)。未正确委派flush()
或flushBuffer()
method tosuper
。OP的代码虽然包含HTML语法错误,但在所有Tomcat版本的空白webapp项目中都能正常工作。没关系。重写方法可以引发更少的异常(但不会更多)。