利用Servlet使用数据流在jsp页面中显示硬盘中的图片
ShowImageFromDiskServlet.java代码如下:package cn.com.songjy.demo.servlet;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** ** ClassName:ShowImageFromDiskServlet is for */public class ShowImageFromDiskServlet extends HttpServlet {private static final long serialVersionUID = 1L;String imagePath; public ShowImageFromDiskServlet() {} @Overridepublic void init(ServletConfig config) throws ServletException {imagePath = config.getInitParameter("imagePath");System.out.print("图片路径:");System.out.println(imagePath);}@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {OutputStream os = response.getOutputStream();File file = new File(imagePath);FileInputStream fis = new FileInputStream(file);byte[] btimg = readStream(fis);os.write(btimg);os.flush();os.close();}private byte[] readStream(InputStream in){ByteArrayOutputStream baos = new ByteArrayOutputStream();int data = -1;try {while((data=in.read()) != -1 ){baos.write(data);}return baos.toByteArray();} catch (IOException e) {e.printStackTrace();return null;}}}
ShowImageFromDiskServlet在web.xml中的配置如下:
<servlet> <servlet-name>ShowImageFromDiskServlet</servlet-name> <servlet-class>cn.com.songjy.demo.servlet.ShowImageFromDiskServlet</servlet-class> <init-param> <description>图片路径</description> <param-name>imagePath</param-name> <param-value>C:/TEMP/20121221093121.png</param-value> </init-param></servlet><servlet-mapping> <servlet-name>ShowImageFromDiskServlet</servlet-name> <url-pattern>/showimage</url-pattern></servlet-mapping>
引自:http://cuisuqiang.iteye.com/blog/1741812
通过Java HTTP连接将网络图片下载到本地:http://cuisuqiang.iteye.com/blog/1726173
页:
[1]