Filter拦截请求 ServletContext context = this.config.getServletContext();报500错

问题描述

Filter拦截记录用户请求代码如下:publicclassLogfilterimplementsFilter{privateFilterConfigconfig;publicvoiddestroy(){//TODOAuto-generatedmethodstubthis.config=null;}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{//TODOAuto-generatedmethodstub26:ServletContextcontext=this.config.getServletContext();longbefore=System.currentTimeMillis();System.out.println("开始过滤...");HttpServletRequesthrequest=(HttpServletRequest)request;context.log("Filter已经截获用户的请求地址:"+hrequest.getServletPath());try{chain.doFilter(request,response);}catch(Exceptione){e.printStackTrace();}longafter=System.currentTimeMillis();context.log("过滤结束!");context.log("请求被定位到:"+((HttpServletRequest)request).getRequestURI()+"所用时间为:"+(after-before));}publicvoidinit(FilterConfigfilterConfig)throwsServletException{//TODOAuto-generatedmethodstubthis.config=config;}}作用是记录所有请求,但不拦截,编译通过测试时报错:严重:Servlet.service()forservletjspthrewexceptionjava.lang.NullPointerExceptionatprimary.filter.Logfilter.doFilter(Logfilter.java:26)(Logfilter.java:26既ServletContextcontext=this.config.getServletContext();)不睡觉在线等高手答案~~~

解决方案

解决方案二:
privateFilterConfigconfig;这个对象什么时候赋值的呢?没赋值当然会出现空指针异常啦
解决方案三:
如何在XML中配置参数让init,this.config=config;来初始化呢怎么弄都时ServletContextcontext=this.config.getServletContext();空指针
解决方案四:
publicvoidinit(FilterConfigfilterConfig)throwsServletException{//TODOAuto-generatedmethodstubthis.config=config;}把里面的this.config=config;改为this.config=filterConfig;即可
解决方案五:
该回复于2009-07-18 00:21:53被版主删除
解决方案六:
3楼答案正确
解决方案七:
你也可以把第26行,写到init方法里面去。

时间: 2024-12-10 19:47:16

Filter拦截请求 ServletContext context = this.config.getServletContext();报500错的相关文章

filter拦截tomcat的默认访问路径

问题描述 filter拦截tomcat的默认访问路径 http://localhost:8080 可以访问到我的项目 index.jsp 我想拦截http://localhost:8080这个请求 filter的url-pattern的应该怎么设置 或者有没有其他的办法 不想用/*来拦截所有请求 我是想问怎么才能拦截到http://localhost:8080这个请求 解决方案 设置Tomcat默认访问路径Tomcat的默认访问路径问题 解决方案二: index.htmlindex.htmind

package-ssh的struts2拦截器拦截请求后页面为什么没有跳转

问题描述 ssh的struts2拦截器拦截请求后页面为什么没有跳转 我在struts.xml里把拦截器添加到了新的拦截器栈,命名了一个package名,然后我在一个子的struts-action-index.xml里继承了这个package做登录验证,并且程序执行时已经进入了拦截器类,并且执行完了类里的代码,返回了Action.Login,为什么通过全局返回处理页面没有跳转到登录页面 <package name=""struts-default-json""

spring中的拦截-Spring中的拦截请求问题。?

问题描述 Spring中的拦截请求问题.? <!-- ROLE_SUPERVISOR --> <intercept-url pattern="/portal/*" access="IS_AUTHENTICATED_ANONYMOUSLY" /> <!-- ROLE_003001,ROLE_003002,ROLE_003003,ROLE_004,ROLE_002003,ROLE_001 --> <form-login logi

数据-https请求忽略证书,在4.4系统上可以正常请求,4.2以下都报异常。

问题描述 https请求忽略证书,在4.4系统上可以正常请求,4.2以下都报异常. https请求忽略证书,在4.4系统上正常请求,并返回数据,4.2及以下的系统,试过了,都报一下异常,无论真机还是模拟器. 02-25 05:33:23.591: W/System.err(6405): java.lang.RuntimeException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format fo

Tomcat7.0.32 Filter拦截不到 @&amp;amp;lt;%@ include file=&amp;#039;xxx.jsp&amp;#039;%&amp;amp;gt;请求

问题描述 <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ja

关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)

  前言:今天在网上无意间看到cas单点登录排除请求的问题,发现很多人在讨论如何通过改写AuthenticationFilter类来实现忽略/排除请求URL的功能:突发奇想搜了一下,还真蛮多人都是这么干的,原谅我是个耿直的boy,当时我笑的饭都喷出来了,只需要一个配置的问题,被你们搞的这么麻烦:虽然很想回复他们"你们这帮人用别人的东西都不看源码的吗?",转念一想,这也要怪作者不给力,文档里压根没有提到这个配置,在这里用少量篇幅讲解如何配置排除不需要拦截的请求URL,后面用大量篇幅介绍我

Web.config配置sessionstate mode=&amp;amp;quot;stateserver&amp;amp;quot; SWFUpload上传图片报500错误

问题描述 如题我用demo也是这样怎么解决? 解决方案

Servlet的Filter的使用

    Filter可认为是Servlet的"加强版",主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.Filter也可以对用户请求生成相应,这一点与Servlet相同,但实际上很少会这样使用.使用Filter的完整流程是:Filter对用户的请求进行预处理,接着将请求交给Servlet进行处理并响应生成,最后Filter在对服务器响应进行后处理. 1. Filter有如下几个用处: 在HttpServletRequest到达S

Filter及FilterChain的使用详解+回顾

一.Filter的介绍及使用 什么是过滤器? 与Servlet相似,过滤器是一些web应用程序组件,可以绑定到一个web应用程序中.但是与其他web应用程序组件不同的是,过滤器是"链"在容器的处理过程中的.这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息.这种访问使得过滤器可以检查并修改请求和响应的内容. 过滤器适用于那些地方? l  为一个web应用程序的新功能建立模型(可被添加到web应用程序中或者从web应用程序中删除而