如何使用Servlet过滤器来更改来自的传入Servlet请求网址
http://nm-java.appspot.com/Check_License/Dir_My_App/Dir_ABC/My_Obj_123
至
http://nm-java.appspot.com/Check_License?Contact_Id=My_Obj_123
?
javax.servlet.Filter
doFilter()
ServletRequest
HttpServletRequest
HttpServletRequest#getRequestURI()
java.lang.String
substring()
split()
oncat()
ServletRequest#getRequestDispatcher()
RequestDispatcher#forward()
ServletResponse
HttpServletResponse
HttpServletResponse#sendRedirect()
web.xml上url-pattern的/*
/Check_License/*
不要忘记在代码中添加检查,如果需要更改URL ;如果不需要,则只需调用FilterChain#doFilter(),否则它将在无限循环中调用自身。
FilterChain#doFilter()
另外,你也可以只使用现有的第三方API为你完成所有工作,例如Tuckey的UrlRewriteFilter,可以像使用Apache的方式进行配置mod_rewrite。
Tuckey的UrlRewriteFilter
Apache
mod_rewrite