gpt4 book ai didi

FilterChain doFilter 方法中的 java.lang.NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:10 26 4
gpt4 key购买 nike

我在 web.xml 部署描述符中添加了一个过滤器。但是每当请求到达服务器时,过滤器就会抛出 NullPointerException

java.lang.NullPointerException 
org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:427)
org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:340)
org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:664)
org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:884)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

下面给出了发生异常的代码段。

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;

boolean isAjax = "XMLHttpRequest".equals(httpRequest.getHeader("x-requested-with"));


HttpSession httpSession = httpRequest.getSession(false);

if(isAjax){
if(isValidRequest(httpRequest, httpSession)){
chain.doFilter(request, response);
}else{
returnInvalidMessage(httpRequest, httpResponse);
}
}else{
chain.doFilter(request, response); /* Here is the exception occures */
}
}

以下行发生异常

chain.doFilter(请求,响应);

有人对此有想法吗?

最佳答案

更改为

 String h = httpRequest.getHeader("X-Requested-With");
boolean isAjax = (h == null?false:h.indexOf("XMLHttpRequest")>=0);
如果这是 ajax 请求,

isAjax 应评估为 true

关于FilterChain doFilter 方法中的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com