第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在提交響應后,java.lang.IllegalStateException:Nan

在提交響應后,java.lang.IllegalStateException:Nan

在提交響應后,java.lang.IllegalStateException:Nan這種方法java.lang.IllegalStateException:不能在提交響應后轉發(fā)我找不到問題所在。有什么幫助嗎?    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);                 ResultSet rs1 = st1                        .executeQuery("select FileId,Description from cs2k_Files "                                 + " where FileId like 'M%' and co_code = "                                 + ccode);                 ResultSetMetaData rsm = rs1.getMetaData();                 int cCount = rsm.getColumnCount();                 while (rs1.next()) {                     Vector vCol1 = new Vector();                     for (int j = 1; j <= cCount; j++) {                         vCol1.addElement(rs1.getObject(j));                     }                     vRow.addElement(vCol1);                 }                 rs1 = st1                        .executeQuery("select FileId,NotAllowed from cs2kGroupSub "                                 + " where FileId like 'M%' and GroupId = '"                                 + GroupId + "'" + " and co_code = " + ccode);                 rsm = rs1.getMetaData();                 cCount = rsm.getColumnCount();
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

初學者之間常見的誤解是他們認為forward()sendRedirect(),或sendError()會神奇地退出并“跳出”方法塊,從而忽略代碼的殘余。例如:

protected void doPost() {
    if (someCondition) {
        sendRedirect();
    }
    forward(); // This is STILL invoked when someCondition is true!}

因此,事實并非如此。它們的行為當然不會與任何其他Java方法不同(預期System#exit()當然)。當someCondition在上面的例子中是true你就這樣打電話給我forward()sendRedirect()sendError()在相同的請求/響應下,機會是大的你會得到例外:

java.lang.IllegalStateException:不能在提交響應后轉發(fā)

如果if語句調用forward()之后你會打電話給我sendRedirect()sendError(),則會引發(fā)以下異常:

在提交響應后無法調用sendReDirect()

要解決這個問題,您需要添加一個return;事后陳述

protected void doPost() {
    if (someCondition) {
        sendRedirect();
        return;
    }
    forward();}

..或者介紹另一個塊。

protected void doPost() {
    if (someCondition) {
        sendRedirect();
    } else {
        forward();
    }}

若要確定代碼中的根本原因,只需搜索調用forward()sendRedirect()sendError()而不退出方法塊或跳過代碼的剩余部分。這可以在特定代碼行之前的同一個servlet中,但也可以在特定servlet之前調用的任何servlet或過濾器中。

如果sendError(),如果您的唯一目的是設置響應狀態(tài),請使用setStatus()相反。


另一個可能的原因是servlet寫入響應,而forward()將被調用,或者在相同的方法中被調用。

protected void doPost() {
    out.write("some string");
    // ... 
    forward(); // Fail!}

響應緩沖區(qū)大小在大多數(shù)服務器中默認為2kb,因此如果向其寫入超過2kb的響應緩沖區(qū)大小,則將提交響應緩沖區(qū)大小。forward()也會以同樣的方式失?。?/trans>

java.lang.IllegalStateException:不能在提交響應后轉發(fā)

解決方案很明顯,只是不要寫入servlet中的響應。這是JSP的責任。您只需設置一個請求屬性,如下所示request.setAttribute("data", "some string")然后在JSP中打印,如下所示${data}..另見我們的servlet wiki頁面學習如何正確地使用servlet。

另見:


不相干對于具體的問題,JDBC代碼正在泄漏資源。把它也修好。有關提示,請參見在JDBC中,連接、語句和ResultSet應該多久關閉一次?


查看完整回答
反對 回復 2019-06-05
?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

即使添加返回語句也會引發(fā)此異常,只有以下代碼是解決方案:

if(!response.isCommitted())// Place another redirection


查看完整回答
反對 回復 2019-06-05
?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

通常,您在完成重定向之后會看到此錯誤,然后嘗試將更多的數(shù)據(jù)輸出到輸出流。在我過去見過這種情況的情況下,通常是嘗試重定向頁面的過濾器之一,然后仍然轉發(fā)到servlet。我無法立即發(fā)現(xiàn)servlet有什么問題,所以您可能也想看看您已經(jīng)設置的任何過濾器。

編輯:對診斷…問題的更多幫助

診斷此問題的第一步是確切地確定拋出異常的位置。我們假設它是由行拋出的

getServletConfig().getServletContext()
                  .getRequestDispatcher("/GroupCopiedUpdt.jsp")
                  .forward(request, response);

但是您可能會發(fā)現(xiàn),在代碼的后面拋出它,在代碼中,在嘗試執(zhí)行轉發(fā)操作之后,您將嘗試輸出到輸出流。如果它來自上面的行,那么它意味著在該行之前的某個地方,您可以:

  1. 將數(shù)據(jù)輸出到輸出流,或
  2. 事先做了另一次重定向。

祝好運!


查看完整回答
反對 回復 2019-06-05
  • 3 回答
  • 0 關注
  • 1923 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號