`
FlashJava
  • 浏览: 22611 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

(转)Servlet中文件的读取

    博客分类:
  • j2ee
 
阅读更多

Servlet读取本地文件的知识。在这里做一下记录!

package fifthday;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

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

public class ContextDemo1 extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		test1();
		test2();
		test3();
		test4();
	}

	//利用servletcontext 读取大容量文件
	private void test5() throws FileNotFoundException{
		//假设 fifthday 下有一部影片,先获得真实路径
		String path = this.getServletContext().getRealPath("/WEB-INF/classes/fifthday/");
		//然后用传统的方式读取文件
		FileInputStream in = new FileInputStream(path);
		//接着就是一点一点的读取,一点一点地处理
	}
	
	/*原理:
	 * 发布到web工程中的类之所以能够运行,是有一个类加载器将那些
	 * class类加载到内存中,所以也能够加载别的文件
	 * 
	 *注意:用类加载器加载的文件不能太大,因为他会一直驻留在内存中,直到工程结束。
	 *		所以用类加载器加载时一定要小心 。!!!!!
	 * 
	 * */
	//利用类加载器来读取类根目录下的文件 
	private void test4() throws IOException {
		//先获得类的加载器ContextDemo1.class.getClassLoader()然后再调用类加载器的getResourceAsStream方法过的数据流
		InputStream in = ContextDemo1.class.getClassLoader().getResourceAsStream("/fifthday/db.properties");
		Properties pro = new Properties();
		pro.load(in);
		//下面是测试
		String url = pro.getProperty("url");
		String name = pro.getProperty("name");
		String password = pro.getProperty("password");
		
		System.out.println(url);
		System.out.println(name);
		System.out.println(password);
	}
	
	//在web工程中通过context读取prop文件中的资源数据
	private void test3() throws IOException {
		//凡是在应用中读取properties文件时 这是最佳模式
		ServletContext context =this.getServletContext();
		InputStream in = context.getResourceAsStream("/prop/db.properties");
		Properties pro = new Properties();
		pro.load(in);
		//下面是测试
		String url = pro.getProperty("url");
		String name = pro.getProperty("name");
		String password = pro.getProperty("password");
		
		System.out.println(url);
		System.out.println(name);
		System.out.println(password);
	}
	
	//在web工程中通过context读取工程中的资源数据
	private void test2() throws IOException {
		//凡是在应用中读取properties文件时 这就是最佳模式
		ServletContext context =this.getServletContext();
		InputStream in = context.getResourceAsStream("/WEB-INF/classes/fifthday/db.properties");
		Properties pro = new Properties();
		pro.load(in);
		//下面是测试
		String url = pro.getProperty("url");
		String name = pro.getProperty("name");
		String password = pro.getProperty("password");
		
		System.out.println(url);
		System.out.println(name);
		System.out.println(password);
	}
	
	//读取web应用中的文件,不建议用传统的文件读取方式
	private void test1() throws FileNotFoundException, IOException {
		//因为相对的路径是相对于tomcat bin文件的所以将这个文件拷到bin中就行了
		//FileInputStream input = new FileInputStream("WEB-INF/classes/fifthday/db.properties");
		//在实际开发中严禁用绝对路径
		//FileInputStream input = new FileInputStream("D://tomcat6/webapps/study/WEB-INF/classes/fifthday/db.properties");
		//tomcat 的bin文件中有db.properties这个文件
		FileInputStream input = new FileInputStream("db.properties");
		int data = input.read();
		System.out.println(data);
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

 

分享到:
评论

相关推荐

    jsp+servlet实现文件上传和下载

    在这个主题中,“jsp+servlet实现文件上传和下载”是核心知识点,我们将深入探讨如何利用这两个组件以及Apache的`commons-fileupload`和`commons-io`库来完成这一任务。 1. **文件上传** 文件上传通常涉及用户通过...

    jsp+java类+servlet实现文件读取、写入的功能.rar

    在文件读取和写入的场景中,Java类和Servlet通常扮演核心角色。以下是一些关键知识点: 1. **文件I/O操作**:Java提供了一系列的类,如`java.io.File`、`java.io.FileInputStream`和`java.io.FileOutputStream`,...

    jsp+java类+servlet实现文件读取、写入的功能.pdf

    ### jsp+java类+servlet实现文件读取、写入的功能 #### 一、概述 在Web开发领域,特别是基于Java的技术栈中,文件的读取与写入是一项基础但非常重要的功能。本文将详细介绍如何利用JSP、Java类以及Servlet技术在...

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    Servlet读取XML文件实现JSP分页(新上传的含有源代码)

    本教程将探讨如何利用Servlet从XML文件中读取数据,并在JSP页面上实现分页显示。这里我们假设已经有一个XML文件存储了需要分页的数据,且提供了一个名为`Pagination`的压缩包,其中包含相关的源代码。 首先,让我们...

    Servlet中的文件操作

    Servlet中的文件操作主要涉及到在Java Web应用程序中处理文件的上传和下载。Servlet是Java服务器端的一个接口,用于扩展HTTP服务器的功能,它提供了处理客户端请求和响应的方法。在Servlet中进行文件操作,通常需要...

    基于Servlet实现文件的上传与下载

    4. 读取文件内容,将其写入到响应的输出流中。 5. 关闭文件和流,完成响应。 在JSP(JavaServer Pages)中,通常会用于创建用户界面,例如显示上传或下载文件的表单。JSP可以通过EL(Expression Language)和JSTL...

    Servlet读取XML文件实现JSP简单分页

    在本示例中,Servlet需要读取XML文件,从中获取数据以实现分页。Java提供了多种XML解析库,如DOM、SAX和JAXB。这里可能使用DOM,因为它允许整个XML文档在内存中加载,方便数据检索。 3. **DOM解析XML**: DOM解析...

    java servlet实现文件下载

    本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...

    在JSP中显示servlet中生成的或读取的图片

    在JSP中显示Servlet生成或读取的图片是一项常见的任务,尤其在动态网站开发中,例如用户上传的图片处理、验证码生成等场景。本篇将详细介绍如何实现这一功能,涉及的知识点包括Java Servlet、JSP、HTTP协议以及文件I...

    Servlet读取XML文件实现JSP分页

    此外,为了提高性能,可以考虑缓存XML数据或使用数据库来存储数据,而不是每次都从XML文件读取。 总的来说,Servlet读取XML文件实现JSP分页涉及了Java的文件I/O、XML解析、数据处理、HTTP请求处理和页面渲染等多个...

    读取EXCEL Demo&Servlet DEMO

    本项目“读取Excel Demo&Servlet Demo”提供了一个实例,演示了如何利用Java技术栈实现从Excel文件中读取数据,并通过Servlet框架将数据动态展示在网页上。以下将详细介绍其中涉及的关键知识点: 1. **Eclipse**:...

    servlet中文乱码问题

    通过修改Tomcat配置文件中的`URIEncoding`属性以及在Servlet中通过`response.setContentType()`和`request.setCharacterEncoding()`方法来设置字符编码,可以有效解决中文乱码问题。此外,还可以通过字符集转换的...

    基于servlet的文件下载代码

    文件读取和输出流设置的逻辑 } ``` - 通过`request.getRealPath("/") + "/" + path`获取实际文件路径。 - 使用`BufferedInputStream`和`BufferedOutputStream`进行高效的文件读写操作。 - 设置`response`头...

    servlet导出文件

    在Java Web开发中,Servlet导出文件通常涉及到以下几个关键知识点: 1. **Servlet生命周期**: Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当首次请求Servlet时,容器(如Tomcat)会加载并初始化...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    这个链接会指向一个`servlet`,由`servlet`来处理实际的文件读取和下载逻辑。 1. **创建Servlet**:首先,我们需要创建一个自定义的`servlet`,例如`FileDownloadServlet`。在`src`目录下的Java源代码文件中,我们...

    ajax异步文件上传,servlet处理

    在现代Web应用中,用户经常需要上传文件,如图片、文档等。为了提供更好的用户体验,开发者通常会采用AJAX(Asynchronous JavaScript and XML)技术实现异步文件上传,避免传统方式下页面刷新带来的中断感。AJAX允许...

    使用Servlet+jQuery实现读取本地硬盘图片

    1. **文件I/O操作**:Servlet可以在服务器端读取本地硬盘的图片文件,使用`java.io.File`类和`java.nio`包下的类进行文件读取。 2. **二进制流处理**:图片文件通常以二进制格式存储,Servlet需要将读取到的二进制...

    ServletContext读取web应用中的资源文件.doc

    为了实现这一点,ServletContext 接口提供了一些方法来读取 web 应用中的资源文件,这些方法是依靠 Servlet 容器来实现的。Servlet 容器根据资源文件相对于 web 应用的路径,返回关联资源文件的 IO 流、资源文件在...

Global site tag (gtag.js) - Google Analytics