我正在研究一个服务器,该服务器有效连接到其他服务器,沿途运行一些nifty 助手功能。 我的 Web.xml 配置可以引导所有交通通过此类, 而班级则根据路由Info 和 Regex 逻辑来跟踪请求。 我的代码是这样的:
public class API1 extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String pathInfo = req.getPathInfo();
if (pathInfo.matches("/.*/.*/.*/?")) {
_fooBarBazHandler.get(req, resp);
} else if (pathInfo.matches("/.*/.*/?")) {
_fooBarHandler.get(req, resp);
} else if (pathInfo.matches("/.*/?")) {
_fooHandler.get(req, resp);
} else {
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
}
...
}
现在,我的想法是,如果我打到 http://host/FooServicice/foo/bar/baz
,该代码将转向 ,
http://host/FooServicice/foo/bar/code >,那么,如果我打到
,而
http://host/FooServicice/foo
将打到 。
然而,出于某种原因,http://host/FooService/foo
显然在 pathInfo
的价值是“/foo”。
我的Regex不太强,有什么想法吗?