`
windywindy
  • 浏览: 170076 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

servlet3.0的学习(三)

阅读更多
文件的上传
Upload.java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.UUID;
import javax.servlet.ServletConfig;
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 javax.servlet.http.Part;


@WebServlet(urlPatterns = {"/upload"})
public class Upload extends HttpServlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res)
            throws IOException, ServletException {

        PrintWriter out = res.getWriter();
        InputStream is = null;
        FileOutputStream fos = null;
        String targetDirectory = req.getServletContext().getRealPath("/upload");
        try {
            for (Part p : req.getParts()) {
                UUID id = UUID.randomUUID();
                out.write("Part name: " + p.getName() + "<br/>\n");
                out.write("Size: " + p.getSize() + "<br/>\n");
                out.write("Content Type: " + p.getContentType() + "<br/>\n");
                is = p.getInputStream();


                File file = new File(targetDirectory, id.toString() + ".jpg");
                fos = new FileOutputStream(file);
                out.write("Header Names:");
                for (String name : p.getHeaderNames()) {
                    out.write(" " + name);
                }
                out.write("<br/><br/>\n");

                while (true) {
                    int bytedata = is.read();
                     if (bytedata == '\n') out.write("<br/>");
                    if (bytedata == -1) {
                        break;

                    }
                    fos.write(bytedata);
                }

            }
        } finally {
            if (is != null) {
                is.close();

            }
            if (out != null) {
                out.close();

            }
        }
    }
}


index.html
<html>
<head>
  <title>File Upload Example</title>
</head>

<body>
  <form action="upload" method="post"
        enctype="multipart/form-data">
    <h3>Choose files to upload.</h3>
    <input name="myFile" type="file" /> <br/>
    <input name="myFile2" type="file"/> <br/> <br/>
    <input value="upload" type="submit"/>
    <input type="reset"/> <br/>
  </form>
</body>
</html>


讲解:javax.servlet.http.Interface Part,这个接口主要是用来接收提交形式为multipart/form-data POST 请求.
void delete() :删除一个文件项目的底层存储,包括删除任何相关的临时磁盘文件
java.lang.String getContentType():获取内容类型,如image/x-png,
application/octet-stream
java.lang.String getHeader(java.lang.String name):返回指定的MIME头
java.util.Collection<java.lang.String> getHeaderNames():获取本部分的头名。
java.io.InputStream getInputStream():返回当前文件的输入流
java.lang.String getName():获取文件名,input的name
long getSize():获取大小
void write(java.lang.String fileName):写入本地硬盘,如果有多个文件需要保存时次方法并不能保证成功

分享到:
评论
1 楼 Neoman 2010-10-07  
我试验了一下, req.getParts() 的大小是0,咋回事呢?

相关推荐

    Servlet3.0参考手册

    开发者可以通过这个文件快速查找和理解Servlet3.0中的类、接口、方法以及它们的使用示例,对于学习和使用Servlet3.0非常有帮助。 总的来说,Servlet3.0通过增强的注解配置、异步处理、过滤器改进、上下文参数和监听...

    servlet3.0的学习(二)

    至于提到的"ajax",这可能是与AJAX(Asynchronous JavaScript and XML)技术有关,虽然在Servlet 3.0学习中不是核心内容,但它是现代Web应用中常用的交互技术。Servlet可以处理AJAX请求,通过JSON或XML格式返回数据...

    servlet3.0.zip

    Servlet 3.0是Java Servlet规范的一个重要...总的来说,“servlet3.0.zip”包含的资源为开发者提供了使用Servlet 3.0规范进行Web开发的基础,通过学习和实践,开发者可以构建高效、灵活且易于维护的Java Web应用程序。

    Servlet 3.0jar包和source包

    Servlet 3.0是Java服务器端编程的重要组成部分,主要用于构建动态Web应用程序。它是由Java Community Process(JCP)制定的标准,定义了一套用于处理HTTP请求的API,使得开发者可以编写服务器端程序来处理来自Web...

    servlet3.0 jar包和doc

    这个压缩包包含了servlet3.0的jar包和对应的doc文档,非常适合开发者学习和使用。 首先,我们来看一下`javax.servlet.jar`文件,这是Servlet API的核心库,包含了Servlet和Filter等核心接口和类。在Servlet3.0中,...

    servlet3.0-demo

    在这个名为“servlet3.0-demo”的项目中,我们重点探讨的是如何利用Servlet 3.0的新特性进行文件上传操作,并且采用注解的方式来简化代码。 在Servlet 3.0之前,我们需要在web.xml中配置Servlet,然后通过继承...

    maven servlet 3.0 eclipse config video

    在视频教程中,你将学习到如何在Eclipse中创建Maven Web项目,配置Servlet 3.0的相关注解,以及如何运行和调试基于Servlet 3.0的应用程序。这将帮助你更高效地开发和管理Java Web项目。 通过学习这个视频教程,...

    Jsp/Servlet3.0 ppt和代码

    【标题】"Jsp/Servlet3.0 ppt和代码"涉及的是Java服务器页面(JSP)和Servlet 3.0版本的关键技术。JSP是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,从而实现服务器端的动态内容生成。而Servlet是...

    Servlet3.0特性详解

    Servlet3.0是Java EE平台中的一个重要组成部分,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。以下是对Servlet3.0主要...学习和掌握Servlet3.0的这些特性对于Java Web开发者来说至关重要。

    Servlet3.0 Demo

    通过这个Demo,开发者可以学习如何在实际项目中有效地利用Servlet3.0的新特性,提高代码的可读性和维护性。同时,参考的博客文章也可能提供了具体的实现细节和示例代码,对于深入理解Servlet3.0的功能非常有帮助。

    JSP项目集成jetty服务器+servlet 3.0 demo

    通过这个项目,开发者可以学习到如何在不依赖大型Web服务器的情况下,快速启动和运行一个JSP和Servlet应用。这不仅提高了开发效率,还使得项目更加便携,易于分享和调试。同时,对Servlet 3.0的理解,包括注解配置、...

    官方servlet3.0.rar

    Servlet 3.0是Java Web开发中的一个...通过深入学习和理解Servlet 3.0的这些特性,开发者可以构建更加高效、灵活且易于维护的Java Web应用程序。源码分析将帮助我们更好地理解底层工作原理,从而更好地利用这些特性。

    Servlet 3.0 API - Apache Tomcat 7.0.41

    通过深入学习Servlet 3.0 API,开发者可以充分利用这些特性,构建高性能、易于维护的Java Web应用程序。Apache Tomcat 7.0.41提供的这个API文档是一个很好的起点,可以帮助开发者理解Servlet 3.0规范的细节,并在...

    Servlet3.0微框架

    Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。这篇博客“Servlet3.0微框架”可能探讨了如何利用Servlet3.0的新功能来构建轻量级的Web应用...

    JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)

    在"JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)"这个主题中,涵盖了四个关键知识点:JDBC(Java Database Connectivity)、泛型、注解以及Servlet 3.0。接下来,我们将逐一深入探讨这些内容。 首先,JDBC是...

    Servlet 3.0新特性——文件上传接口

    Servlet 3.0是Java EE 6规范的一...如果你想要深入了解Servlet 3.0的文件上传功能,可以通过阅读指定的博文链接(已提供但此处未显示)或者查阅相关的Java EE 6文档,进一步学习如何在实际项目中有效利用这些新特性。

    基于Servlet3.0+IBatis+BootStrip技术构建简单会议管理系统

    本系列讲座主要讲述如何利用Servlet3.0+mybatis+bootstrap+mysql构建企业级应用解决方案,主要分为三部分完成 第一部分:技能储备阶段,学习项目所需要的技能知识 第二部分:设计部分,通过需求分析,设计物理模型,...

    Servlet3.0学习总结之基于Servlet3.0的文件上传实例

    Servlet3.0文件上传实例学习总结 Servlet3.0提供了对文件上传的原生支持,开发者可以直接使用Servlet3.0提供的API实现文件上传功能,不需要借助任何第三方上传组件。在这里,我们将介绍使用Servlet3.0实现文件上传...

    Servlet3.0新特性解析01

    Servlet3.0是Java Servlet API的一个重大更新,它引入了许多新特性和改进,极大地提高了开发效率和灵活性。...通过学习和掌握Servlet3.0的新特性,开发者可以编写出更加高效、易于维护的Java Web应用。

    Maven+Servlet3.0显示系统时间源码+文档

    【Maven+Servlet3.0显示系统...通过这个项目,开发者可以学习Maven的项目管理,理解Servlet3.0的新特性,以及如何在实际开发中运用这些技术。同时,这也是一个很好的实践案例,帮助初学者掌握Java Web开发的基础知识。

Global site tag (gtag.js) - Google Analytics