严重: Exception starting filter characterEncoding

web.xml
<?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">
ch12

front/index.jsp

Struts info

struts2
org.apache.struts2.dispatcher.FilterDispatcher


struts2
/*


struts-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUp


struts-cleanup
/*

2010-12-2 10:13:23 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter characterEncoding
java.lang.ClassNotFoundException: com.casa2.struts.characterEncodingFilter
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:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
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:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
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)
2010-12-2 10:13:23 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2010-12-2 10:13:23 org.apache.catalina.core.StandardContext start
严重: Context [/ch13] startup failed due to previous errors

这是我的一个项目的配置

Set Character Encoding
com.****.EncodingFilter

encoding
UTF-8



Set Character Encoding
/*

EncodingFilter 的内容是

public class EncodingFilter implements Filter {

private FilterConfig filterConfig = null;
private String encoding = null;
private boolean ignore = true;

public final void init(final FilterConfig arg0) throws ServletException {
    this.filterConfig = arg0;
    this.encoding = filterConfig.getInitParameter("encoding");
    String value = filterConfig.getInitParameter("ignore");
    if (value == null) {
        this.ignore = true;
    } else if (value.equalsIgnoreCase("true")) {
        this.ignore = true;
    } else if (value.equalsIgnoreCase("yes")) {
        this.ignore = true;
    } else {
        this.ignore = false;
    }
}

public final void doFilter(final ServletRequest request,
        final ServletResponse response, final FilterChain chain)
        throws IOException, ServletException {
    if (ignore || (request.getCharacterEncoding() == null)) {
        String encoding1 = selectEncoding(request);
        if (encoding1 != null) {
            request.setCharacterEncoding(encoding1);
        }
    }
    try {
        chain.doFilter(request, response);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
    //如果你没用hibernate 把这部分删除就行了      HibernateSessionFactory.closeSession();
        } catch (Exception e) {
        }
    }
}

public final void destroy() {
    this.encoding = null;
    this.filterConfig = null;

}

protected final String selectEncoding(final ServletRequest request) {
    return (this.encoding);
}

}
都晚上了还没弄好啊,估计急坏了吧 :wink:

意思是没有找到这个com.casa2.struts.characterEncodingFilter
类。
看你代码是不是报错了,如果没有是不是该在web.xml中加

Set Character Encoding
com.casa2.struts.characterEncodingFilter


encoding
UTF-8



Set Character Encoding
/*

你不会直接把我给你这段代码拷过去了吧?

encoding
UTF-8

这个地方的encoding应该是你characterEncodingFilter 类里取的,我的是用filterConfig.getInitParameter("encoding");你也可以直接写死