写了一个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");
}
}
}
解决方案 »
- 由于没学过正则表达式,麻烦帮忙处理这个问题。
- 我的网站链接其他网站的图片地址,在我的网站上不显示
- java ftp 文件上传,创建多层目录
- 求解 getHibernateTemplate问题
- tomcat配置https ,,能不能只把某一个应用配置为HTTPS,,,其他应用还是http
- 远程网站访问本网站时怎么获得远程网站的域名?
- 我现在做了一个网站,在本地已经调试好了,请教如何发布
- 硬是连接不上去
- help about servlet,如何上传文件?
- 前台ajax接收json数据和后台返回json数据
- 请问在JSF中怎么使用getRequestScope传值?
- 我晕了 !用jsp做前台 后台用sqlserver2000怎么也连不上 请各位大虾帮忙啊!!小地感激不尽
this.getClass()对应的是FirstServlet类的路径
而
getServletContext()对应的是Servlet的路径
我应该怎么样写?
才能得到正确的图片路径信息呢?
//getServletContext().getResourceAsStream("/imgs/mm.jpg");
如tomcat
webapps
|
+-----mytest (current web root)
|
+----WEB-INF
| +--classes
+----servlets
+---imgs 应该在此