本文共 2378 字,大约阅读时间需要 7 分钟。
表单页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>表单
处理表单的Servlet:
public class EncodingServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(username + ":" + password); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); }}
过滤器:
package pers.zhang.filter;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import java.io.IOException;import java.io.UnsupportedEncodingException;/** * @author zhang * @date 2019/9/21 - 15:55 */public class EncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //被增强的对象 HttpServletRequest request = (HttpServletRequest) servletRequest; //增强对象 EnhanceRequest enhanceRequest = new EnhanceRequest(request); filterChain.doFilter(enhanceRequest, servletResponse); } @Override public void destroy() { }}class EnhanceRequest extends HttpServletRequestWrapper { private HttpServletRequest request; public EnhanceRequest(HttpServletRequest request) { super(request); this.request = request; } //对getParaameter增强 @Override public String getParameter(String name) { String parameter = request.getParameter(name);//乱码 try { parameter = new String(parameter.getBytes("iso8859-1"),"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return parameter; }}
配置:
encodingFilter pers.zhang.filter.EncodingFilter encodingFilter /*
测试:
启动服务器,访问表单页面:张三:123456
转载地址:http://cisqb.baihongyu.com/