我想创建一个轻量级,自包含的使用sparkmicroramework(http://www.sparkjava.com/readme.html)的webservice。我需要使用多部分表单(我想同时接收文件和一些键值数据)。在servlet内部以编程方式调用过滤器(使用jetty/spark创建)?
Jetty(Spark所依赖的)提供了一个MultiPartFilter
过滤器,它有助于处理多部分数据,但我不明白如何在代码中使用该过滤器。
我需要以编程方式执行此操作,因为此服务不会作为巨型java安装的一部分进行部署,而是要支持python应用程序。
我的代码是沿着这些线路:
public class Transcoder {
static Base64 base64 = new Base64();
public static void main(String[] args) {
org.apache.log4j.BasicConfigurator.configure();
post(new Route("/convert") {
@Override
public Object handle(Request request, Response response) /*throws Exception, Docx4JException*/{
//I want to do something like this:
new_request = new MultiPartFilter().process_my_request(request);
/* work with altered request*/
});
}
}
这可能吗?
我不明白为什么你想要以编程方式调用过滤器。将功能重构为可以被过滤器和非web应用程序代码调用的非过滤器类是否更有意义? – 2012-01-30 13:22:22
@DaveNewton:正如问题中提到的,我没有创建过滤器。我宁愿按原样使用代码,而不是理解其内部,并重构为非过滤器。 – Marcin 2012-01-30 13:33:45
我不知道这是多么可能;它们不返回响应,它们依赖于过滤器链等。重构功能位比建立请求处理链更容易。 – 2012-01-30 14:02:37