zoukankan      html  css  js  c++  java
  • servlet过滤器之EncodingFilter

    在Action中得到从JSP页面中的数据 然后插入到oracle中却发现是乱码,我按着以下方式解决。

    首先:

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>


    发现还是乱码,然后在<head>里设置

    <meta http-equiv="content-type" content="text/html; charset=GBK">


    还是不行,接着在tomcat里 server.xml

     <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443"
    			   URIEncoding="GBK"/>


    本来是可以在servlet里加入

    request.setCharacterEncoding();


    但没有servlet 也不知道如何在struts里的action中怎么设置编码。

    最后想到了过滤器,还是用过滤器吧。

    首先编写一个类实现Filter接口

    package com.itmyhome.drp.filter;
    
    import java.io.*;
    import javax.servlet.*;
    
    public class EncodingFilter implements Filter {
    	private String charSet;
    
    	public void init(FilterConfig config) throws ServletException {
    		// 接收初始化的参数
    		this.charSet = config.getInitParameter("charset");
    	}
    
    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException {
    		request.setCharacterEncoding(this.charSet);
    		//继续执行
    		chain.doFilter(request, response);
    	}
    
    	public void destroy() {
    	}
    }
    


    在web.xml中配置<filter>和<filter-mapping>

    <filter>
    		<filter-name>encoding</filter-name>
    		<filter-class>com.itmyhome.drp.filter.EncodingFilter</filter-class>
    		<init-param>
    			<param-name>charset</param-name>
    			<param-value>GBK</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>encoding</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>


     

  • 相关阅读:
    剑指offer--50.滑动窗口的最大值
    剑指offer--49.矩阵中的路径
    剑指offer--48.机器人的运动范围
    剑指offer--47.数据流中的中位数
    剑指offer--46.字符流中第一个不重复的字符
    剑指offer--45.二叉树的深度
    剑指offer--44.两个链表的第一个公共结点
    剑指offer--43.连续子数组的最大和
    海盗分宝石问题
    C++数组名退化指针实例
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131520.html
Copyright © 2011-2022 走看看