首页 > Web开发 > 详细

Servlet3.0 multipart 文件上传技术

时间:2017-03-11 13:13:06      阅读:316      评论:0      收藏:0      [点我收藏+]

文件上传功能简介

要使用基于Servlet 3.0的多路传输转换功能:

1、在web.xml中为DispatcherServlet添加一个multipart-config元素

2、通过Servlet编程的方法使用javax.servlet.MultipartConfigElement进行注册

3、自己定制了自己的Servlet类,那你必须使用javax.servlet.annotation.MultipartConfig对其进行注解。

注意:诸如最大文件大小或存储位置等配置选项都必须在这个Servlet级别进行注册,因为Servlet 3.0不允许在解析器MultipartResolver的层级配置这些信息。

 

技术分享

 技术分享

 

Servlet3.0 javaConfig配置

传统的servlet都是在web.xml中配置,从Servlet 3.0开始提供了ServletContainerInitializer接口,允许使用代码去配置servletsfilterslisteners

 Spring为我们提供了一个该接口的实现类SpringServletContainerInitializer,查看源代码可以知道该类通过@HandlesTypes()注解指定了onStartup()方法的第一个参数接收WebApplicationInitializer实现类的集合。所以如果我们要使用这种方式配置servlet,只需要实现WebApplicationInitializer接口即可。

 

public class WebInitializer implements WebApplicationInitializer {

    private static final Logger logger = LoggerFactory.getLogger(WebInitializer.class);

    @Override
    public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
        logger.info("begin init web application.");

        //配置Spring
        AnnotationConfigWebApplicationContext springContext = new AnnotationConfigWebApplicationContext();
        springContext.register(SpringConfig.class);
        
        //添加linstener
        servletContext.addListener(new ContextLoaderListener(springContext));

        //添加servlet
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
                "dispatcher", new DispatcherServlet(springContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");

        //添加filter
        LoggerFilter loggerFilter = new LoggerFilter();
        FilterRegistration.Dynamic logFilterRegistration=container.addFilter("requestResponseLogFilter", loggerFilter);
        logFilterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC), false, "/*");

        logger.info("init web application success.");
    }
}

Spring 配置简介

了解

Servlet3.0 multipart 文件上传技术

原文:http://www.cnblogs.com/lemos/p/6534550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!