- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我有一个 WebFilter。这个 Webfilter 应该检查一个 coockie。但是使用 FacesContext.getCurrentInstance() 会导致 Nullpointer 异常。我该如何解决这个问题?
网络过滤器:
@Inject
private CookieManager cm;
[...]
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if(cm.isDoCheck()){
cm.doCheck();
}
chain.doFilter(request, response);
}
[...]
[...]
private void doCheck(){
FacesContext context = FacesContext.getCurrentInstance();
Map<String, Object> cookies = context.getExternalContext().getRequestCookieMap();
Cookie cookie = (Cookie) cookies.get("frontend");
if(cookie != null){
setSessionHash(cookie.getValue());
}
}
[...]
context.getExternalContext().getRequestCookieMap();
给出
StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
最佳答案
FacesContext
由 FacesServlet
创建.在任何 servlet 之前调用任何 servlet 过滤器。 FacesContext
因此,每个定义在任何 servlet 过滤器中都不可用。
至于抓取请求cookies的具体功能需求,你似乎也完全忽略了FacesContext
这个事实。是 facade其中包括 ServletRequest
和 ServletResponse
. ExternalContext
的方法所有在幕后的代表ServletRequest
/ServletResponse
方法(这在其 javadoc 中明确提到,例如 getRequestCookieMap()
)。您需要的 cookie 方法可通过 ServletRequest
轻松获得doFilter()
的论据方法。
HttpServletRequest hsr = (HttpServletRequest) request;
Cookie[] cookies = hsr.getCookies();
// Loop over cookies to find the one matching the name.
FacesContext
在基于
ServletRequest
的过滤器中和
ServletResponse
变量,但如果这些变量本身中的信息很容易获得,那么这毕竟没有任何意义。
FacesServlet
“只是”一个 servlet)。阅读
ExternalContext
中的方法说明javadoc 还应该提示您所有这些方法在基本 Servlet API 中的确切位置获取它们的信息。
关于jsf - @WebFilter 和 FacesContext.getCurrentInstance() -> 空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270094/
我试图通过在FacesContext类的FacesContext.getCurrentInstance()方法中调用run()来获取Runnable,但它返回null。 public class Ta
无法在自生成的线程中获得“FacesContext.getCurrentInstance()”。 需要根据后端流程动态更新组件。通过创建一个线程来监视进程并与 p:poll 一起回调组件更新来实现相同
过去几天我一直在努力处理我的网络应用程序的登录部分。我已经可以使用 tomcat 上的 JDBCRealm 成功验证用户身份(通过从 sql 服务器数据库读取用户)。现在,当用户的帐户被阻止或凭据不正
我正在创建一个基于 Spring 的 JSF 应用程序,我在其中获取返回 null 的 FacesContext.getCurrentInstance。 这是我的 Java 代码 public sta
我是否认为这可能不是最好的主意: private static Application app = FacesContext.getCurrentInstance() .getAppl
安 Id作为 Url 参数传入。我尽量确保 id是一个数字。如果没有重定向到主页 if(facilityId != null){ try{ Long.parseLong(fac
在我的应用程序中,我有一个 WebFilter。这个 Webfilter 应该检查一个 coockie。但是使用 FacesContext.getCurrentInstance() 会导致 Nullp
在我的 jsf 应用程序中,我有大量与 FacesContext 相关的静态实用程序方法。我总是问自己同样的问题? 我应该通过参数将上下文传递给方法吗?或者使用 FacesContext.getCur
我使用的对话框框架: http://www.primefaces.org/showcase-labs/ui/dialogFrameworkData.jsf 我创建了一个文件 view_test.xht
无法获得 PrimeFaces RequestContext.getCurrentInstance().openDialog()上类。我直接从 primefaces 展示中提取了示例代码,但我从来没有
我正在使用 Spring、Hibernate 和 JSF。 为了从应用程序上下文中获取 bean,我写了: public static Object findBean(String name) {
我的页面: ... ... 我的托管Bean: public class ExampleManagedBe
当 faces-config.xml 中有 3 个消息包时,会返回哪一个?我可以控制应该返回哪一个吗?当我打印出 FacesContext.getCurrentInstance().getApplic
我有一个 Facelet,它有两个 .一种形式的命令链接可以毫无问题地执行。其他形式的命令链接不起作用:a NullPointerException被抛出是因为 FacesContext.getCu
这个问题在这里已经有了答案: How do I retrieve the FacesContext within a Filter (1 个回答) 关闭 7 年前。 我有一个处理用户 session
我已经检查了其他 stackoverflow 答案,但没有一个对 JSF facescontext 有答案,所以我不得不提出一个问题。我们有 jdk 6、jsf 1.2 和 mySQL 5.5,现在我
我是一名优秀的程序员,十分优秀!