Servlet编程中用Servlet显示图片是经常用到的一项技术,SUN公司为我们提供了实现的方法,那么具体在Servlet编程中如何用Servlet显示图片呢,本文将向你介绍。
在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。
我想根本流程都讲完了,下面我把代码拿给我们看一下,我们天然一望而知了:
- packagexjw.personal.servet;
- importjava.io.*;
- importjavax.servlet.*;
- importjavax.servlet.http.*;
- importcom.sun.image.codec.jpeg.*;
Sun公司仅供给了jpg图片文件的编码api
- importjavax.imageio.stream.*;
- importjava.awt.*;
- importjava.awt.image.BufferedImage;
- publicclassShowPictureextendsHttpServlet{
- privatestaticfinalStringGIF="image/gif;charset=GB2312";
完成Servlet显现图片之设定输出的类型
- privatestaticfinalStringJPG="image/jpeg;charset=GB2312";
- publicvoidinit()
- throwsServletException{}
- publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsIOException,ServletException
- {doPost(request,response);}
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsIOException,ServletException
- {
- Stringspec=request.getParameter("spec");
- //输出图片的类型的标志
- intint_spec=Integer.parseInt(spec);
- if(spec==1){
- StringimagePath="/jfgg/b1.jpg";
- //图片相对web运用的方位}
- else{
- StringimagePath="/jfgg/b2.gif";
图片相对web运用的方位
- }
- OutputStreamoutput=response.getOutputStream();//得到输出流
- if(imagePath.toLowerCase().endsWith(".jpg"))//运用编码处理文件流的状况:
- {response.setContentType(JPG);//设定输出的类型
- //得到图片的实在途径
- imagePath=getServletContext().getRealPath(imagePath);
得到图片的文件流
- InputStreamimageIn=newFileInputStream(newFile(imagePath));
- //得到输入的编码器,将文件流进行jpg格局编码
- JPEGImageDecoderdecoder=JPEGCodec.createJPEGDecoder(imageIn);//得到编码后的图片目标
- BufferedImageimage=decoder.decodeAsBufferedImage();//得到输出的编码器
- JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(output);
- encoder.encode(image);//对图片进行输出编码
- imageIn.close();//封闭文件流}
- if(imagePath.toLowerCase().endsWith(".gif"))//不运用编码处理文件流的状况:
- {response.setContentType(GIF);ServletContextcontext=getServletContext();//得到布景目标
- InputStreamimageIn=context.getResourceAsStream(imagePath);//文件流
- BufferedInputStreambis=newBufferedInputStream(imageIn);//输入缓冲流
- BufferedOutputStreambos=newBufferedOutputStream(output);//输出缓冲流
- bytedata[]=newbyte[4096];//缓冲字节数
- intsize=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﹥
- ﹤imgsrc="ShowPic?spec=2"﹥﹤/a﹥
- ﹤/body﹥
- ﹤/html﹥
Servlet编程之用Servlet显现图片的介绍便是这姿态了,经过上述操作图片便显现在htm上了,作用怎么呢?
【修改引荐】
- 什么是Servlet以及常用Servlet API有哪些
- JSP Servlet实例之主动跳转到犯错页
- JSP Servlet开发开始那点事
- Java Servlet API文档有用阐明
- Java Servlets(JSP)开发环境
知优网 » Servlet编程之用Servlet显现图片(servlet显示图片)