1.11M Members

illegal state exception in getOutputStream and dispatcher.forward

 
0
 

Hello Everyone,

Im needing a bit of help here.

First, Im trying to let client download a file from server and save it on client's pc.

When client clicks on button "DOWNLOAD", it will call a servlet that will download the file.

Expected outcome is that a SAVE AS DIALOG BOX will pop up so that client can choose output destination folder.

This is my CODE

path = getServletContext().getRealPath("/")+ "files/";
		
		String filename = path + "users.txt";
		String disHeader = "Attachment;Filename=\"users.txt\"";
		
		response.setContentType("APPLICATION/OCTET-STREAM");
		response.setHeader("Content-Disposition",disHeader);
		
		System.out.println(filename);
		File fileToDownload = new File(filename);
		FileInputStream fis = new FileInputStream(fileToDownload);
		
		try {
			//response.reset();
			
			ServletOutputStream fos = response.getOutputStream();
			
			System.out.println("after ng get output stream");
			
			int i;
			
			while ((i = fis.read()) != -1) {
				fos.write(i);
				//response.getWriter().write(i);
			}
			
			fis.close();
		}
		catch (Exception e) {
			System.out.println(e);
		}
		
		System.out.println("ntapos ang whikle");
		
		//response.reset();
		
		infoMsg = "* Files were copied to C:/Temp/Backup/";
		
		request.setAttribute("infoMsg", infoMsg);
		
		destinationPage = "/erf_home.jsp";
		
		dispatcher = getServletContext().getRequestDispatcher(destinationPage);
		
		
		System.out.println("dispatcher nkuha");
		
		//response.reset();
		dispatcher.forward(request, response);

What happens is that I get IllegalStateException because I use the getOutputStream and the issue a forward request.

If I comment

dispatcher.forward(request, response);

All works well but the page is not redirected to the next page.

If I use

response.reset()

save dialog box does not appear.

I know that the code is in error.

Can you please give suggestions on what i can do so that save dalog box will appear and after download page will be redirected to another page (HOME PAGE)

Thanks for all your help.

Isn't it about time forums rewarded their contributors?

Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.

It's as simple as contributing editorial or replying to discussions labeled or OP Kudos

You
This is an OP Kudos discussion and contributors may be rewarded
Post:
Start New Discussion
View similar articles that have also been tagged: