为所有页面创建监听器
Create a listener for all pages
我必须使用一些 监听器 class 来监听所有页面。根据url,我必须拆分它并获取一些信息。
例如:
x.domain.com/$member
我想通过url获取成员名称,获取以下bean并检索一些数据库信息。
所以,我创建了一个 PhaseListener 来完成这项工作,但并不是每次我需要它时都会调用它,例如在出现 404 错误的情况下。
我该如何进行?
非常感谢:)
PS : 我正在使用 Glassfish 4.1。
使用映射到正常和错误页面请求的 servlet filter:
<filter-mapping>
<filter-name>yourFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
在过滤器内部,您可以通过是否存在以 RequestDispatcher#ERROR_REQUEST_URI
键控的请求属性来检查它是否在错误页面上被触发。
String errorRequestURI = (String) request.getAttribute(RequestDispatcher.ERROR_REQUEST_URI);
if (errorRequestURI != null) {
// Error page was triggered on the given URI.
}
我必须使用一些 监听器 class 来监听所有页面。根据url,我必须拆分它并获取一些信息。
例如:
x.domain.com/$member
我想通过url获取成员名称,获取以下bean并检索一些数据库信息。
所以,我创建了一个 PhaseListener 来完成这项工作,但并不是每次我需要它时都会调用它,例如在出现 404 错误的情况下。
我该如何进行?
非常感谢:)
PS : 我正在使用 Glassfish 4.1。
使用映射到正常和错误页面请求的 servlet filter:
<filter-mapping>
<filter-name>yourFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
在过滤器内部,您可以通过是否存在以 RequestDispatcher#ERROR_REQUEST_URI
键控的请求属性来检查它是否在错误页面上被触发。
String errorRequestURI = (String) request.getAttribute(RequestDispatcher.ERROR_REQUEST_URI);
if (errorRequestURI != null) {
// Error page was triggered on the given URI.
}