struts中配置過濾檔案! (轉)

a400發表於2007-08-16
struts中配置過濾檔案! (轉)[@more@]

在.中加上

  Set Character Encoding
  com.ytoa.util.SetCharacterEncodingFilter
 

  encoding
  GB2312
 

 
  ignore
  true
 

 

 
  Set Character Encoding
  action
 

過濾為:
package com.ytoa.util;

import x.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 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;

  }


  /**
  * 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部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-961271/,如需轉載,請註明出處,否則將追究法律責任。

相關文章