tomcat过滤器教程
1. tomcat 过滤器 请求不到url的值
<url-pattern>/*Log.do</url-pattern>
</filter-mapping>
有一个过滤器配置。想已Log为结尾的访问进入此过滤器
访问路径如下
basicLog.do?action=init&logType=money_log&moneyType=2"
basicLog.do?action=init&logType=camp_log"
上面的web.xml配置 不会进入指定过滤器。但是改成
<url-pattern>*Log.do</url-pattern>
后 tomcat启动会有异常 tomcat6、7都会有问题
请问肿么办
异常为
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/gm_server]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1120)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1678)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> *Log.do in filter mapping
2013年11月14日 16:17
xiaozhu5615
5
0 0 1
2. 谁能解释下weblogic中转发web请求的时候会经过过滤器的处理,但是在tomcat中转发web请求时不会
在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ includefile="/index.jsp"%>的情况。
到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
这里FORWARD是解决request.getDispatcher("index.jsp").forward(request, response);无法触发Filter的关键,配置上这个以后再进行forward的时候就可以触发过滤器了。
在tomcat7已经是按照servlet3.0来加载了,所以默认不过滤处理转发的请求。而你测试用的weblogic还是用的servlet2.3,就能够过滤所有类型的请求,这就是问题所在
3. tomcat过滤器如何不过滤目录
配置的时候不要过滤systemConfig路径或者:
在过滤器里判断url是否包含"/systemConfig/"字符串,包含的话直接chain.doFilter(req,resp);
4. filter过滤器配置后 tomcat启动错误 Failed to start component
网上对这个问题 有很多的方法 好像这个问题也是原因多
我遇到也是这个问题专 原因是我的属jar包没有放到WEB_INF/lib里面 只是放在项目下面的libs文件夹 我把所有jar都删了 复制到WEB_INF/lib下面重新add build path 运行tomcat 就o了
唉也是弄了半天 啊 应该是tomcat 只认得这个路劲
5. tomcat回调过滤器的dofilter方法怎么理解
你的web.xml中少了一部配置吧,调用过滤器的时候不是直接访问这个servlet,而是在你访问其他进行业务处理的servlet时自动调用的
6. 新版tomcat怎么配置过滤器
在Servlet上面加上@WebServlet("路径")
7. 为什么tomcat不能加载web.xml中的过滤器
根据请求url 启tomcat 通server.xml找前项目servletContext文
请求url候 tomcat读取配置文件web.xml 读取拦版截器、filter滤器配置 再servlet servlet/jsp 都请求/响应模式权 说请求才servlet调用才响应
8. Java在tomcat启动时加载过滤器,我过滤器中有条件,不满足就中止tomcat启动
自己工程里写个filter ,判断条件,如果不满足则: System.exit(0);
9. tomcat中过滤器实现具有哪些不足
呵呵,不知你要过滤什么东西,我只用过在Tomcat里面配置过滤字符的,不过也用的少,一般都是在项目里面配置,配置在Tomcat里面的话不灵活,在项目里面配置过滤器可以很灵活,比如做用户登录过滤,而Tomcat就不好搞,而且移植性也不好撒,你配置在Tomcat这个里面,那我的项目换到JBOss里面去了怎么办了!
10. 配置了过滤器就没办法启动Tomcat 删了过滤器配置就好了
网上对这个问题 有很多的方法 好像这个问题也是原因多
我遇到也是这个问题 原因是我的jar包没有放到WEB_INF/lib里面 只是放在项目下面的libs文件夹 我把所有jar都删了 复制到WEB_INF/lib下面重新add build path 运行tomcat 就o了
唉也是弄了半天 啊 应该是tomcat 只认得这个路劲