imagehandlerservlet.java
来自「Java.Web开发详解.书中例子的源代码,全部都有」· Java 代码 · 共 57 行
JAVA
57 行
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 + =
减小字号Ctrl + -
显示快捷键?