相关疑难解决方法(0)

java.lang.IllegalStateException:在提交响应后不能(转发| sendRedirect |创建会话)

抛出此方法

java.lang.IllegalStateException:在提交响应后无法转发

我无法发现问题.有帮助吗?

    int noOfRows = Integer.parseInt(request.getParameter("noOfRows"));
    String chkboxVal = "";
    // String FormatId=null;
    Vector vRow = new Vector();
    Vector vRow1 = new Vector();
    String GroupId = "";
    String GroupDesc = "";
    for (int i = 0; i < noOfRows; i++) {
        if ((request.getParameter("chk_select" + i)) == null) {
            chkboxVal = "notticked";
        } else {
            chkboxVal = request.getParameter("chk_select" + i);
            if (chkboxVal.equals("ticked")) {
                fwdurl = "true";
                Statement st1 = con.createStatement();
                GroupId = request.getParameter("GroupId" + i);
                GroupDesc = request.getParameter("GroupDesc" + i); …
Run Code Online (Sandbox Code Playgroud)

servlets response forward illegalstateexception requestdispatcher

90
推荐指数
3
解决办法
26万
查看次数

如何在写入后清除PrintWriter的内容

晚上好,我想知道如何清除写入PrintWriter的数据,即打印后是否可以从PrintWriter中删除数据?

在这个servlet中,我将一些文本打印到响应中,并在#i表示的行中删除所有以前打印的数据并打印新内容:

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    String uName = request.getParameter("uName");
    String uPassword = request.getParameter("uPassword");

    if (uName .equals("Islam")) {
        out.println("Valid-Name");
        if (uPassword !=null) {
            if (uPassword .equals("Islam")) {
                // # clear the writer from any printed data here
                out.println("Valid-password");
            } else {
                out.println("");
                out.println("InValid-password");
            }
        }
    } else {
        out.println("InValid-Name");

    }

}
Run Code Online (Sandbox Code Playgroud)

注意:我尝试了out.flush()但旧的打印文本仍然存在

java servlets printwriter

9
推荐指数
1
解决办法
1万
查看次数

如何防止“Broken pipe”关闭我的 tomcat 网站?

我有一个 Tomcat 8 Web 应用程序,它使用 2 MB png 图像作为“启动/登录页面”背景。该图像在外部样式表中被引用。

如果我清除浏览器缓存,直接请求图像的 URL,但在图像加载之前离开图像,它将完全杀死我的 Web 应用程序。它无法为任何请求提供更多响应。

我收到此错误:

org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
        at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:396)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:344)
        at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:421)
        at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:409)
        at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)
        at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:1795)
        at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:919)
        at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:400)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at other.JsCssImgResponseHeaderFilter.doFilter(JsCssImgResponseHeaderFilter.java:36)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at other.CatchAnyExceptionFilter.doFilter(CatchAnyExceptionFilter.java:39)
Run Code Online (Sandbox Code Playgroud)

我正在尝试捕获该异常(或任何与此相关的异常)并显示友好的 ErrorPage.jsp,但我无法重定向到 ErrorPage,因为响应已经提交。

我无法在测试环境中复制它,但我可以在生产中随意打破它。

有谁知道我有哪些选择可以解决此类问题?提前致谢。

顺便说一句,这是我的 Filter 类的 doFilter 方法的样子:

    public void doFilter(ServletRequest req,
                     ServletResponse res,
                     FilterChain fc) throws IOException, ServletException
{
    HttpServletRequest request …
Run Code Online (Sandbox Code Playgroud)

java tomcat8

6
推荐指数
1
解决办法
2万
查看次数

响应.SendRedirect("Location")的java.lang.IllegalStateException

我是Java EE世界的初学者.我一直在尝试使用Servlets和JSP创建一个简单的登录系统,遵循此处提供的指南http://come2niks.com/?p=1589.这就是我的doPost()的样子.

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
     PrintWriter out = response.getWriter();
    processRequest(request, response);
     try
    {
        System.out.println("In the Login Servlet");
        LoginBean user = new LoginBean();
        user.setUserName(request.getParameter("username"));
        user.setPassword(request.getParameter("pass"));
        LoginDAO db = new LoginDAO();
        user = db.login(user);

        System.err.println("I am Back !");
        if(user.isValid())
        {
            System.err.println("VALIDED.. ReDirecting..");
            System.err.println("Getting Session");
            HttpSession session = request.getSession(true);
            System.err.println("Got Session");
            session.setAttribute("currentSessionUser",user);
            System.err.println("Attribute Set");
            response.sendRedirect("Login_Success.jsp");


        }else
        {
            System.err.println(" NOT VALIDED.. ReDirecting..");
            response.sendRedirect("Login_Failed.jsp");
           out.println(" NOT VALIDED.. ReDirecting.."); 

        }


    } catch (Throwable exc)
    {
        System.out.println(exc); …
Run Code Online (Sandbox Code Playgroud)

servlets java-ee

5
推荐指数
1
解决办法
5万
查看次数

Spring Boot 响应已经提交了请求资源的异常

我正在使用部署在 WildFly 8.2 服务器上的 Spring Boot (v1.2.4)。在应用程序中,我使用的是 font awesome v4.3。

对于三个文件,每个文件都小于 100kb,我得到“响应已经提交的异常”,如下所示。

  1. fontawesome-webfont.eot
  2. fontawesome-webfont.woff
  3. fontawesome-webfont.ttf

还有许多其他资源 > 100kb 并且仍然可以成功提供服务。

堆栈跟踪如下

    2015-06-15 15:52:29,547 ERROR [org.springframework.boot.context.web.ErrorPageFilter] (default task-3) Cannot forward to error page for request [/resources/fonts/fontawesome-webfont.eot] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false: java.io.IOException: An established connection was aborted …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc wildfly spring-boot

5
推荐指数
1
解决办法
1万
查看次数