servlet实现文件上传

本文详细介绍了如何使用Servlet实现文件上传功能,包括Part对象的使用、上传表单的设计、服务器端处理步骤,以及在Tomcat服务器上的配置。特别强调了在Tomcat的server.xml配置Context元素以实现JSP页面的正确运行,并提供了reloadable属性在开发和部署阶段的调整建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件上传下载
    Part对象 http.part
        方法:1)getPart() 获取Part对象 request.getPart("");
            2)getHeader() 获取文件名称
            3)getSize() 文件大小
            4)write() 写文件到服务器
    步骤及注意事项:
        1.设计上传文件表单 <input type="file">、表单类型:enctype multipart/form-data  method="post"
        2.服务器端:
            1.获取part对象
            2.获取文件名称
            3.写文件到服务器

第一步:编写两个页面

JSP页面 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>文件上传下载</title>
</head>
<body>
<form action="FileupaloadServlet" method="post" enctype="multipart/form-data">
	文件ID <input type="text" name="fileID"><br>
	文件<input type="file" name="fileName"><br>
	<input type="submit" value="上传">
</form>
</body>
</html>

Servlet页面

@WebServlet("/FileupaloadServlet")
@MultipartConfig(location="e:\\",fileSizeThreshold=1024)

public class FileupaloadServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获取part对象(包含文件信息)
		Part part = request.getPart("fileName");
		
        //2.获取根路径(用于构造输出路径)
		String path=getServletContext().getRealPath("/");
		
        //3.保存文件(part输出)
		part.write(path+"\\upload\\b.txt");	// "\\"第一个\ 表示转义字符
	}
}

 第二步:在Tomcat下运行jsp页面,而不在eclipse下直接运行。

  • 需要配置server.xml文件:Tomcat 7.0 ----> config ----> server.xml
//tomcat中给server.xml加入<Context>元素

<Context path="/fs" docBase="E:\javaweb\WebContent" reloadable="true" source="org.eclipse.jst.jee.server:fs"/>

解释:<Context>代表了运行在<Host>上的单个Web应用,一个<Host>可以有多个<Context>元素,每个Web应用必须有唯一的URL路径,这个URL路径在<Context>中的属性path中设定。 

<Context>元素的属性: 
path:指定访问该Web应用的URL入口。 
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。 

我这里的docBase路径是我这个项目的WebContent路径。


reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。 

在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

  • 然后找到eclipse下的项目名 右键 ,按照如下图操作

 

启动Tomcat,打开浏览器输入地址。这里要注意文件名变为了server.xml文件里写的<Context>里面的path

最后再回到开始的项目文件夹下就可看见上传的文件。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值