Servlet编程中用Servlet显示图片是经常用到的一项技术,SUN公司为我们提供了实现的方法,那么具体在Servlet编程中如何用Servlet显示图片呢,本文将向你介绍。

在Servlet编程顶用servlet做一个盯梢图片点击技能,这个模块挺大,这儿说说用Servlet显现图片部分。先说说用Servlet显现图片的一个流程:

Servlet编程之用Servlet显现图片(servlet显示图片)  Servlet编程 Servlet显示图片 第1张

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。

我想根本流程都讲完了,下面我把代码拿给我们看一下,我们天然一望而知了:

  1. packagexjw.personal.servet;
  2. importjava.io.*;
  3. importjavax.servlet.*;
  4. importjavax.servlet.http.*;
  5. importcom.sun.image.codec.jpeg.*;

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

  1. importjavax.imageio.stream.*;
  2. importjava.awt.*;
  3. importjava.awt.image.BufferedImage;
  4. publicclassShowPictureextendsHttpServlet{
  5. privatestaticfinalStringGIF="image/gif;charset=GB2312";

完成Servlet显现图片之设定输出的类型

  1. privatestaticfinalStringJPG="image/jpeg;charset=GB2312"
  2. publicvoidinit()
  3. throwsServletException{}
  4. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
  5. throwsIOException,ServletException
  6. {doPost(request,response);}
  7. publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
  8. throwsIOException,ServletException
  9. {
  10. Stringspec=request.getParameter("spec");
  11. //输出图片的类型的标志    
  12. intint_spec=Integer.parseInt(spec);
  13. if(spec==1){
  14. StringimagePath="/jfgg/b1.jpg";
  15. //图片相对web运用的方位}
  16. else{
  17. StringimagePath="/jfgg/b2.gif";

图片相对web运用的方位

  1. }
  2. OutputStreamoutput=response.getOutputStream();//得到输出流
  3. if(imagePath.toLowerCase().endsWith(".jpg"))//运用编码处理文件流的状况:
  4. {response.setContentType(JPG);//设定输出的类型
  5. //得到图片的实在途径
  6. imagePath=getServletContext().getRealPath(imagePath);

得到图片的文件流

  1. InputStreamimageIn=newFileInputStream(newFile(imagePath));
  2. //得到输入的编码器,将文件流进行jpg格局编码
  3. JPEGImageDecoderdecoder=JPEGCodec.createJPEGDecoder(imageIn);//得到编码后的图片目标
  4. BufferedImageimage=decoder.decodeAsBufferedImage();//得到输出的编码器
  5. JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(output);
  6. encoder.encode(image);//对图片进行输出编码
  7. imageIn.close();//封闭文件流}
  8. if(imagePath.toLowerCase().endsWith(".gif"))//不运用编码处理文件流的状况:
  9. {response.setContentType(GIF);ServletContextcontext=getServletContext();//得到布景目标
  10. InputStreamimageIn=context.getResourceAsStream(imagePath);//文件流
  11. BufferedInputStreambis=newBufferedInputStream(imageIn);//输入缓冲流
  12. BufferedOutputStreambos=newBufferedOutputStream(output);//输出缓冲流
  13. bytedata[]=newbyte[4096];//缓冲字节数
  14. intsize=0;size=bis.read(data);
  15. while(size!=-1){
  16. bos.write(data,0,size);
  17. size=bis.read(data);}
  18. bis.close();bos.flush();//清空输出缓冲流
  19. bos.close();}
  20. output.close();}
  21. }  

***是怎么调用,你能够简略的映射一下servelt,我就将servet的名映射为ShowPic, 所以下代码调用    

  1. ﹤html﹥   
  2.  ﹤body﹥   
  3.  ﹤imgsrc="ShowPic?spec=2"﹥﹤/a﹥    
  4. ﹤/body﹥    
  5. ﹤/html﹥

Servlet编程之用Servlet显现图片的介绍便是这姿态了,经过上述操作图片便显现在htm上了,作用怎么呢?

【修改引荐】

  1. 什么是Servlet以及常用Servlet API有哪些
  2. JSP Servlet实例之主动跳转到犯错页
  3. JSP Servlet开发开始那点事
  4. Java Servlet API文档有用阐明
  5. Java Servlets(JSP)开发环境
转载请说明出处
知优网 » Servlet编程之用Servlet显现图片(servlet显示图片)

发表评论

您需要后才能发表评论