Java Jetty-查找EOF时端点输出未关闭

Java Jetty-查找EOF时端点输出未关闭,java,jakarta-ee,jetty,Java,Jakarta Ee,Jetty,在Jetty 9中访问此Servlet(使用GET或POST)时,我总是收到以下警告: package de.swt1321.servlet; 导入java.util.ArrayList; 导入java.io.OutputStream; 导入java.io.IOException; 导入javax.servlet.ServletException; 导入javax.servlet.http.HttpServlet; 导入javax.servlet.http.HttpServletRequest;

在Jetty 9中访问此Servlet(使用GET或POST)时,我总是收到以下警告:

package de.swt1321.servlet;
导入java.util.ArrayList;
导入java.io.OutputStream;
导入java.io.IOException;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
公共类ServletTest扩展了HttpServlet{
私有静态最终整数不可处理_实体=422;
私有静态final java.nio.charset.charset UTF8=java.nio.charset.charset.forName(“UTF8”);
private ArrayList persons=新ArrayList();
@凌驾
公共无效数据集(HttpServletRequest请求,
HttpServletResponse(res)引发ServletException,IOException
{
字节[]HTML=genHTML();
res.setStatus(HttpServletResponse.SC_OK);
res.setHeader(“内容类型”,“文本/html;字符集=utf8”);
res.setIntHeader(“内容长度”,HTML.length);
OutputStream os=res.getOutputStream();
write(HTML);
os.flush();
}
@凌驾
公共无效doPost(HttpServletRequest请求,
HttpServletResponse(res)引发ServletException,IOException
{
字符串firstName=req.getParameter(“firstName”);
字符串lastName=req.getParameter(“lastName”);
if(firstName==null | | lastName==null){
res.setStatus(不可加工实体);
返回;
}
添加(新人员(请求getParameter(“名字”)、请求getParameter(“姓氏”));
字节[]HTML=genHTML();
res.setStatus(HttpServletResponse.SC_OK);
res.setHeader(“内容类型”,“文本/html;字符集=utf8”);
res.setIntHeader(“内容长度”,HTML.length);
OutputStream os=res.getOutputStream();
write(HTML);
os.flush();
}
专用字节[]genHTML(){
字符串HTMLString=“”+
""+
"" +
“你好,世界!”+
"" +
表,th,tr{边框:1px纯黑色;}+
"" +
""+
“姓氏”;
用于(人:人){
HTMLString+=“”+person.firstName+“”+person.lastName+“”;
}
HTMLString+=“”+
""+
""+
"" +
""+
"" +
"" +
"";
返回HTMLString.getBytes(UTF8);
}
私人静态类人{
公共字符串名;
公共字符串lastName;
公众人物(字符串名、字符串名){
this.firstName=firstName;
this.lastName=lastName;
}
}
}
web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0"> 

    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <display-name>Hello World App</display-name>
        <load-on-startup>1</load-on-startup>
        <servlet-class>de.swt1321.servlet.ServletTest</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

</web-app>

HelloWorldServlet
你好世界应用程序
1.
de.swt1321.servlet.ServletTest
HelloWorldServlet
/你好
这是我应该担心的吗?如果是,如何解决此问题?这到底意味着什么

OutputStream os = res.getOutputStream().write(HTML);

除非您要自己处理输出流的生命周期,否则不要麻烦保留对它的本地引用。

这是因为您正在刷新输出流。 只需移除op.flush();让Jetty来处理

OutputStream os = res.getOutputStream().write(HTML);