我試圖實現一個自定義的灰熊HttpHandler,但很難試圖簡單地從傳入的請求中提取路徑信息。請參見下面的小例子:Grizzly的Request.getPathInfo總是返回null?
public class PathInfoTest {
public static void main(String[] args) throws IOException {
final HttpServer httpServer = new HttpServer();
final NetworkListener nl = new NetworkListener(
"grizzly", "localhost", 8080);
httpServer.addListener(nl);
httpServer.getServerConfiguration().addHttpHandler(
new HandlerImpl(), "/test");
httpServer.start();
System.in.read();
}
private static class HandlerImpl extends HttpHandler {
@Override
public void service(Request request, Response response)
throws Exception {
System.out.println(request.getPathInfo());
System.out.println(request.getContextPath());
System.out.println(request.getDecodedRequestURI());
System.out.println(request.getHttpHandlerPath());
}
}
我認爲這將告訴灰熊是其中的URL以啓動所有傳入的請求「/測試」應HandlerImpl
,這似乎工作至今處理。然而,做一個GET到http://localhost:8080/test/foo
時,該代碼打印以下到stdout
:
null
/test
/test/foo
null
我主要關注的是第一null
,這應該是路徑信息。我希望在本例中它是foo
,而不是null
。誰能給我解釋一下:
- 爲什麼兩者
getHttpHandlerPath()
和getPathInfo()
回報null
在這個例子嗎? - 此外,我懷疑後者是第一個的後果,這是正確的嗎?
- 我如何才能在灰熊網站的「未路由」部分獲得我的手?
http://stackoverflow.com/questions/3745275/ how-come-request-getpathinfo-in-service-method-returns-null – gavenkoa
@gavenkoa您鏈接的問題與Servlet有關,而這個問題與Servlet無關。 – Waldheinz