目录
环境准备
首先,需要确保已经安装了Java开发环境和Maven(或者Gradle)构建工具。接着,将引入SpringMVC相关的依赖,包括spring-webmvc和其他必要的库。
<dependencies>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<!--标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version> 1.2</version>
</dependency>
<!--springmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
</dependencies>
项目搭建
创建项目
通过Maven创建一个新的SpringMVC项目,并设置好基本的项目结构和配置文件。
创建父项目
创建子项目(创建普通maven项目,然后右键添加框架支持)
添加框架支持,选择web应用程序(4.0),这样做的好处是可以选择版本号
当使用Maven模板创建一个Web项目时,通常会使用Maven的webapp模板来生成项目结构,这种情况下会自动生成web.xml文件。此时需要修改web.xml文件(下图为maven骨架生成的web.xml),将下面的xml复制到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">
</web-app>
打包加依赖
在使用Maven构建的Web项目中,通常不需要手动添加lib文件夹。这是因为Maven会自动管理项目的依赖库,并将它们下载到本地的仓库中。当项目编译、打包时,Maven会自动将所需的依赖库打包进war包或者jar包中,因此无需手动管理lib文件夹。
然而,有时候可能还是需要手动添加lib文件夹,比如:
-
非Maven依赖:如果项目中引入了一些非Maven管理的第三方依赖,这些依赖可能无法通过Maven直接管理,需要手动下载并添加到lib文件夹中。
-
特殊需求:有些特殊情况下,可能需要手动管理项目的依赖,比如需要使用一些特定版本的依赖库,而Maven默认下载的版本不符合要求。
总的来说,在大多数情况下,使用Maven可以很好地管理项目的依赖,避免了手动管理lib文件夹带来的麻烦。如果发现自己经常需要手动管理lib文件夹,可以考虑检查项目的依赖管理方式,看看是否有更好的解决方案。
配置web.xml
配置DispatchServlet:DispatcherServlet是springMVC的核心:请求分发器,前端控制器
它主要负责加载 SpringMVC 的配置。它也是一个 Servlet,遵守 Servlet 规范。
在web.xml文件中配置DispatcherServlet来启用Spring MVC框架。
<?xml version="1.0" encoding="UTF8"?>
<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">
<!-- 配置DispatchServlet:这个是springMVC的核心:请求分发器,前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--DispatcherServlet要绑定spring的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别:1 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 在springMVC中,
/:只匹配素有的请求,不会去匹配jsp页面
/*:匹配素有的请求,包括jsp页面-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
创建springMVC配置文件
在Spring MVC中,通常会创建一个用于配置Spring MVC的XML文件,该文件通常被命名为"spring-servlet.xml"("spring"是自定义的前缀,可以根据需要进行更改)。在这个文件中,可以配置处理器映射、视图解析器、拦截器等内容。
在 src/resources 资源目录下创建 SpringMVC的配置文件 springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
配置处理器映射器和处理器映射器(这步是为了理解原理用的,可以不写)
配置视图解析器(这步需要写)
在Spring MVC中,视图解析器用于将逻辑视图名称解析为实际的视图(例如JSP页面、Thymeleaf模板等)。可以通过配置视图解析器来定义视图的位置和格式。
<?xml version="1.0" encoding="UTF8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--实际开发中不需要写映射器和适配器-->
<!-- 处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<!-- BeanNameUrlHandlerMapping:bean -->
<bean id="/hello" class="com.dynamic.controller.HelloController"></bean>
</beans>
写类
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
//业务代码
String result="HelloSpringMVC";
mv.addObject("msg",result);
//视图跳转
mv.setViewName("test");
return mv;
}
}
将类交给SpringIOC容器,注册bean(这一步在前面的xml中已经加上了,实际步骤应该在这里写的)
<bean id="/hello" class="com.dynamic.controller.HelloController"></bean>
配置tomcat
在一个典型的Spring MVC应用中,需要将应用部署到一个Servlet容器中,而Tomcat就是一个常用的Servlet容器之一。在配置Tomcat时,需要确保应用能够在Tomcat中正确运行。
通常情况下,配置Tomcat涉及以下几个步骤:
-
将应用打包成WAR文件:Spring MVC应用通常被打包成WAR文件,该文件包含了应用的所有代码、配置文件和资源。
-
配置web.xml文件:在WAR文件中,web.xml文件用于配置Servlet、Filter、Listener等Web组件,并指定Spring的DispatcherServlet。
-
部署WAR文件到Tomcat:将打包好的WAR文件部署到Tomcat的webapps目录下,Tomcat会自动解压并部署你的应用。
-
启动Tomcat:启动Tomcat服务器,让应用在Tomcat中运行起来。
虽然在现代的Spring Boot应用中,通常不需要显式地配置Tomcat,因为Spring Boot内嵌了Tomcat(或其他Servlet容器),但在传统的Spring MVC应用中,可能还需要进行一些配置来确保应用能够正确地在Tomcat中运行。
总的来说,配置Tomcat是为了将你的应用部署到一个Servlet容器中,让应用可以通过HTTP协议对外提供服务。
总结
在本文中,通过一个简单的实例介绍了SpringMVC的基本用法,涉及了项目搭建、控制器编写、视图设计以及配置DispatcherServlet等方面。希望本文能够帮助小伙伴们快速入门SpringMVC,并对其有一个基本的了解。