`
jy00509336
  • 浏览: 243527 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Servlet编程之用Servlet显示图片

阅读更多

转载自:http://developer.51cto.com/art/200907/134170.htm

在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。

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

  1. package xjw.personal.servet;  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5. import com.sun.image.codec.jpeg.*; 

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

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

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

  1. private static final String JPG="image/jpeg;charset=GB2312";     
  2.   public void init()   
  3.  throws ServletException     {     }     
  4.   public void doGet(HttpServletRequest request, HttpServletResponse response)                    
  5. throws IOException, ServletException     
  6.   {        doPost(request, response);     }     
  7.  public void doPost(HttpServletRequest request, HttpServletResponse response)                  
  8.  throws IOException, ServletException   
  9.   {                  
  10. String spec=request.getParameter("spec");  
  11. //输出图片的类型的标志  
  12.  int int_spec=Integer.parseInt(spec);       
  13.    if(spec==1)            {        
  14.       String imagePath="/jfgg/b1.jpg";  
  15. //图片相对web应用的位置        }         
  16.  else        {              
  17.   String imagePath="/jfgg/b2.gif"

图片相对web应用的位置      

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

得到图片的文件流    

  1. InputStream imageIn = new FileInputStream(new File(imagePath));         
  2.   //得到输入的编码器,将文件流进行jpg格式编码     
  3.   JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);         //得到编码后的图片对象           
  4. BufferedImage image = decoder.decodeAsBufferedImage();   //得到输出的编码器   
  5.  
  6. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);        
  7.  
  8.     encoder.encode(image);//对图片进行输出编码       
  9.      imageIn.close();//关闭文件流       }      
  10.  
  11.    if(imagePath.toLowerCase().endsWith(".gif"))//不使用编码处理文件流的情况:    
  12.  
  13.     {    response.setContentType(GIF);    ServletContext context = getServletContext();//得到背景对象   
  14.  
  15.    InputStream imageIn=context.getResourceAsStream(imagePath);//文件流          
  16.  
  17. BufferedInputStream bis=new BufferedInputStream(imageIn);//输入缓冲流      
  18.  
  19. BufferedOutputStream bos=new BufferedOutputStream(output);//输出缓冲流     
  20.  
  21. byte data[]=new byte[4096];//缓冲字节数    
  22.  
  23.   int size=0;     size=bis.read(data);     
  24.  while (size!=-1)    {        
  25.  bos.write(data,0,size);            
  26.   size=bis.read(data);    }     
  27.  bis.close();    bos.flush();//清空输出缓冲流     
  28.       bos.close();    }      
  29.   output.close();    }  

 

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

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

 

Servlet编程之用Servlet显示图片的介绍就是这样子了,通过上述操作图片便显示在htm上了,效果如何呢? 

分享到:
评论

相关推荐

    JAVA servlet 编程指南

    本指南将深入讲解如何使用Java Servlet进行编程,以帮助开发者构建高效、灵活的Web应用。 ### 1. Servlet生命周期 Servlet的生命周期包括三个主要阶段:加载和初始化、处理请求以及销毁。在初始化阶段,Servlet...

    Java Servlet编程

    ### Java Servlet编程知识点详解 #### 一、Java Servlet概述 **Servlet** 是一种服务器端的 Java 技术,用于扩展应用程序的功能。它被设计来创建动态网页内容,并且可以处理客户端请求并返回响应。Servlet 通常...

    深入java servlet网络编程

    全书由16章和2个附录构成,理论结合实际,分门别类讲述了Servlet编程方法、会话管理、服务器端图形生成、网络编程、上传和下载文件、使用数据库、在数据库中存取图象、Servlet链、Servlet服务器端包含、Applet和...

    Servlet编程范例(4)

    在Servlet编程中,Servlet初始化参数和ServletContext对象是两个至关重要的概念。这些概念是构建Web应用程序的基础,特别是当涉及到服务器端的动态处理和应用配置时。 Servlet初始化参数是用于配置Servlet的特定...

    Servlet编程技术

    理解并熟练掌握这些Servlet编程技术,开发者可以创建复杂的、交互性强的Web应用。Servlet不仅处理用户请求,还常常与JSP、JDBC、EJB等技术结合,构建完整的B/S架构的应用系统。在实际开发中,选择使用Servlet还是JSP...

    简单的servlet+jsp图片上传并显示图片解压就可用

    在本文中,我们将深入探讨如何使用Servlet和JSP实现一个简单的图片上传并显示的功能。Servlet是一种Java编程技术,常用于扩展服务器的功能,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页技术,可以方便...

    JAVA SERVLET 高级编程

    **JAVA SERVLET 高级编程** 在Java Web开发领域,Servlet是不可或缺的一部分,它为开发者提供了处理HTTP请求的能力。本教程将深入探讨Java Servlet在处理多媒体信息、集成Java Server Pages (JSP)技术、实现Servlet...

    Flex4.6+java+servlet上传图片例子+图片上传预览

    完成文件保存后,Servlet可以通过HttpServletResponse向Flex客户端返回一个响应,比如返回文件的URL,这样前端就可以根据URL显示已上传的图片。 此外,"PicUpload_Java"和"PicUpload_Flex"可能是项目中的两个关键源...

    深入Java Servlet 网络编程

    Servlet通过Servlet API与客户端进行交互,包括使用`PrintWriter`对象写入响应数据,以及使用`RequestDispatcher`进行请求转发和重定向。 六、MVC模式与Servlet 在Java Web开发中,Model-View-Controller(MVC)...

    3 Servlet编程范例(1)

    Servlet是Java技术中用于开发Web应用的核心组件,它扩展了Web服务器的功能,使得服务器能够处理动态内容和交互性需求。Servlet是一个服务器端的Java应用程序,它可以接收并响应来自客户端(通常是Web浏览器)的HTTP...

    深入Java Servlet网络编程

    Java Servlet是Java Web开发中的核心组件之一,它主要用于构建动态Web应用程序。Servlet是Java平台上的一个标准接口,由Sun Microsystems(现在是Oracle)定义,允许开发者编写能够接收和响应HTTP请求的服务端程序。...

    深入java servlet 网络编程

    本篇文章将深入探讨Java Servlet在网络编程中的应用及其关键概念。 1. **Servlet生命周期** Java Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器接收到第一个请求时,Servlet容器(如Tomcat)...

    jsp+servlet小项目(实现图片上传功能)

    本项目"jsp+servlet小项目(实现图片上传功能)"旨在教授如何利用这两者创建一个简单的图片上传功能。下面将详细介绍这个项目涉及的关键知识点。 1. JSP基础:JSP是一种动态网页技术,允许开发者在HTML页面中嵌入...

    深入 Java Servlet 网络编程

    在这个“深入 Java Servlet 网络编程”主题中,我们将探讨Servlet的概念、生命周期、API、以及与JSP(JavaServer Pages)的协同工作。 1. **Servlet概念** Servlet是Java编写的服务器端程序,主要用于扩展服务器的...

    第三章 Servlet 编程

    第三章 Servlet 编程第三章

    深入java servlet网络编程.rar

    在深入理解Java Servlet网络编程的过程中,我们需要掌握以下几个关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在web应用启动时,Servlet容器(如Tomcat)会加载...

Global site tag (gtag.js) - Google Analytics