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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在提交響應(yīng)后,java.lang.IllegalStateException:Nan

在提交響應(yīng)后,java.lang.IllegalStateException:Nan

在提交響應(yīng)后,java.lang.IllegalStateException:Nan這種方法java.lang.IllegalStateException:不能在提交響應(yīng)后轉(zhuǎn)發(fā)我找不到問(wèn)題所在。有什么幫助嗎?    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貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

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

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

java.lang.IllegalStateException:不能在提交響應(yīng)后轉(zhuǎn)發(fā)

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

在提交響應(yīng)后無(wú)法調(diào)用sendReDirect()

要解決這個(gè)問(wèn)題,您需要添加一個(gè)return;事后陳述

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

..或者介紹另一個(gè)塊。

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

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

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


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

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

響應(yīng)緩沖區(qū)大小在大多數(shù)服務(wù)器中默認(rèn)為2kb,因此如果向其寫入超過(guò)2kb的響應(yīng)緩沖區(qū)大小,則將提交響應(yīng)緩沖區(qū)大小。forward()也會(huì)以同樣的方式失敗:

java.lang.IllegalStateException:不能在提交響應(yīng)后轉(zhuǎn)發(fā)

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

另見(jiàn):


不相干對(duì)于具體的問(wèn)題,JDBC代碼正在泄漏資源。把它也修好。有關(guān)提示,請(qǐng)參見(jiàn)在JDBC中,連接、語(yǔ)句和ResultSet應(yīng)該多久關(guān)閉一次?


查看完整回答
反對(duì) 回復(fù) 2019-06-05
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

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

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


查看完整回答
反對(duì) 回復(fù) 2019-06-05
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

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

編輯:對(duì)診斷…問(wèn)題的更多幫助

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

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

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

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

祝好運(yùn)!


查看完整回答
反對(duì) 回復(fù) 2019-06-05
  • 3 回答
  • 0 關(guān)注
  • 1934 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)