`

利用Servlet使用数据流在jsp页面中显示硬盘中的图片

阅读更多
ShowImageFromDiskServlet.java代码如下:

package cn.com.songjy.test.db;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class ShowImageFromDiskServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	private static final Log log = LogFactory
			.getLog(ShowImageFromDiskServlet.class);

	String imagePath;

	public ShowImageFromDiskServlet() {
	}

	@Override
	public void init(ServletConfig config) throws ServletException {

		imagePath = config.getInitParameter("imagePath");

		log.info("图片路径:" + imagePath);
	}

	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
				response.getOutputStream());

		File file = new File(imagePath);

		BufferedInputStream bufferedInputStream = new BufferedInputStream(
				new FileInputStream(file));

		byte[] buffer = new byte[1024];
		
		for(int len=0;(len=bufferedInputStream.read(buffer))>0;){
			bufferedOutputStream.write(buffer, 0, len);
		}
		
		//bufferedOutputStream.flush();//关闭时会自动刷新,无需显示调用,否则必须显示调用
		bufferedOutputStream.close();
		bufferedInputStream.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;
		}
	}*/

}


spring mvc 通过字节流返回图像
	/**
	 * 通过url请求返回图像的字节流
	 */
	@RequestMapping("icon/{cateogry}")
	public void getIcon(@PathVariable("cateogry") String cateogry, HttpServletRequest request,
			HttpServletResponse response) throws IOException {

		if (StringUtils.isEmpty(cateogry)) {
			cateogry = "";
		}

		String fileName = request.getSession().getServletContext().getRealPath("/") + "resource\\icons\\auth\\"
				+ cateogry.toUpperCase().trim() + ".png";

		File file = new File(fileName);

		// 判断文件是否存在如果不存在就返回默认图标
		if (!(file.exists() && file.canRead())) {
			file = new File(request.getSession().getServletContext().getRealPath("/") + "resource/icons/auth/root.png");
		}

		FileInputStream inputStream = new FileInputStream(file);
		byte[] data = new byte[(int) file.length()];
		int length = inputStream.read(data);
		inputStream.close();

		response.setContentType("image/png");

		OutputStream stream = response.getOutputStream();
		stream.write(data);
		stream.flush();
		stream.close();
	}


通过Servlet 将服务器硬盘图片 展示到浏览器

通过Java HTTP连接将网络图片下载到本地

在jsp页面中响应速度提高的7种方法

又一编辑神器-百度编辑器-Ueditor

教你如何调用百度编辑器ueditor的上传图片、上传文件等模块
分享到:
评论

相关推荐

    jsp+servlet网络硬盘

    在这个系统中,JSP(JavaServer Pages)负责处理用户界面展示,而Servlet则作为服务器端的处理逻辑,处理用户的请求并进行数据交互。 一、JSP技术 JSP是Java Servlet的一种扩展,主要用于创建动态网页。在"jsp+...

    jsp操作服务器硬盘最新版20070616

    在描述中提到的“jsp操作服务器硬盘”是指通过JSP技术来实现对服务器硬盘资源的操作,这通常涉及到文件系统交互、输入/输出流和文件处理等知识。下面将详细探讨这些方面: 1. **文件系统交互**:在JSP中,可以使用...

    JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    在本文中,我们将探讨如何在JSP页面中通过Servlet将服务器硬盘上的图片展示到浏览器上。这是一个相当实用的技术,可用于动态生成图片或从服务器存储中检索图片资源,并将其作为响应发送到用户浏览器。下面将分步骤...

    jsp+servlet实现MP3乐园

    Servlet读取文件内容后,通过输出流将数据发送给客户端,并在响应头中设置适当的Content-Type(例如audio/mpeg针对MP3文件),以及Content-Disposition来指示浏览器如何处理这个响应,通常是作为文件下载。...

    基于jsp的文件上传下载

    在JSP中,可以通过Servlet或者使用JSP内置对象如`response`来实现这个过程。例如,可以使用`response.getOutputStream()`来获取输出流,并通过循环读取文件内容,逐块写入到输出流中。 此外,安全性和性能优化也是...

    网络硬盘jsp源代码

    【网络硬盘jsp源代码】项目是一个典型的Web应用开发实例,主要使用了Java技术栈,包括JSP、Servlet、Struts以及DWR框架。这个项目旨在实现一个网络存储系统,允许用户上传、下载、管理和共享文件,同时具备多级目录...

    JSP中文乱码处理JSP中文乱码处理

    在Web开发中,JSP中文乱码是一个常见的问题,主要涉及页面显示、表单提交以及数据库操作等环节。理解并掌握这些环节的编码处理至关重要,以确保数据的准确性和用户体验。 1. **JSP文件的编码与保存** JSP文件本质...

    精选_毕业设计_基于JSP的网络硬盘_完整源码

    1. **JSP基础**:理解JSP的工作原理,包括如何在JSP页面中编写Java代码,以及如何使用指令、脚本元素和表达式来控制页面行为。 2. **Servlet技术**:JSP通常与Servlet结合使用,Servlet负责处理请求和响应,而JSP...

    JSP实现文件上传(java的io流实现)

    在JSP中,我们通常使用Servlet API,特别是`Part`接口,它是`HttpServletRequest`的一个子接口,专门用于处理多部分请求。以下是一个简单的示例: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> request.set...

    java-servlet-api.doc

    Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()...

    jsp 文件上传下载系统

    在Servlet中,我们可以使用Apache Commons FileUpload库或者Java内置的Part接口来解析请求中的文件数据。文件数据被解码后,通常会存储在服务器的硬盘上,选择合适的存储路径和策略对于系统的稳定性和安全性至关重要...

    jsp关于excel的上传下载

    在Java Web开发中,JSP(JavaServer Pages)经常用于创建动态网页,而处理Excel文件的上传和下载是常见的需求,特别是在数据导入导出、报表生成等场景。本篇文章将详细探讨如何使用JSP实现Excel的上传和下载功能。 ...

    jsp中文件的上传与操作讲座文件

    2. 处理请求:在Servlet或JSP页面中捕获POST请求,并使用`ServletFileUpload`解析请求。 3. 获取文件:遍历解析后的文件项,获取每个文件的信息,如文件名、内容等。 4. 存储文件:将文件内容写入服务器的指定位置。...

    毕业设计多种方法实现web分页

    在这个项目中,采用了jsp、servlet和javabean的技术栈来构建系统,而分页技术则通过三种不同的方法进行实现。以下是关于这些知识点的详细讲解: 1. **jsp**: JSP(JavaServer Pages)是Java平台上的动态网页技术,...

    jsp面试题[参照].pdf

    - POST将数据封装在请求体中,数据不显示在URL,传输数据量较大,适合提交大量或敏感数据。 6. **Servlet生命周期** - Servlet的生命周期包括加载和实例化、初始化、处理请求和销毁四个阶段。 - 控制Servlet生命...

    wangeditor批量上传图片

    在这个场景中,jsp页面作为用户交互的界面,负责接收用户上传图片的请求,并将请求转发给servlet处理。 4. **servlet**: servlet是Java Web服务器端的编程接口,负责处理HTTP请求。在这个案例中,servlet接收到...

    web技术实现图片上传到后台

    本教程将探讨如何利用JSP(JavaServer Pages)、Servlet和Java技术来实现在后台处理用户上传的图片。首先,我们需要理解这三种技术的基础概念。 JSP是Java的一种动态网页技术,它允许开发者在HTML页面中嵌入Java...

    dreamweaver动态网站制作jsp实习报告.docx

    - **上传图片设计**:实现文件上传功能通常需要表单提交、文件流处理以及服务器端的文件存储逻辑,JSP可以与Servlet协作完成这个过程。 6. **实习总结**:在实习过程中,遇到的技术难题可能包括配置环境变量、...

    java web模拟的简单的一个网络硬盘

    Java Web是使用Java语言开发的Web应用程序,它涵盖了Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等技术。Servlet是Java编写的服务器端程序,用于处理HTTP请求;JSP则是一种...

    jsp 下载系统

    在这个"铁人下载系统"中,作者使用JSP技术构建了一个个人使用的下载平台,提供了文件的上传、存储和下载功能。 **系统架构** 1. **前端展示**:JSP页面作为用户界面,通常包含HTML、CSS和JavaScript,负责用户交互...

Global site tag (gtag.js) - Google Analytics