郁闷了。必须在设置request编码方式后加一句request.getParameter才能生效过滤器代码片断:
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {

if (this.forceEncoding || request.getCharacterEncoding() == null) { request.setCharacterEncoding(this.encoding);
request.getParameter("mm");//加上这句话就一切正常了,否则乱码
}
filterChain.doFilter(request, response);
}
-------------------------------------------
web.xml <filter>
<filter-name>encodingFilter</filter-name>
<filter-class>cn.edu.njtu.mofan.common.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.page</url-pattern>
</filter-mapping>
请教,有没有人遇到过相似的情况。另外可能的原因是什么。谢谢