Servlet3.0-内嵌文件上传

注解替代web.xml的配置

    在eclipse中servlet3.0没有了web.xml文件而是使用注解来配置servlet和filter以及listener的路径
    idea中servlet自带使用的是3.1,有web.xml配置文件 也可以支持注解配置

注解配置格式:

创建servlet
    在类上面添加 @WebServlet(urlPatterns={ "/demo2", "/demo21" },loadOnStartup=2)
创建listener
    在类上添加 @WebListener
创建filter
    在类上添加 @WebFilter(urlPatterns="/*")

全新的文件上传

    在servlet3.0中内嵌了文件上传功能
    使用HttpServletRequest#getPart/#getParts得到请求的Part(如文件/参数)等
    需要实现文件上传需要在servlet中添加一个注解
    @MultipartConfig
    接受普通上传组件(就是接受参数): request.getParemter(name属性的值)
    接受文件上传组件 request.getPart(name属性名称)

jsp表单

    上传文件中表单中需要再form元素中设置的属性  enctype="multipart/form-data"
![jsp文件上传表单][1]

servlet3.0文件上传

![servlet内嵌的文件上传][2]

文件上传需要注意的其他问题及解决思路

 - 名字重复 随机名称

    在数据库中提供两个字段,
    一个字段用来存放文件的真实名称  1.jpg
    另一个字段用来存放文件存放路径  g:/sdfasdf.jpg
 - 随机名称:

    uuid(随机数生成的工具类)
    时间戳
 - 文件安全

    重要的文件存放在 web-inf 或者 meta-inf 或者 服务器创建一个路径
    不是很重要的文件 项目下
 - 文件存放目录

    方式1:日期
    方式2:用户
    方式3:文件个数
    方式4:随机目录
    mkdirs(创建文件目录)
原文地址:https://www.cnblogs.com/sybk/p/10004747.html