【问题标题】:How make the setMultipartConfig work for a dynamic added servlet?如何使 setMultipartConfig 为动态添加的 servlet 工作?
【发布时间】:2013-10-18 02:25:04
【问题描述】:

当我将setMultipartConfig 调用到动态添加的servlet 时,request.getParts(); 在它应该包含上传的文件时返回一个空集合。

JSP

<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8">
  </head>
  <body>
    <form action="/{context here}/hello" method="post" enctype="multipart/form-data">
      <input type="file" name="avatar">
      <button>Go</button>
    </form>
  </body>
</html>

小服务程序:

@WebServlet( "/hello" )
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1;

    @Override
    protected void doGet( HttpServletRequest request, HttpServletResponse response )
    throws ServletException, IOException {
        request.getRequestDispatcher( "/hello.jsp" ).forward( request, response );
    }
    @Override
    protected void doPost( HttpServletRequest request, HttpServletResponse response )
    throws IOException, ServletException {
        // Here an empty collection even if I do select a file...
        request.getParts();
    }
}

动态添加的监听器

@WebListener
public class HelloListener implements ServletContextListener {
    @Override
    public void contextInitialized( ServletContextEvent event ) {
        Dynamic registered = event.getServletContext().addServlet( "hello", HelloServlet.class );
        registered.addMapping( "/hello" );
        registered.setMultipartConfig( getMultiPartConfig() );
    }
    @Override
    public void contextDestroyed( ServletContextEvent event ) {}

    private MultipartConfigElement getMultiPartConfig() {
        String location = "";
        long maxFileSize = -1;
        long maxRequestSize = -1;
        int fileSizeThreshold = 0;
        return new MultipartConfigElement(
            location,
            maxFileSize,
            maxRequestSize,
            fileSizeThreshold
        );
    }
}

如何使多部分配置与动态添加的 servlet 一起使用?

使用: JBoss EAP 6.1

【问题讨论】:

  • 这似乎是 @WebServlet( "/hello" ) 声明,在发布之前就发现了......

标签: java jakarta-ee servlets jboss servlet-3.0


【解决方案1】:

删除@WebServlet( "/hello" ) 声明即可解决问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2010-12-25
    • 2016-01-12
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多