javaweb实现文件md5校验servlet和jsp界面
时间: 2024-05-06 20:18:33 浏览: 106
以下是一个简单的实现文件 MD5 校验的 JavaWeb 项目,包括了 Servlet 和 JSP 界面:
1. 创建一个名为 "MD5Check" 的 JavaWeb 项目。
2. 在 WEB-INF 目录下创建一个名为 "lib" 的文件夹,并将 "commons-codec-1.10.jar" 文件拷贝到该文件夹下。
3. 在 src 目录下创建一个名为 "com.example" 的包,并在该包下创建一个名为 "MD5CheckServlet" 的类。该类继承 HttpServlet,实现 doGet 和 doPost 方法。
```java
package com.example;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.binary.Hex;
public class MD5CheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/md5check.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
InputStream is = request.getPart("file").getInputStream();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
md.update(buffer, 0, len);
}
byte[] digest = md.digest();
String md5 = Hex.encodeHexString(digest);
request.setAttribute("md5", md5);
} catch (NoSuchAlgorithmException e) {
throw new ServletException(e);
}
request.getRequestDispatcher("/WEB-INF/md5check.jsp").forward(request, response);
}
}
```
4. 在 WEB-INF 目录下创建一个名为 "md5check.jsp" 的 JSP 文件,该文件包含一个上传文件的表单和一个用于显示计算出的 MD5 值的元素。
```jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MD5 Check</title>
</head>
<body>
<h1>MD5 Check</h1>
<form action="<%=request.getContextPath()%>/md5Check" method="post" enctype="multipart/form-data">
<input type="file" name="file"/><br/><br/>
<input type="submit" value="Check"/>
</form>
<br/><br/>
<% if (request.getAttribute("md5") != null) { %>
<p>MD5: <%=request.getAttribute("md5")%></p>
<% } %>
</body>
</html>
```
5. 在 web.xml 文件中配置 Servlet。
```xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>MD5Check</display-name>
<servlet>
<servlet-name>MD5CheckServlet</servlet-name>
<servlet-class>com.example.MD5CheckServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MD5CheckServlet</servlet-name>
<url-pattern>/md5Check</url-pattern>
</servlet-mapping>
</web-app>
```
6. 将项目部署到 Tomcat 服务器上,并在浏览器中访问 "http://localhost:8080/MD5Check",即可看到上传文件的表单。选择一个文件并点击 "Check" 按钮,即可计算出该文件的 MD5 值,并显示在页面上。
注意:该示例只是一个简单的演示,没有对上传的文件进行任何验证和限制,使用时需要考虑安全性问题。
阅读全文