使用Servlet显示图片
在本文的示例中,我们使用FileInputStream类读取图像,并使用ServletOutputStream类将此图像内容作为响应写入。为了提高性能,我们使用了BufferedInputStream和BufferedOutputStream类。
1 准备需要显示的图片
提前在D盘的upload目录中准备一张图片(注意:根据自身情况准备即可):
2 编写index.jsp
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一点教程网-使用Servlet显示图片</title>
</head>
<body>
<h1>使用Servlet显示图片</h1>
<a href="DisplayImage">显示图片</a>
</body>
</html>
3 编写DisplayImage
DisplayImage用于读取图片,并显示到用户:
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.*;
import java.util.Iterator;
import java.util.List;
/**
* 一点教程网 - http://www.yiidian.com
*/
public class DisplayImage extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/png");
ServletOutputStream out;
out = response.getOutputStream();
FileInputStream fin = new FileInputStream("d:\\upload\\logo.png");
BufferedInputStream bin = new BufferedInputStream(fin);
BufferedOutputStream bout = new BufferedOutputStream(out);
int ch =0; ;
while((ch=bin.read())!=-1)
{
bout.write(ch);
}
bin.close();
fin.close();
bout.close();
out.close();
}
}
4 配置web.xml
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>DisplayImage</servlet-name>
<servlet-class>DisplayImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayImage</servlet-name>
<url-pattern>/DisplayImage</url-pattern>
</servlet-mapping>
</web-app>
5 运行测试
热门文章
优秀文章