首先建立两个jsp页面,login.jsp和check.jsp,login用于表单提交,check负责获取表单属性,最后再建立过滤器完成对表单的中文字符的处理
过滤器代码展示如下:
@WebFilter(urlPatterns = "/*") //用注解的方式进行配置
public class EncodingFilter implements Filter {
private String encoding;
//初始化参数值
public void init(FilterConfig config) throws ServletException {
encoding = config.getInitParameter("encoding");
if (encoding == null) {
encoding = "UTF-8"; // 默认编码为UTF-8
}
}
//处理方法
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response); //传递给下一过滤器
}
//销毁并释放资源
public void destroy() {
encoding = null;
}
其中使用注解的方式来完成配置,总体分成,初始化、处理方法和销毁三个部分,将编码处理方式设为UTF-8
功能验证如下:
最难的地方是WEB.xml的配置,这块我没有成功显示过,参考了其他同学和gpt的方法也都没有显示成功,所以用的是注解的方式来完成。
有时候覆写类的时候可能会报错,一般可以添加@Override这种注解来解决,或者也可以import相关的父类