1.创建工程
选择一个maven工程进行创建。
创建工程后,在maven中引入spring-webmvc的依赖,版本可以根据自己的需求进行更改。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.15.RELEASE</version>
</dependency>
2.创建spring配置文件
在resources文件夹下创建一个spring的配置文件。这里需要通过右键找到新建,找到XML配置文件,选择Spring配置进行创建。
创建后文件后,我们需要在spring配置文件中添加包扫描器,开启注解驱动和视图解析器的配置。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--包扫描器-->
<!-- base-package 填写存放Controller的路径 -->
<context:component-scan base-package="com.aaa.controller"/>
<!-- 开启注解驱动-->
<mvc:annotation-driven/>
<!-- 开启静态资源过滤-->
<mvc:default-servlet-handler/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这两个property主要用于Controller返回时添加文件的前缀和后缀 -->
<property name="prefix" value="/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
3.注册公共servlet
找到webapp下的WEB-INF更改web.xml配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<!-- 这里的名字可以任意起 -->
<servlet-name>spring01</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载spring配置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<!--这里的名字要跟上方的名字对应 -->
<servlet-name>spring01</servlet-name>
<!--这里填写springmvc作用的路径 / 代表全部 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4.编写controller类
创建一个controller包,里面创建一个Contoller类。加上@Controller注解,用@RequestMapping接收请求的地址。
5.javaSpringmvc接收参数
接收少量参数
接收大量参数
但要确保实体类参数名和前端传递的属性名一致。
6.乱码问题解决
当我们接收前端的数据通过控制台打印出来,会发现它是乱码的。这个时候我们可以设置一个过滤器来设置编码格式。
这里我用的是javax.servlet里的过滤器,需要通过maven配置。
@WebFilter(urlPatterns = "/*")
public class EncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);//放行
}
@Override
public void destroy() {
}
}
如果设置了过滤器依然乱码,则可尝试以下方法:
如果你的jdk版本大于jdk17,则需要打开启动器的配置设置,为虚拟机设置添加如下代码:
-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8
如果你是jdk17即以下的版本,可以向虚拟机选项添加如下代码:
-Dfile.encoding=UTF-8
7.处理日期参数
如果前端传递了一个日期格式的数据,那么后端想要接收就需要为实体类添加一个注解@DateTimeFormat。pattern是日期的格式设置,yyyy代表年,MM代表月,dd代表日。其余日期的字母含义可以自行查阅。