正在回答 回答被采纳积分+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 星