当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.illegalstateexception无法转发。响应已提交到jsp

谢建业
2023-03-14

我使用下面的jsp和得到java.lang.IllegalStateExc0019不能转发。

我不明白这是怎么回事?为什么它给这些例外?

我试了很多。请帮我解决这个问题。

   String contentType = request.getContentType();
    InputStream tmpInStream =null ;
DataInputStream myInput = null;
boolean isMultipartContent = ServletFileUpload.isMultipartContent(request);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try 
{
    List  fields = upload.parseRequest(request);
    Iterator it = fields.iterator();
    while (it.hasNext()) 
    {
FileItem fileItem = (FileItem)it.next();
boolean isFormField = fileItem.isFormField();
if (isFormField==false) 
{
    fileName=fileItem.getName();
    log.printOut("[Upload] (When form field is false ) FileName: " + fileItem.getName() + " SIZE (BYTES): " + fileItem.getSize() );
    tmpInStream = fileItem.getInputStream();
    myInput =  new DataInputStream(tmpInStream);
    String tmpCSVData = fileItem.getString();
}
else 
{
    log.printOut("[Upload] (When form field is true ) FileName: " + fileItem.getName() + " SIZE (BYTES): " + fileItem.getSize() );
    csv = fileItem.getString();
}   
    }
}
catch (Exception e) 
{
    log.printErr("[Upload] Error while getting file :"+ e);
}


String thisLine; 
XMLParser xmlParser = new XMLParser();
String InputXml="";
String OutputXml="";
String csvType="";

try{

    Properties properties = new Properties();
    properties.load(new FileInputStream(System.getProperty("user.dir")+File.separator+"ips.properties"));
    String Ipsviewname=properties.getProperty("CsvIpsViewName");
    String Tranviewname=properties.getProperty("CsvTransViewName");
    log.printOut("[Upload] TableName (IPS)"+ Ipsviewname );
    log.printOut("[Upload] TableName (Transaction)"+ Tranviewname );
    while ((thisLine = myInput.readLine()) != null)
    {
String strar[] = thisLine.split(",");
log.printOut("[Upload] Line Split length "+ strar.length );
if(strar.length!=11 && strar.length!=5)
{
    RequestDispatcher rd = request.getRequestDispatcher("DownloadDocs.jsp?result=Invalid CSV");
    rd.forward(request, response);
}
if(strar.length==11)
{
    csvType="ips";
}
else
{

    csvType="Transaction";
}
log.writeXML("[Upload] INPUTXML "+ InputXml );
OutputXml = sessionBean.execute(InputXml);
log.writeXML("[Upload] OUTPUTXML "+ OutputXml );
xmlParser.setInputXML(OutputXml);
    }
   request.setAttribute ( "page","upload" );
   request.setAttribute ( "file", fileName );
   RequestDispatcher rd = request.getRequestDispatcher("csvtabl.jsp?csvType="+csvType+"");
   rd.forward(request, response);
}
catch (Exception e) 
{   
    RequestDispatcher rd =request.getRequestDispatcher("DownloadDocs.jsp?result=Invalid CSV");
    rd.forward(request, response);
    log.printErr("[Upload] Error while reading file :"+ e );}

共有1个答案

吕成业
2023-03-14

您需要在第一次调用RequestDispatcher后停止执行。前进方法,否则代码将继续执行。在大多数情况下,您希望在每次转发后返回

在你的例子中,你在time循环中转发,代码继续执行,并试图在方法的末尾再次转发。

if(strar.length!=11 && strar.length!=5) {
    RequestDispatcher rd = request.getRequestDispatcher("DownloadDocs.jsp?result=Invalid CSV");
    rd.forward(request, response);
    return ;
}

(也包括在其他地方返回)。

 类似资料:
  • 我知道这里已经讨论过至少一百万次了,但是每个servlet在调用forward()之前都会重定向或刷新输出。我有同样的问题,但我没有做任何与输出。我的servlet只接受请求参数并提交到数据库,并在请求上设置一个属性。然后,它将请求转发给jsp,jsp显示属性。我在Tomcat7上使用Servlet3.0。下面是我的servlet doPost方法,后面是转发到的jsp: JSP: 我相信我可能错

  • 我使用过滤器来确定请求的页面是否具有有效的会话。 这是我的密码<代码>网络。xml: 过滤器类别: 我有一个登录页面,用于检查用户是否有效。如果用户有效,则将控制转移到此servlet。 这在没有过滤器的情况下可以工作,但是当我将控件转发到“//showuserImages.jsp”时,过滤器会显示一个错误。

  • 我试图创建一个api的商店以下属性:StoreId,名称,位置,电话,产品列表(ProductId,对象,价格,股票),产品列表的大小 问题是,当存储区与列表中的项目不一致时,它会以以下方式响应: 但是,如果所有的商店都没有项目,就没有问题,但是如果所有的商店都没有项目,api就没用了。

  • 在我的应用程序中执行一些操作时,我得到了 Java . lang . illegalstateexception无法调用sendError() 当我再次重新加载页面时,它会正常工作一段时间,但一段时间后它再次显示相同的异常。我如何克服这个异常? 以下是例外: 支柱.xml

  • 问题内容: 我正在创建一个宁静的API,它将使用服务器中的json。但是我遇到了异常: org.springframework.web.client.RestClientException:无法提取响应:在org.springframework找不到响应类型为[[Lexamples.dto.DummyDTO;]]和内容类型为[text / json; charset = utf-8]的HttpMe

  • 我正在创建一个restful API,它将使用来自服务器的json。但我得到了以下例外: 组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[[Lexamples.dto.DummyDTO;]的合适HttpMessageConverter和org.springframework.web.client.HttpMessageConve