好象也是用的过滤器以前我也碰到这个问题,后来在这里高手们的帮忙下解决了 回复人: mlovex(史吹真悟) ( ) 信誉:100  2004-10-10 8:30:52  得分: 86  
 
 
   
自己写一个过滤器 也能实现你想要的功能 和我以前做的一个项目有些相象 给你段代码过滤器类:
package com.neusoft.icd.common;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class DecodeServlet extends HttpServlet implements Filter {
private FilterConfig filterConfig;
private String charSet = null;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
charSet = this.filterConfig.getInitParameter("charset");
}
//Process the request/response pair public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain filterChain)
throws ServletException, IOException { //类型转换
HttpServletRequest myrequest = (HttpServletRequest) request;
//类型转换
HttpServletResponse myresponse = (HttpServletResponse) response;
//取得session
HttpSession session = myrequest.getSession();
String path = myrequest.getRequestURI(); //如果用户不是通过正常登陆访问页面,则将其转到错误页面
if (!(("1".equals(session.getAttribute("ISUSER")))
|| ("/WebMail/index.jsp".equals(path))
|| ("/WebMail/index.do".equals(path))
|| ("/WebMail/modifypassword.jsp".equals(path))
|| ("/WebMail/modifypassword.do".equals(path)))) {
//设置session里的值,以便可以进入错误页面,不会死循环
//session.setAttribute("ISUSER", "1"); myresponse.sendRedirect("/WebMail/index.jsp");
Common.debug(path); }
request.setCharacterEncoding(charSet); //  filterChain.doFilter(request, response);
}
//Clean up resources
public void destroy() {
}
}相应的web.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
    <filter>
        <filter-name>decodeservlet</filter-name>
        <filter-class>com.neusoft.icd.common.DecodeServlet</filter-class>
        <init-param>
            <param-name>charset</param-name>
            <param-value>GBK</param-value>
            
        </init-param>
        
    </filter>
   
    <filter-mapping>
        <filter-name>decodeservlet</filter-name>
        <url-pattern>*.do</url-pattern>
        
    </filter-mapping>
    <filter-mapping>
        <filter-name>decodeservlet</filter-name>
        <url-pattern>*.jsp</url-pattern>
        
    </filter-mapping>
  
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
            
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>3</param-value>
            
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>3</param-value>
            
        </init-param>
        <load-on-startup>1</load-on-startup>
        
    </servlet>
    <servlet>
        <servlet-name>config</servlet-name>
        <servlet-class>com.neusoft.icd.webmail.struts.action.ConfigServlet</servlet-class>
        <init-param>
            <param-name>configpath</param-name>
            <param-value>/WEB-INF/webmailconfig.ini</param-value>
        </init-param>
        <init-param>
            <param-name>log4j</param-name>
            <param-value>/WEB-INF/src/log4j.properties</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>3</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>3</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
        
    </servlet-mapping>
    
</web-app>其中过滤器中的逻辑判断部分 你可以根据自己项目的需要改动 就可实现你要的功能了 不知道我这样说你是否明白