如何重写JSP URL,例如:
myhost/UserMVC/index.jsp?id=5&&name=tome
到
myhost/UserMVC/index/5/tome
然后获取5
和tome
?
答案 0 :(得分:1)
使用此UrlRewriteFilter http://tuckey.org/urlrewrite/并编写如下规则。
<urlrewrite>
<rule>
<from>^/UserMVC/index/(.*)/(.*)$</from>
<to>/UserMVC/index.jsp?id=$1&&name=$2</to>
</rule>
</urlrewrite>
在某些情况下,您需要使用outbound-rule标记。 UrlRewriteFilter有很好的文档。
答案 1 :(得分:0)
在web.xml中,您可以选择侦听哪种URL模式。在WEB-INF/web.xml
:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.stackoverflow.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
任何进入/ test / *的HTTP请求都将由TestServlet处理。在该类中,您可以使用HttpServletRequest来访问上下文路径。
public class TestServlet implements javax.servlet.Filter{
// ...
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
try {
HttpServletRequest hReq = (HttpServletRequest) req;
String path = hReq.getContextPath();
} catch (Exception e) {
// TODO: handle exception
}
}
// ...
}
现在您可以按照自己喜欢的方式处理路径。正如@Tiny建议的那样,你可能最好使用像Jersey这样的REST框架。