mak*_*aks 2 java servlets servlet-filters
如何在过滤器中执行重定向到调用此过滤器的servlet或jsp.实际上,我想检查用户是否还没有看到某些内容,然后,在尝试获得forbbiden资源时,用户将留在他试图获取该资源的页面.
在该doFilter()方法中,您需要将获得的ServletResponse参数强制转换为HttpServletResponse然后sendRedirect()在其上调用方法.发出请求的页面可以通过referer请求标题获得(是的,带有legendaric拼写错误),这可以通过HttpServletRequest#getHeader()从ServletRequest参数中转换后获得.
if (userHasPermission) {
chain.doFilter(request, response);
} else {
String referrer = ((HttpServletRequest) request).getHeader("referer");
((HttpServletResponse) response).sendRedirect(referrer);
}
Run Code Online (Sandbox Code Playgroud)
请注意,引荐来源是客户控制的值,因此可以欺骗甚至删除.您希望对获得的值添加条件检查,当缺席或无效时,重定向到主页面或其他地方.
servlet-filters维基页面(您可以通过将鼠标放在问题下方的标签上直到弹出框显示然后单击弹出框上的信息链接来获取此页面)| 归档时间: |
|
| 查看次数: |
5783 次 |
| 最近记录: |