表单编码过滤器
如果用到了Spring,则可以使用org.springframework.web.filter.CharacterEncodingFilter替换掉
[html]
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
下面是JavaWeb工程中的web.xml配置
[html
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.jadyer.Filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
下面是用于设定表单传输参数编码的过滤器CharacterEncodingFilter.java
[java]
package com.jadyer.Filter;
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;
/**
* 设定传输参数编码
*/
public class CharacterEncodingFilter implements Filter {
private String encoding = "ISO8859_1";
/**
* 当过滤器对象被销毁的时候,由Web容器调用该方法
* @see 该方法主要用来释放过滤器对象所占用的资源
*/
public void destroy() {}
/**
* 由Web容器在刚生成过滤器对象的时候进行调用,主要用来完成对过滤器的初始化工作
* @see 该方法接收一个FilterConfig类型的参数,通过该参数以获得有关当前过滤器的信息
* @see 例如:调用FilterConfig的getFilterName()方法可以获得过滤器的名字
* @see 例如:调用getServletContext()方法可以获得当前的ServletContext对象
* @see 这里主要是用来读取web.xml中设定的<param-name>encoding</param-name>的值
*/
public void init(FilterConfig config) throws ServletException {
encoding = config.getInitParameter("encoding");
}
/**
* doFilter()方法是Filter接口中最核心的方法,完成过滤器的过滤功能
* @see FilterChain类型的对象是保存多个过滤器执行顺序的对象
* @see 一个Web应用中可以有多个过滤器,这些过滤器就像珠子被线串在了一起
* @see 调用时,是一个接着一个进行调用的,调用顺序是按照过滤器在web.xml中声明的先后顺序
* @see 通过调用FilterChain对象的doFilter()方法,可以调用下一个过滤器的doFilter()方法
* @see 如果下一个过滤器是最后一个,则调用客户端所请求的Servlet、JSP或者其它文件
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding); //设定表单参数编码方式
chain.doFilter(request, response);
}
}
补充:web前端 , HTML/CSS ,