This week's giveaway is in the Testing forum. We're giving away four copies of TDD for a Shopping Website LiveProject and have Steven Solomon on-line! See this thread for details.
hi : I have got a question when I try to practice how to use getOutputStream in the following example. The question is where shall I put the file bart.gif. I tried several location such as /WEB-INF/classes , docment-root. It always complains to me "file not found". Any thoughts on that. Thank you.
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("images/gif"); File f = new File("bart.gif"); byte[] bytearray = new byte[(int) f.length()]; FileInputStream is = new FileInputStream(f); is.read(bytearray); OutputStream os = res.getOutputStream(); os.write(bytearray); os.flush(); }
Grant: I tried this with a jpg (image/jpg - mime type). The file was directly under the Web application DocumentRoot. I also got the same error. Only thing i changed is used a forward slash just before the image file name. So I guess in your case you would use
Grant: I need to recant my suggestions in the previous post. It then worked because my file was in the root drive (d:\). I realized and tested out that when you create a File instance the argument must be a path to the file you want to create File instance upon. So in your case it should be as follows: File f = new File ("d:\\whateverdir\\whateversubfolder\\bart.gif"); I am using W2K hence the above file path. I think your best bet for portablity and all is to use the getRequestDispatcher() and/or getNamedDispatcher() methods of ServletContext object. HTH
You need to use ServletContext's getResource() or getResourceAsStream() to do your job. You can get ServletContext as getServletContext() of GenericServlet. Thanks, Bhushan
Maybe he went home and went to bed. And took this tiny ad with him:
free, earth-friendly heat - a kickstarter for putting coin in your pocket while saving the earth