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>


     

  • 相关阅读:
    JWT实现用户权限认证
    给你的网页添加一个随机的BGM
    Git版本控制
    常见数据的解析
    PHP处理CSV表格文件的常用操作方法是怎么样呢
    php curl语句的用法
    PHP操作Memcache基本函数的方法
    PHP使用PHPExcel删除Excel单元格指定列的方法是怎样
    php单链表实现的代码
    PHP中Array关于数组的用法
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131520.html
Copyright © 2011-2022 走看看