javaweb开发乱码问题

 

可以使用---------过滤器-------

过滤器可以解决很多中文乱码,敏感词汇等问题

----

@WebFilter("/ServletFilter")
public class ServletFilter implements Filter {

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws ServletException, IOException {
        System.out.println("我是第一个过滤器!------可以解决Servlet中文乱码");
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response); // 访问下一个filter类,执行完所有的filter再去执行页面。
    }

    public void init(FilterConfig config) {
    }

    public void destroy() {
    }
}

------

单独作为工具类,然后在web.xml配置好

------

<filter>
      
      <filter-name>ServletFilter</filter-name>
      <filter-class>com.lyp.Util.ServletFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>ServletFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

-----

 

 

1.向数据库存中文出现乱码

在数据库名后边加 “?useUnicode=true&characterEncoding=UTF8”。javaweb开发乱码问题

 2,返回前端界面出现乱码

 加上这两行代码

.........///

response.setContentType("text/html;charset=utf-8");

 response.setCharacterEncoding("utf-8");

.......///////

javaweb开发乱码问题

3.ajax请求的乱码问题

             如果使用ajax出现了乱码问题这样解决:前端ajax函数的请求的url里面中文参数用两个encodeURI()函数处理,var url = "user.do?p=checkUser&name=" + encodeURI(encodeURI(username.value));而服务器端则用 URLDecoder.decode()函数去接收,string userName = URLDecoder.decode(request.getParameter("name"),"utf-8");  这样就能够解决ajax请求中乱码的问题了。