使用JSP和Servlet技术实现
整个内容包括:
两个jsp,一个是上传表单、一个是下载列表
两个servlet,一个用于接收表单信息,写入本地系统和数据库、一个用于用于处理jsp的下载请求
三个外部包,一个是commons-fileupload-1.3.2.rar(核心包)commons-io-2.5.jar(依赖包)Mysql驱动包
数据库
数据库的目的不是保存文件内容,而是将文件的文件名,文件类型,以及文件的路径(绝对路径)保存到数据库中:
- file_info 的表结构:
- file_info 的表结构(有待改善):
根据自己的项目需求,适当修改数据库的表结构。
在给出重要的步骤之前,把一些这个项目中用到的工具(封装好的类和方法)先提前说一下,有:
Files类:定义类文件的属性和set()、set()方法。
DatabaseConnection类:数据库的连接、关闭、释放资源。
Files.java
package vo;
public class Files {
String file_name;
String file_type;
String file_path;
public String getFile_name() {
return file_name;
}
public void setFile_name(String file_name) {
this.file_name = file_name;
}
public String getFile_type() {
return file_type;
}
public void setFile_type(String file_type) {
this.file_type = file_type;
}
public String getFile_path() {
return file_path;
}
public void setFile_path(String file_path) {
this.file_path = file_path;
}
}
DatabaseConnection.java(根据自己的实际情况配置参数):
package dbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
private static final String DBDRIVER = "com.mysql.jdbc.Driver" ;
private static final String DBURL = "jdbc:mysql://localhost:3306/MyClass" ;
private static final String DBUSER = "root" ;
private static final String PASSWORD = "4321";
private Connection conn = null;
public Connection DatabaseConnection(){
try {
Class.forName(DBDRIVER) ;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
this.conn = DriverManager.getConnection(DBURL,DBUSER,PASSWORD) ;
} catch (SQLException e) {
e.printStackTrace();
}
return this.conn ;
}
public Connection getConnection(){
return this.conn ;
}
/*
* 数据库的关闭
* */
public void close(){
if(this.conn != null){
try {
this.conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
文件上传表单(upload.jsp)
如果表单有文件类型的数据,那么表单必须使用复杂表单,enctype=“m