正在回答 回答被采纳积分+1
7回答
chrismorgen
2018-11-30 09:51:28
你好同学,你看一下你过滤器的<url-pattern>路径中是不是少写了个*好,导致所有请求路径没有被编码过滤器过滤呢,建议你修改一下试试呢,祝学习愉快~

慕无忌0089299
2018-11-29 19:47:41
import java.io.IOException;
public class EncodingFilter implements Filter {
private String encoding="utf-8";
@Override
public void init(FilterConfig filterConfig) throws ServletException{
if (filterConfig.getInitParameter("encoding")!=null){
encoding=filterConfig.getInitParameter("encoding");
}
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpServletResponse=(HttpServletResponse)response;
HttpServletRequest httpServletRequest=(HttpServletRequest)request;
httpServletRequest.setCharacterEncoding(encoding);
httpServletResponse.setCharacterEncoding(encoding);
chain.doFilter(httpServletRequest,httpServletResponse);
}
@Override
public void destroy() {
}
}<filter> <filter-name>enconding</filter-name> <filter-class>com.imooc.oa.global.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>enconding</filter-name> <url-pattern>/</url-pattern> </filter-mapping>
这两个文件 老师麻烦看一下啊 我看不出来。。
chrismorgen
2018-11-29 19:09:18
你好同学,可以先按照我下图演示的方式,在DepartmentController 的add方法中打印一下department类的部门名称,看看前端传过来的数据在控制台中打印的是否为乱码?祝学习愉快~

慕无忌0089299
2018-11-29 17:30:20
老师你说应该是哪里的问题呢。这是改过编码后存的。。老师现在是这样的 我改完后 从新打开数据库 那些utf8 设置又变回去了。。
慕无忌0089299
2018-11-29 14:07:48

我也重启重练了
chrismorgen
2018-11-29 09:58:00
也有可能是你mysql数据库的编码问题,你可以做如下尝试,在mysql命令行执行这个命令show variables like '%char%'; 查看编码集,看是否为UTF-8;在创建数据库时,要优先将字符编码设置为utf8字符编码哦,可以参考下图代码,祝学习愉快~

chrismorgen
2018-11-28 19:02:15
1、是你理解的这样,前端页面的请求都是通过过滤器来设置字符编码格式的,建议同学检查一下filter是否配置正确。
2、加号需要点击中间的黑色部分才会生效哦,建议同学尝试一下。祝学习愉快~
SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星