Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用doGet()编写HTML代码_Java_Html_Servlets - Fatal编程技术网

在Java中使用doGet()编写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

我想使用servlet在Java内部编写HTML代码。我阅读了有关方法
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 to
super
。OP的代码虽然包含HTML语法错误,但在所有Tomcat版本的空白webapp项目中都能正常工作。没关系。重写方法可以引发更少的异常(但不会更多)。