ITPub博客

首页 > 应用开发 > IT综合 > struts中配置过滤文件! (转)

struts中配置过滤文件! (转)

原创 IT综合 作者:a400 时间:2007-08-16 11:39:26 0 删除 编辑
struts中配置过滤文件! (转)[@more@]

在web.XML中加上

  Set Character Encoding
  com.ytoa.util.SetCharacterEncodingFilter
 

  encoding
  GB2312
 

 
  ignore
  true
 

 

  ping>
  Set Character Encoding
  <servlet-name>action
 

过滤文件为:
package com.ytoa.util;

import Javax.servlet.*;
import java.io.IOException;


public class SetCharacterEncodingFilter implements Filter {

  // ----------------------------------------------------- Instance Variables


  /**
  * The default character encoding to set for requests that pass through
  * this filter.
  */
  protected String encoding = null;


  /**
  * The filter configuration object we are associated with.  If this value
  * is null, this filter instance is not currently configured.
  */
  protected FilterConfig filterConfig = null;


  /**
  * Should a character encoding specified by the client be ignored?
  */
  protected boolean ignore = true;


  // --------------------------------------------------------- Public Methods


  /**
  * Take this filter out of service.
  */
  public void destroy() {

  this.encoding = null;
  this.filterConfig = null;

  }


  /**
  * select and set (if specified) the character encoding to be used to
  * interpret request parameters for this request.
  *
  * @param request The servlet request we are processing
  * @param result The servlet response we are creating
  * @param chain The filter chain we are processing
  *
  * @exception IOException if an input/output error occurs
  * @exception ServletException if a servlet error occurs
  */
  public void doFilter(ServletRequest request, ServletResponse response,
  FilterChain chain)
  throws IOException, ServletException {

  // Conditionally select and set the character encoding to be used
  if (ignore || (request.getCharacterEncoding() == null)) {
  String encoding = selectEncoding(request);
  if (encoding != null)
  request.setCharacterEncoding(encoding);
  }

  // Pass control on to the next filter
  chain.doFilter(request, response);

  }


  /**
  * Place this filter into service.
  *
  * @param filterConfig The filter configuration object
  */
  public void init(FilterConfig filterConfig) throws ServletException {

  this.filterConfig = filterConfig;
  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;

  }


  // ------------------------------------------------------ Protected Methods


  /**
  * Select an appropriate character encoding to be used, based on the
  * characteristics of the current request and/or filter initialization
  * parameters.  If no character encoding should be set, return
  * null.
  *


  * The default implementation unconditionally returns the value configured
  * by the encoding initialization parameter for this
  * filter.
  *
  * @param request The servlet request we are processing
  */
  protected String selectEncoding(ServletRequest request) {

  return (this.encoding);

  }

}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10790690/viewspace-961271/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    826
  • 访问量
    304888