Gil*_*ili 3 java servlets servlet-filters
servlet或过滤器可以查找自己的URL模式吗?
意思是,如果我将一些servlet或过滤器绑定到/first/*并且/second/*请求进来,我可以找出这两个模式中的哪一个触发了它吗?
即使servlet只绑定到一个模式,有没有办法从servlet内部查找(而不是硬编码一个值)?
HttpServletRequest类上的这个方法可以帮到你.您将在HTTP请求调用的任何Servlet方法上获得HttpServletRequest的实例.
getServletPath
java.lang.String getServletPath()返回此请求调用servlet的URL的一部分.此路径以"/"字符开头,包括servlet名称或servlet的路径,但不包含任何额外的路径信息或查询字符串.与CGI变量SCRIPT_NAME的值相同.
看看这个:
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getServletPath()
您可以通过<url-pattern>以下方式获得 servlet的注册
ServletContext servletContext = getServletContext();
ServletRegistration servletRegistration = servletContext.getServletRegistration();
java.util.Collection<java.lang.String> mappings = servletRegistration.getMappings()
Run Code Online (Sandbox Code Playgroud)
并得到
final String path = getServletPath();
Run Code Online (Sandbox Code Playgroud)
来自requestAndreeas 建议并尝试通过比较字符串模式来找出映射
文档
servletRegistration.getMapping()servlet.getServletContext()servletContext.getServletRegistration()| 归档时间: |
|
| 查看次数: |
7916 次 |
| 最近记录: |