jsp中如何使用Filter解决乱码问题呢?
下文笔者讲述jsp中解决乱码的方法分享,如下所示
get和post出现的原因
jsp在get和post请求中出现乱码的原因: 主要是由于没有设置编码内容的方式 所以才会出现乱码 我们只需加入相应的编码,即可避免此类异常的发生 ---------------------------------------------------- 实现思路: 只需编写一个Filter 在Filter中对乱码问题进行解决即可例:
EncodingFilter.java package com.java265.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; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException { //将ServletRequest强转为HttpServletRequest HttpServletRequest httpServletRequest = (HttpServletRequest) request; //将ServletResponse强转为HttpServletResponse HttpServletResponse httpServletResponse=(HttpServletResponse) response; //获取请求方式 String method = httpServletRequest.getMethod(); System.out.println("method="+method); //设置响应内容的编码方式 httpServletResponse.setContentType("text/html;charset=utf-8"); //设置POST请求时HttpServletRequest的编码方式 httpServletRequest.setCharacterEncoding("utf-8"); //放行 chain.doFilter(httpServletRequest, httpServletResponse); } @Override public void destroy() { } } web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Filter04</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置编码过滤器 --> <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.java265.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。