Servlet上传微小工程

简介: Servlet上传微小工程

Servlet上传微小工程


Servlet类UploadTest


package com.upload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadTest extends HttpServlet {
    private static final String UPLOAD_DIRECTORY = "upload";
    private static final int MEMORY_THRESHOLD   = 1024 * 1024 * 3;  
    private static final int MAX_FILE_SIZE      = 1024 * 1024 * 40; 
    private static final int MAX_REQUEST_SIZE   = 1024 * 1024 * 50; 
    protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
if (!ServletFileUpload.isMultipartContent(request)) {
   PrintWriter writer = response.getWriter();
   writer.println("Error: 表单必须包含 enctype=multipart/form-data");
   writer.flush();
   return;
} 
        DiskFileItemFactory factory = new DiskFileItemFactory();        
        factory.setSizeThreshold(MEMORY_THRESHOLD);
        factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); 
        ServletFileUpload upload = new ServletFileUpload(factory);         
        upload.setFileSizeMax(MAX_FILE_SIZE);        
        upload.setSizeMax(MAX_REQUEST_SIZE); 
        String uploadPath = getServletContext().getRealPath("./") + File.separator + UPLOAD_DIRECTORY;
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdir();
        }
        try {
            List<FileItem> formItems = upload.parseRequest(request);
            if (formItems != null && formItems.size() > 0) {
                for (FileItem item : formItems) {
                    if (!item.isFormField()) {
                        String fileName = new File(item.getName()).getName();
                        String filePath = uploadPath + File.separator + fileName;
                        File storeFile = new File(filePath);
                        System.out.println(filePath);
                        item.write(storeFile);
                        request.setAttribute("message", "文件上传成功!");
                    }
                }
            }
        } catch (Exception ex) {
            request.setAttribute("message", "错误信息: " + ex.getMessage());
        }
        getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
    }
}
==============================================================================
上传jsp
 <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!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>
<style type="text/css">
p{
text-align: center;
}
</style>
  </head>
  <body>
     <p>
                               _ooOoo_                                            <br />
                              o8888888o                                           <br />
                              88" . "88                                           <br />
                              (| -_- |)                                           <br />
                              O\  =  /O                                           <br />
                           ____/`---'\____                                        <br />
                         .'  \\|     |//  `.                                      <br />
                        /  \\|||  :  |||//  \                                     <br />
                       /  _||||| -:- |||||-  \                                    <br />
                       |   | \\\  -  /// |   |                                    <br />
                       | \_|  ''\---/''  |   |                                    <br />
                       \  .-\__  `-`  ___/-. /                                    <br />
                     ___`. .'  /--.--\  `. . __                                   <br />
                  ."" '<  `.___\_<|>_/___.'  >'"".                                <br />
                 | | :  `- \`.;`\ _ /`;.`/ - ` : | |                              <br />
                \  \ `-.   \_ __\ /__ _/   .-` /  /                               <br />
             ======`-.____`-.___\_____/___.-`____.-'======                        <br />
                               `=---='                                            <br />
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                         <br />
                      佛祖保佑        永无BUG                                         <br />
  <br />
                         写字楼里写字间,写字间里程序员;                                           <br />
                         程序人员写程序,又拿程序换酒钱。                                           <br />
                         酒醒只在网上坐,酒醉还来网下眠;                                           <br />
                         酒醉酒醒日复日,网上网下年复年。                                           <br />
                         但愿老死电脑间,不愿鞠躬老板前;                                           <br />
                         奔驰宝马贵者趣,公交自行程序员。                                           <br />
                         别人笑我忒疯癫,我笑自己命太贱;                                           <br />
                         不见满街漂亮妹,哪个归得程序员?                                           <br />
                                                                   <br />
    </p>
<h1>文件上传</h1>
<form method="post" action="servlet/UploadTest" enctype="multipart/form-data">
选择一个文件:
<input type="file" name="uploadFile" />
<br/><br/>
<input type="submit" value="上传" />
</form>
  </body>
</html>
==============================================================================
提示jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">    
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传结果</title>
  </head>
  <body>
    <center>
        <h2>${message}</h2>
    </center>
  </body>
</html>
==============================================================================
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>UploadTest</servlet-name>
    <servlet-class>com.upload.UploadTest</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UploadTest</servlet-name>
    <url-pattern>/servlet/UploadTest</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
==============================================================================
==============================================================================
==============================================================================


目录
相关文章
|
Web App开发 Java 应用服务中间件
IDEA新建Web工程,配置tomcat,servlet
IDEA高级操作之新建Web工程
328 0
|
Java 应用服务中间件
JAVA,JSP,Servlet获取当前工程路径-绝对路径
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
1101 0
|
SQL Java 数据库
Servlet实现对SQLServer数据库的增删改查(含工程源码)
<div class="markdown_views"> <pre><code>本文实现了用MyEclipse,编写Servlet,实现对SQLServer数据库的增删改查,适合新手入门,文末提供工程文件源码下载。 </code></pre> <h2 id="1新建数据库test以及表users">1.新建数据库test以及表users</h2> <p>表users共四
7402 0
|
5月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
54 3
|
5月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
49 1
|
5月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
123 0
|
5月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
35 0
|
7月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
130 12
|
7月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
146 10