- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
JSF 应用程序可以在 session 过期时抛出 ViewExpiredException
。当您的系统上有 guest 时,此事件将很常见。因此,应用程序将处理此事件而不会给访客带来任何麻烦,如下所示:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/expired</location>
</error-page>
当客人试图在过期的 session 上发送请求时,他将被重定向到/expired
。因为我不认为这个Exception
是一个值得一提的问题,所以我想阻止将堆栈跟踪写入我的应用程序服务器的日志。
我怎样才能做到这一点?
最佳答案
基本上有 2 个选项,每个选项都归结为相同的解决方案:使用 servlet filter 自行捕获、抑制和导航到错误页面或 JSF exception handler .这样异常就不会到达 servletcontainer,后者会自动处理并记录它。
假设错误页面确实为您完成了工作(这不适用于 JSF ajax 请求,除非您有自定义的 JSF ExceptionHandler
),然后是一个映射到 URL 的 servlet 过滤器在其 doFilter()
方法中执行以下操作的模式匹配 JSF 请求应该足够了:
try {
chain.doFilter(request, response);
} catch (ServletException e) {
if (e.getRootCause() instanceof ViewExpiredException) {
request.getRequestDispatcher("/expired").forward(request, response);
} else {
throw e;
}
}
如果您还想涵盖 JSF ajax 请求,那么您不能绕过 JSF 异常处理程序。前往以下相关答案以查看一些具体示例:
关于java - 由错误页面处理的 ViewExpiredException,仍在日志中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119146/
我尝试关注不同的帖子,了解如何在 GlassFish 3.1 上的 Mojarra 2.1.0(使用 RichFaces 4)中处理 ViewExpiredException。但是我在 web.xml
我让一些带有表单的选项卡打开,当我按下命令按钮时( session 过期一段时间后)我收到一个 java 脚本警报说: serverError: class javax.faces.applicati
一周前,我研究了 ViewExpiredException,并阅读了几篇关于它的文章。 viewExpiredException JSF How to control web page caching
我想弄清楚如何防止 Session Fixation在 Glassfish 3.1 中的 JSF 登录表单上。 使用 Servlets 很容易做到,所以我试图对 JSF 做同样的事情(基于这个问题:R
我有一个使用rich:fileUpload 上传文件的页面。对于较小的文件,这可以正常工作,但是对于较大的文件 (+80MB),我通常会收到 ViewExpiredException。我已经尝试寻找解
我有包装器 PrimeFaces.ajax.AjaxResponse 来处理 ViewExpiredException(重新加载页面): var handleViewExpired = functio
JSF 应用程序可以在 session 过期时抛出 ViewExpiredException。当您的系统上有 guest 时,此事件将很常见。因此,应用程序将处理此事件而不会给访客带来任何麻烦,如下所
我正在 Glassfish v3 上开发一个 JSF 2.0 应用程序,我正在尝试处理 ViewExpiredException。但无论我做什么,我总是收到 Glassfish 错误报告,而不是我自己
我在我的项目中使用 JSF 2.0 和 Primefaces。 我有两个 xhtml 页面,即 Cars.xhtml 和 Bikes.xhtml。 我正在使用 ViewScoped 支持 bean。
我的 h:commandButton "Login"有问题:当我使用 @ViewScoped 并按下此按钮时,会出现 ViewExpiredException,但是当我使用 @SessionScope
出于记录目的,我有兴趣检测 JSF 应用程序中何时发生 session 超时。 我已经实现了一个 PhaseListener 来检查用户是否已登录并且其 session 是否已处于 Activity
在我的网络应用程序中,当 session 过期并且用户发起请求(完整页面或 AJAX)时,用户将被重定向到登录页面,并显示 session 已过期的消息。问题是,当登录页面保持打开的时间足够长以致 s
我已将以下内容放入我的 web.xml 中: javax.faces.application.ViewExpiredException /expiredIndex.jsf
我们最近将一个主要平台从 jsf 1.2 升级到了 2.0。升级后,我们每小时都会收到几个 ViewExpiredException 错误。通过阅读该主题,这似乎是 session 过期时的预期异常,
我有一个 Web 应用程序当前部署在 Wildfly 22 上,使用 JSF 2.3 和 OpenJDK 11。我目前正在将登录页面从 j_security_check 迁移到编程登录,按照这篇文章中
我有一个 jsf 1.2 应用程序,索引页中有一些链接。该链接可通过在新的 jquery 对话框中单击来打开。每个链接都会在不同的对话框中打开我的应用程序的新页面,因此,应用程序可以在单个页面的多个对
我按如下方式设置我的网络应用程序: javax.faces.application.ViewExpiredException /WEB-INF/include/vi
我们的应用程序使用的是 SUN JSF 1.2、WebSphere 7.0,我们仅在负载测试期间收到 ViewExpiredException 我已浏览以下链接 javax.faces.applica
我遇到一个问题,每次我重新部署我的应用程序时,任何现有 session 都会中断并且请求会导致 ViewExpiredException .相关问题或外部邮件列表/论坛帖子中的建议似乎都无法解决此问题
我使用 jsf、prettyfaces 和 hibernate 创建了此网页我环顾四周,大多数人说这个错误是因为缓存大多数人在登录、注销并尝试重新登录后发现此错误但我在登录时发现此错误,并且当我尝试导
我是一名优秀的程序员,十分优秀!