我正在使用JSP和Servlet构建一个站点。
如何映射此example.com/12345
之类的网址,以便获得响应,就好像请求是example.com/content.jsp?id=12345
一样?
答案 0 :(得分:3)
使用url-pattern
/*
,按HttpServletRequest#getPathInfo()
收集路径信息,最后通过RequestDispatcher#forward()
将请求转发到所需目的地。
基本启动示例(除了业务逻辑和异常处理):
String pathInfo = request.getPathInfo();
String id = pathInfo.substring(1); // Get rid of trailing slash.
String newURL = String.format("/content.jsp?id=%d", id);
request.getRequestDispatcher(newURL).forward(request, response);
或者,特别是如果实际上没有涉及业务逻辑,您也可以使用Tuckey's UrlRewriteFilter。通过这种方式,您可以像使用Apache HTTPD众所周知的mod_rewrite
一样重写URL。