这是控制台打印的错误信息严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.filter_005fchinise_jsp._jspInit(filter_005fchinise_jsp.java:23)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:338)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.myfilter.Filter_log.doFilter(Filter_log.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.myfilter.ChiniseFilter.doFilter(ChiniseFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)这是Filter类的源文件:
Filter_log.java
public class Filter_log implements Filter{

//声明一个log对象
private Log log=LogFactory.getLog(this.getClass());
//声明一个filterName变量,用来表示当前Filter名称
private String filterName;

public void init(FilterConfig config) throws ServletException {
//获取Filter名称,赋值给filterName变量
filterName=config.getFilterName();
//设置启动时记录日志
log.info("启动Filter:"+filterName);
}

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)res;
//获取执行前的时间
long startTime=System.currentTimeMillis();
//获取访问的URI
String requestURI=request.getRequestURI();
//获取request请求中的所有地址栏参数
requestURI=request.getQueryString()==null?requestURI : (requestURI+"?"+request.getQueryString());
//调用doFilter方法,执行下一个Filter或Servlet
chain.doFilter(request, response);[/color[color=#FF0000]]//执行到这行发生了错误
//获取执行后的时间
long endTime=System.currentTimeMillis();
//获取消耗的总时间
log.info(request.getRemoteAddr()+"访问了"+requestURI+",总时间"+(endTime-startTime)+"毫秒。");
}
public void destroy() {
//销毁时记录日志
log.info("关闭Filter"+filterName);
}
}

解决方案 »

  1.   

    检查web.xml filter是否配置正确
      

  2.   

    是你的JSP中有问题,从错误堆栈信息看,错误真正的原因是在你的jsp中,检查下你的JSP
      

  3.   

    贴出我的JSP文件以及web.xmlfilter_chinise.jsp
    <body>
        <%
        String username="无极";
        String sex="男";
        String addr="地球";
        request.setAttribute("username",username);
        request.setAttribute("sex",sex);
        request.setAttribute("addr",addr);
        request.getRequestDispatcher("filter_chinise_get.jsp").forward(request,response);
        %>
      </body>filter_chinise_get.jsp
     <body>
        username的值:<%=request.getAttribute("username") %> <br />
        sex的值:<%=request.getAttribute("sex") %> <br />
        addr的值:<%=request.getAttribute("addr") %>
      </body>web.xml
     <filter>
       <filter-name>ChiniseFilter</filter-name>
       <filter-class>com.myfilter.ChiniseFilter</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>ChiniseFilter</filter-name>
       <url-pattern>/*</url-pattern>
       <dispatcher>REQUEST</dispatcher>
      </filter-mapping>