怎么用Servlet显示图片

本篇内容主要讲解“怎么用Servlet显示图片”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Servlet显示图片”吧!

黄骅网站建设公司创新互联公司,黄骅网站设计制作,有大型网站制作公司丰富经验。已为黄骅近1000家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的黄骅做网站的公司定做!

在Servlet编程中用servlet做一个跟踪图片点击技术,这个模块挺大,这里说说用Servlet显示图片部分。先说说用Servlet显示图片的一个流程:

1. Servlet编程中设置response的输出类型: 

对应的语句--response.setContentType("image/gif;charset=GB2312") ,

response 便能输出gif图片,"image/gif;charset=GB2312"便是输出类型,当然你可以输出 "image/jpg;charset=GB2312"类型文件。

2. 实现Servlet显示图片之得到文件流:

servlet是以流的形式件图片文件从服务器读出,通过response将流发到浏览器的。

3. 实现Servlet显示图片之得到输出流:

对应的语句--OutputStream output = response.getOutputStream(); 当然,处理图片文件需要以二进制形式的流。

4. 实现Servlet显示图片之文件流的编码(但也不一定必须编码的,如果不是文件流,则必须编码) 所以我给大家一个用编码的代码和不用编码的代码.

顺便说一句,sun公司仅提供了jpg图片文件的编码api。

我想基本流程都讲完了,下面我把代码拿给大家看一下,大家自然一目了然了:

package xjw.personal.servet;  import java.io.*;  import javax.servlet.*;  import javax.servlet.http.*;  import com.sun.image.codec.jpeg.*;

Sun公司仅提供了jpg图片文件的编码api

import javax.imageio.stream.*;  import java.awt.*;  import java.awt.image.BufferedImage;  public class ShowPicture  extends HttpServlet{       private static final String GIF="image/gif;charset=GB2312";

实现Servlet显示图片之设定输出的类型   

private static final String JPG="image/jpeg;charset=GB2312";       public void init()    throws ServletException     {     }       public void doGet(HttpServletRequest request, HttpServletResponse response)                    throws IOException, ServletException       {        doPost(request, response);     }      public void doPost(HttpServletRequest request, HttpServletResponse response)                   throws IOException, ServletException     {                  String spec=request.getParameter("spec");  //输出图片的类型的标志   int int_spec=Integer.parseInt(spec);          if(spec==1)            {              String imagePath="/jfgg/b1.jpg";  //图片相对web应用的位置        }          else        {                String imagePath="/jfgg/b2.gif";

图片相对web应用的位置     

  }                     OutputStream output = response.getOutputStream();//得到输出流         if(imagePath.toLowerCase().endsWith(".jpg"))//使用编码处理文件流的情况:         {     response.setContentType(JPG);//设定输出的类型            //得到图片的真实路径                  imagePath = getServletContext().getRealPath(imagePath);

得到图片的文件流   

InputStream imageIn = new FileInputStream(new File(imagePath));           //得到输入的编码器,将文件流进行jpg格式编码       JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);         //得到编码后的图片对象           BufferedImage image = decoder.decodeAsBufferedImage();   //得到输出的编码器    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);             encoder.encode(image);//对图片进行输出编码            imageIn.close();//关闭文件流       }          if(imagePath.toLowerCase().endsWith(".gif"))//不使用编码处理文件流的情况:         {    response.setContentType(GIF);    ServletContext context = getServletContext();//得到背景对象       InputStream imageIn=context.getResourceAsStream(imagePath);//文件流           BufferedInputStream bis=new BufferedInputStream(imageIn);//输入缓冲流       BufferedOutputStream bos=new BufferedOutputStream(output);//输出缓冲流      byte data[]=new byte[4096];//缓冲字节数       int size=0;     size=bis.read(data);      while (size!=-1)    {         bos.write(data,0,size);              size=bis.read(data);    }      bis.close();    bos.flush();//清空输出缓冲流           bos.close();    }        output.close();    }  }

***是如何调用,你可以简单的映射一下servelt,我就将servet的名映射为ShowPic,  于是下代码调用

﹤html﹥    ﹤body﹥    ﹤img src="ShowPic?spec=2"﹥﹤/a﹥  ﹤/body﹥  ﹤/html﹥

到此,相信大家对“怎么用Servlet显示图片”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:怎么用Servlet显示图片
文章转载:http://pwwzsj.com/article/pseeep.html