可以使用---------过滤器-------
过滤器可以解决很多中文乱码,敏感词汇等问题
----
@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”。
2,返回前端界面出现乱码
加上这两行代码
.........///
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
.......///////
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请求中乱码的问题了。