<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的家園

    我的家園

    這是個很常見的問題,度娘和谷歌動手就能查到,可是今天還是遇到了,因為一直做業(yè)務(wù)研發(fā),沒有直接關(guān)注這些細(xì)節(jié)。


    這兩個異常如下:
    java.lang.IllegalStateException: Cannot forward after response has been committed
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:313)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at com.servlet.MyServlet2.doGet(MyServlet2.java:22)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.filter.MyFilter.doFilter(MyFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Unknown Source)
     
    java.lang.IllegalStateException
        at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
        at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:662)
        at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:325)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.filter.MyFilter.doFilter(MyFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Unknown Source)
     
    只要在重定向后加return就可以了。
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");        
        HttpServletRequest hrequest = (HttpServletRequest)request;
        String path = hrequest.getContextPath();
        String basePath = hrequest.getScheme()+"://"+hrequest.getServerName()+":"+hrequest.getServerPort()+path+"/";
        // 獲得請求的全路徑
        String reUrl = hrequest.getRequestURL().toString();
        // 是否包含參數(shù)
        int index = reUrl.indexOf("?");
        String re = "";
        if(index == -1){
            re = reUrl.substring(basePath.length());
        }else{
            re = reUrl.substring(basePath.length(), index);
        }
        // 是否是請求資源
        if(!isResource(re)){
            // 是否有訪問的權(quán)限
            boolean isCheck = ConnUril.checkUrl(re);
            if(!isCheck){
                request.getRequestDispatcher("/error.jsp").forward(request,response);
                // 必須加返回,否則報錯
                return ;
            }
        }
        // 繼續(xù)執(zhí)行
        chain.doFilter(request, response);
    }
     

    報錯原因很簡單,轉(zhuǎn)向后再去執(zhí)行關(guān)于response的操作,就等于執(zhí)行了兩遍轉(zhuǎn)向,因此會報錯!

     

    問題簡單,也需要留意,再簡單的問題也是問題,成功在細(xì)節(jié)和那些別人以為是傻冒的問題中。


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲午夜爱爱香蕉片| 亚洲理论精品午夜电影| 日本人成在线视频免费播放| 亚洲高清无在码在线无弹窗| 日本免费人成视频播放| 国产午夜成人免费看片无遮挡| 中中文字幕亚洲无线码| 亚洲中文字幕不卡无码| 一二三四在线观看免费高清中文在线观看| 黄页网址在线免费观看| 亚洲无人区视频大全| 亚洲人成人网站在线观看| 无码国产精品一区二区免费| 一级女性全黄久久生活片免费| 91亚洲国产成人久久精品网址| yy6080亚洲一级理论| 真人做人试看60分钟免费视频| 七次郎成人免费线路视频| tom影院亚洲国产一区二区| 在线观看亚洲av每日更新| 午夜男人一级毛片免费| 人人玩人人添人人澡免费| 日本一区二区三区在线视频观看免费 | 美女被免费网站91色| 亚洲欧美成人一区二区三区| 亚洲av无码av制服另类专区| 国产乱子影视频上线免费观看| 亚欧色视频在线观看免费| 日韩av无码免费播放| 羞羞漫画在线成人漫画阅读免费| 亚洲成aⅴ人片在线观| 久久久久亚洲精品无码系列| 免费一级大黄特色大片| 成年人免费视频观看| 日本免费一区二区在线观看| 最近免费mv在线观看动漫 | 亚洲美女免费视频| 永久免费av无码入口国语片| 一级特级aaaa毛片免费观看| 亚洲精品无码日韩国产不卡av| 久久精品国产亚洲AV蜜臀色欲|