¡¡¡¡ÎÒ¿ª·¢»ùÓÚ eclipse3.2+j2ee5.0 +tomcat5.09+mysql5.0
¡¡¡¡Ò»¡¢±íµ¥POSTµÄÊý¾ÝµÄÖÐÎÄÂÒÂë½â¾ö
¡¡¡¡ ¡¡¡¡ÕâÀàÐ͵ÄÊý¾ÝÖÐÎÄ¿ÉÒÔͨ¹ýfiltersÀ´ÊµÊ±¹ýÂË¡£filters´úÂëÈçÏ£º
¡¡¡¡package filters;
¡¡¡¡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.UnavailableException;
¡¡¡¡public class SetCharacterEncodingFilter implements Filter ...{
¡¡¡¡¡¡protected String encoding = null;
¡¡¡¡¡¡protected FilterConfig filterConfig = null;
¡¡¡¡¡¡protected boolean ignore = true;
¡¡¡¡¡¡public void destroy() ...{
¡¡¡¡this.encoding = null;
¡¡¡¡this.filterConfig = null;
¡¡¡¡¡¡}
¡¡¡¡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);
¡¡¡¡}
¡¡¡¡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 String selectEncoding(ServletRequest request) ...{
¡¡¡¡¡¡return (this.encoding);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡
¡¡¡¡filtersÅäÖã¨ÅäÖÃweb.xml£©£º
¡¡¡¡
¡¡¡¡£¼filter£¾
¡¡¡¡¡¡£¼filter-name£¾Set Character Encoding£¼/filter-name£¾
¡¡¡¡¡¡£¼filter-class£¾filters.SetCharacterEncodingFilter£¼/filter-class£¾
¡¡¡¡¡¡£¼init-param£¾
¡¡¡¡£¼param-name£¾encoding£¼/param-name£¾
¡¡¡¡£¼param-value£¾GBK£¼/param-value£¾
¡¡¡¡¡¡£¼/init-param£¾
¡¡¡¡£¼/filter£¾
¡¡¡¡£¼filter-mapping£¾
¡¡¡¡¡¡£¼filter-name£¾Set Character Encoding£¼/filter-name£¾
¡¡¡¡¡¡£¼url-pattern£¾/*£¼/url-pattern£¾
¡¡¡¡£¼/filter-mapping£¾
¡¡¡¡
¡¡¡¡
¡¡¡¡¶þ¡¢½«ÖÐÎÄÊý¾Ý´æÈëÊý¾Ý¿âÂÒÂëÎÊÌâ
¡¡¡¡ÒÔmysqlΪÀý£¬¸ÄдÁ¬½Ó×Ö·û´®¼´¿É£º
¡¡¡¡jdbc:mysql://localhost:3306/workshopdb? useUnicode=true&characterEncoding=GBK
¡¡¡¡Èý¡¢ ͨ¹ýurl´«µÝ²ÎÊýºÍʶ±ðÖÐÎÄÎļþÃûÎÊÌâ
¡¡¡¡ÎÊÌâ±íÏÖ£º£±¡¢Í¨¹ýurl´«µÝ²ÎÊý£¬ÀýÈ磺¡¡¡¡
¡¡¡¡http://localhost:81/crjy/admin/articlelist.jsp?levelId=64&levelName=ѧÉúµ³½¨
¡¡¡¡
¡¡¡¡Í¨¹ýrequest.getParameter("levleName")µÃµ½µÄֵΪÂÒÂê¡£
¡¡¡¡£²¡¢Ê¶±ðÖÐÎÄÎļþÃû£¬ÀýÈ磺
¡¡¡¡<img src="./pic/ËÄ´¨µØͼ.jpg"> ͼƬ²»ÄÜÏÔʾ¡£
¡¡¡¡½â¾öÖ®µÀ£º
¡¡¡¡£±¡¢Èç¹ûÖ»Ïë½â¾öµÚÒ»¸öÎÊÌâÄǺܼòµ¥£¬Á½¾ä´úÂë¼´¿É£º
¡¡¡¡String role=request.getParameter("chara");
¡¡¡¡role=new String(role.getBytes("ISO-8859-1"),"GB2312");
¡¡¡¡out.println(role);
¡¡¡¡ÒòΪtomcat·þÎñÆ÷ĬÈÏÓá¡ISO-8859-1¡¡×Ö·û¼¯µÄ¡£µ«ÊÇÕâÑùÖ»Äܽâ¾öµÚÒ»¸öÎÊÌâ²»Äܽâ¾öÖÐÎÄÎļþÃûÎÊÌâ
¡¡¡¡£²¡¢Á½¸öÎÊÌâÒ»Æð½â¾ö£¬ÐÞ¸Äserver.xml£¬ÕÒµ½ÏÂÁÐÓï¾äÌí¼ÓURIEncoding="GB18030"£¬ÕâÑùÁ½¸öÎÊÌâ¾ÍÒ»Æð½â¾öÁË£¨²»ÐèÒªrole=new String(role.getBytes("ISO-8859-1"),"GB2312");ת»¯£¬µÃµ½µÄ²ÎÊý¼´ÎªÕý³£µÄÖÐÎÄ£©¡¡
¡¡¡¡ <Connector acceptCount="100" connectionTimeout="20000" debug="0" disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="81" redirectPort="8443"/>
¡¡¡¡¡¡ÁíÍâÐí¶àÎÄÕ½éÉÜ¿ÉÒÔÌíURIEncoding="UTF-8"£¬ÕâÑùÊÇ¿ÉÒÔ½â¾öÖÐÎÄÎļþÃûÎÊÌ⣬µ«ÊÇͨ¹ýString role=request.getParameter("chara");µÃµ½url´«µÝµÄ²ÎÊýʱ£¬µÃµ½µÄÊÇUTF-8±àÂëµÄ£¬ÐèҪתΪGB2312±È½ÏÂé·³¡£
¡¡¡¡ÒÔÉÏÊDZ¾ÈËÔÚʹÓÃÖеÄ×ܽᣬϣÍû´ó¼ÒÌṩ±¦¹óÒâ¼û¡£
¡¡¡¡http://blog.csdn.net/lijiuu/archive/2007/02/25/1514354.aspx