写了一个SERVLET 程序,用来输出一张图片.
代码能正常输出,但是,不懂两句代码的差别.
InputStream is = this.getClass().getResourceAsStream("/imgs/mm.jpg"); InputStream is = getServletContext().getResourceAsStream("/imgs/mm.jpg");为什么我使用第一种方法,可以输出.而使用第2种方法,则找不到文件??????????
public class FirstServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException 
{
try
{
    response.setContentType("image/jpeg");
    OutputStream os = response.getOutputStream();
    InputStream is = this.getClass().getResourceAsStream("/imgs/mm.jpg");     
           // 下面的代码是书本上的,但是有错误,
           //InputStream is = getServletContext().getResourceAsStream("/imgs/mm.jpg");          
    BufferedInputStream bis = new BufferedInputStream(is);
    BufferedOutputStream bos = new BufferedOutputStream(os);
    
    byte[] read = new byte[40960];
    int size=0;
    
    size = bis.read(read);
    
    while(size != -1)
    {
        bos.write(read,0,size);
        size = bis.read(read);
    }
    
    bis.close();
    bos.flush();
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage()+"-------IOException");
}
catch(Exception e)
{
    System.out.println(e.getMessage()+"---------Exception");
}
}
}

解决方案 »

  1.   

    或者 this.getServletContext().getResourceAsStream(("/imgs/mm.jpg"));
      

  2.   

    路径不一样.
    this.getClass()对应的是FirstServlet类的路径

    getServletContext()对应的是Servlet的路径
      

  3.   

    根路径问题. 问题在哪里???getServletContext().getResourceAsStream("/imgs/mm.jpg");的根路径在哪里??我的图片的路径是在 classes\imgs\mm.jpg;
      

  4.   


    我应该怎么样写?
    才能得到正确的图片路径信息呢?
    //getServletContext().getResourceAsStream("/imgs/mm.jpg");
      

  5.   

    应该是当前web root下的\imgs\mm.jpg;
    如tomcat
      webapps
       |
       +-----mytest (current web root)
              |
              +----WEB-INF
              |      +--classes
              +----servlets
              +---imgs 应该在此