我想創建一個輕量級,自包含的使用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