除虫计划 SpringMVC常见错误

本文将介绍 SpringMVC 中的常见错误及其解决方法。

一、访问 404

1. 错误

项目代码正常,启动后也没有报错,但访问返回 404 。

2. 解决方法

依次打开 Project Structure - Artifacts - 项目 - Output Layout,在 WEB-INF 下新建文件夹 lib,添加所有依赖。

二、HTML 作视图时无法找到

1. 错误

在 Controller 中指定要跳转的视图为 html:

1
2
3
4
5
6
7
8
public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/hello.html");
return modelAndView;
}
}

结果在访问时报 404,控制台提示找不到 mapping:

但直接在浏览器中访问 html 又可以访问。

2. 解决方法

在 web.xml 中增加配置信息如下:

1
2
3
4
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

3. 详解

即当请求对应的资源为 html 时,使用默认的 Serlet 处理(而非 DispatcherServlet)。

具体请看:

我是如何一步步解决问题 让Spring MVC返回HTML类型的视图_CSDN

三、post 请求乱码问题

解决方法是修改 web.xml,增加信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

参考