⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagehandlerservlet.java

📁 java web开发详解 源码,作者是孙鑫老师
💻 JAVA
字号:
package org.sunxin.lesson.jsp.ch24;

import java.awt.image.BufferedImage;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

import com.sun.image.codec.jpeg.*;

import org.sunxin.lesson.jsp.util.PicZoom;

public class ImageHandlerServlet extends HttpServlet
{
    protected void service(HttpServletRequest req, HttpServletResponse resp)
                    throws ServletException, java.io.IOException
    {
        String strId=req.getParameter("id");
        if(null==strId || "".equals(strId))
        {
            throw new ServletException("图像参数错误!");
        }
        
        int id=Integer.parseInt(strId);
        
        String srcImgFileName=null;
        
        //此处为了简单,所以使用了switch/case语句,硬编码了images/1.jpg这幅图片,
        //读者可以将图像数据保存到数据库中,根据请求的参数取出相应的图片。
        //或者直接保存在硬盘上,为所有的图片文件做一个索引文件,
        //得到请求参数后,通过查找索引文件得到图片的路径。        
        switch(id)
        {
        case 1:
            srcImgFileName=getServletContext().getRealPath("/")+"images/1.jpg";
            break;
        case 2:
            break;
        default:
            throw new ServletException("图像参数错误!");            
        }
        
        resp.setContentType("image/jpeg");

        ServletOutputStream sos=resp.getOutputStream();
        
        //调用PicZoom类的静态方法zoom对原始图像进行缩放。 
        BufferedImage buffImg=PicZoom.zoom(srcImgFileName,80,80);
        
        //创建JPEG图像编码器,用于编码内存中的图像数据到JPEG数据输出流。
        JPEGImageEncoder jpgEncoder=JPEGCodec.createJPEGEncoder(sos);
        //编码BufferedImage对象到JPEG数据输出流。
        jpgEncoder.encode(buffImg);
        
        sos.close();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -