严重: Exception starting filter Filter
java.lang.ClassNotFoundException: com.hp.filter.Filter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2016-6-14 22:15:55 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2016-6-14 22:15:55 org.apache.catalina.core.StandardContext start
严重: Context [/web10] startup failed due to previous errors
1我的过滤器代码是:
package com.web.filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
@author Administrator
*
*/
public class Filter implements javax.servlet.Filter {
private FilterConfig config;
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("doFilter");
// TODO Auto-generated method stub
/**
* 获取httprequest对象
/
HttpServletRequest httprequest = (HttpServletRequest) request;
/*
* 获取httpresponse对象
/
HttpServletResponse httpresponse = (HttpServletResponse) response;
/*
* 获取上下文参数
/
String noPat = config.getInitParameter("noPaths");
/*
* 分割字符
/
String[] str = noPat.split(";");
/*
* 循环遍历 分割的字符串
/
for (int i = 0; i < str.length; i++) {
/*
* 为空结束本次循环
*/
if (str[i] != null && "".equals(str[i]))
continue;
/**
* indexOf返回不为-1 放行
*/
if (httprequest.getRequestURI().indexOf(str[i]) != -1) {
chain.doFilter(request, response);
return;
}
}
/**
* 获取session中的username(用户名)
*/
String username = (String) httprequest.getSession().getAttribute(
"username");
/**
* 用户名不为空 放行
*/
if (username != null) {
chain.doFilter(request, response);
}
/**
* 用户名为空 拦截并返回登录页面
*/
else {
httpresponse.sendRedirect("login.jsp");
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
config = filterConfig;
System.out.println("init******************");
}
}
配置文件是:
<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Filter -->
Filter
com.hp.filter.Filter
noPaths
index.jsp;
Filter
.jsp;.html
<!-- IndexLoginServlet 登陆配置-->
IndexLoginServlet
com.web.servlet.IndexLoginServlet
IndexLoginServlet
/IndexLoginServlet
<!-- Indext2RegisterServlet注册配置 -->
Indext2RegisterServlet
com.web.servlet.Indext2RegisterServlet
Indext2RegisterServlet
/Indext2RegisterServlet
index.jsp
http://bbs.csdn.net/topics/390566187
web.xml中过滤器的路径配置不对,试试这个
Filter
com.web.filter
Filter
com.web.filter.Filter
noPaths
index.jsp;
Filter
.jsp;.html
问题解决了
错误原因1、web.xml中的filter-class中路径错误
改正之后还是无法实现过滤功能,但是开启tomcat不会报错了
后来发现
错误原因2(我的web页面只有jsp和html)过滤所有页面是/*
不能写成*.jsp;*.html
现在问题是直接访问html页面时,登陆页面的图片都不会加载,但是css样式却可以加载