如何创建SpringMVC工程

时间:2024-12-15 14:39:45

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代表日。其余日期的字母含义可以自行查阅。