Ala*_*in 5 java servlets servlet-filters
(对不起我的英语,我说法语)
在我正在编写的过滤器中,我需要知道用户请求的 servlet 的名称。它将允许我检查 servlet 是否与我的数据库条目匹配。事实上,我正在编写一个限制过滤器。这是它的工作原理:
我检查数据库中是否为当前用户的访问权限定义了条目 servletName-service 。如果是,则调用 servlet,否则重定向到连接页面。
如何获取过滤器中的当前 Servlet 对象或名称?
使用 Eclipse 的调试工具,我注意到作为 Filter.doFilter 方法参数给出的 FilterChain 对象包含一个名为“userListe”的对象 servlet。但这个对象是私有的,所以我不能使用它。你知道有什么办法可以帮助我吗?
((我确实需要在过滤器中完成这项工作,因为涉及到许多 servlet。))
谢谢你的帮助
您可以使用该方法httpRequest.getServletPath()来确定调用了哪个 servlet。它返回当前 servlet 的 URL(例如/users/liste),它与 servlet 的名称不同,但如果我正确理解你的问题,它应该可以解决问题。
您可以使用该方法httpRequest.getMethod()检索所使用的http方法(get、post等)。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String servletPath = httpRequest.getServletPath();
String httpMethod = httpRequest.getMethod();
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |