springmvc并不是一个前后端分离的框架,它是javaweb的升级版,但是对它的学习可以为springboot打下基础,我认为还是很有必要的。
首先是在idea中创建第一个springmvc程序,并且导入需要的包。
//springmvc主要jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.24</version>
</dependency>
//日志记录
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
//servlet Javaweb项目后端必须的,通过servlet处理前端请求
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
//一个写网页的jar包
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
//测试使用
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
然后我们要编写Web.xml配置。对于javaweb有所学习的同学,就会明白,在webapp---webinf---web.xml,对于servlet配置,然后可以获取前端的数据,进行处理。
servlet的配置方式如下
<!--这是一个普通的servlet的配置方式,前端通过网址找到 </url-pattern>,然后通过name找到对应的类-->
<servlet>
<servlet-name>springmvc</servlet-name>
<!-- 为什么要导入这个类呢?我们也没有在java包中实现,回想一下之前的javaweb,我们是通过继承httpservlet方法实现的Servlet,而这类,也就是springmvc的核心组成部分,作用是
拦截前端发送过来的请求,调用不同的servlet,处理业务 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 因为要拦截前端发送过来的请求,但是为了方便,我们不能在如同在、Javaweb中的对于每一个清秀都进行一个配置,我们可以写一个路径,不管前端发送的请求是什么,我们都接收写来,然后通过
DispatcherServlet,找到对应的处理方法 -->
<url-pattern>/</url-pattern>
<!-- 可以接收到除了 jsp的所有html js css文件 -->
</servlet-mapping>
但是
<!-- 但是这是servlet的配置文件,maven工程需要将配置文件全部放到resources中,那么我们就需要升级配置方式-->
扩展的配置方式如下
<servlet>
<servlet-name>springmvc</servlet-name>
<!-- 为什么要导入这个类呢?我们也没有在java包中实现,回想一下之前的javaweb,我们是通过继承httpservlet方法实现的Servlet,而这类,也就是springmvc的核心组成部分,作用是
拦截前端发送过来的请求,调用不同的servlet,处理业务 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
servlet-mapping没有发生改变,但是在Class下面添加了 init-param, 在 param-name中填写了一个上下文加载器,然后填写了springmvc.xml的路径,然后我们就可以在resources中建立SpringMVC的配置文件了
完整的配置方式如下
<display-name>Archetype Created Web Application</display-name>
<!--这是一个普通的servlet的配置方式,前端通过网址找到 </url-pattern>,然后通过name找到对应的类-->
<servlet>
<servlet-name>springmvc</servlet-name>
<!-- 为什么要导入这个类呢?我们也没有在java包中实现,回想一下之前的javaweb,我们是通过继承httpservlet方法实现的Servlet,而这类,也就是springmvc的核心组成部分,作用是
拦截前端发送过来的请求,调用不同的servlet,处理业务 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- servlet的初始是第一次访问的时候,但是在加上 DispatcherServlet,初始化的东西太多,有了下面的标签,就可以在tomcat初始化的时候初始化内容,减少第一次访问时间 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 因为要拦截前端发送过来的请求,但是为了方便,我们不能在如同在、Javaweb中的对于每一个清秀都进行一个配置,我们可以写一个路径,不管前端发送的请求是什么,我们都接收写来,然后通过
DispatcherServlet,找到对应的处理方法 -->
<url-pattern>/</url-pattern>
<!-- 可以接收到除了 jsp的所有html js css文件 -->
</servlet-mapping>