Spring MVC XML开发

SpringMVC 可以通过 XML 配置的方式进行开发。

一、前置工作

1. 导入依赖

在 pom.xml 文件中添加信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>版本号</version>
</dependency>

<!--Servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<!--3.0版本前是servlet-api-->
<!--3.0版本后是javax.servlet-api-->
<artifactId>javax.servlet-api</artifactId>
<version>版本号</version>
</dependency>

2. 接管所有请求

DispatcherServlet 是整个 SpringMVC 的核心,它会接管所有请求,并将请求分配给对应的 controller 。

为拦截所有请求,需要在 web.xml 中配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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">

<!--注册DispatcherServlet-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联SpringMVC配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:SpringMVC-servlet.xml</param-value>
</init-param>
<!--表示容器再启动时立即加载servlet-->
<load-on-startup>1</load-on-startup>
</servlet>

<!--匹配所有请求-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<!--当请求对应的资源为html时,使用默认的Servlet处理-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

</web-app>
  • 通过 init-param 指定 SpringMVC 的配置文件
  • 设置 servlet-mapping 的 url-pattern,以拦截所有请求
    • / 拦截所有请求(除了 jsp)
    • /* 拦截所有请求(包括 jsp)

3. 创建 SpringMVC 配置文件

创建 SpringMVC-servlet.xml,填写如下:

1
2
3
4
5
6
7
8
9
10
<?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>

二、编写 Controller

创建类,继承 Controller 接口,实现 handleRequest() 方法。

在方法中,

  • 新建 ModelAndView 类的实例
  • 通过实例的 addObject() 等方法传递数据
  • 通过实例的 setViewName 等方法指定要跳转的视图
  • return ModelAndView 类的实例
1
2
3
4
5
6
7
8
9
public class Controllerimplements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
···
modelAndView.setViewName("视图路径");
return modelAndView;
}
}

三、注册 Controller

在 SpringMVC 配置文件中,增加信息如下:

1
2
3
4
5
6
7
8
9
10
<?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">

<bean id="/访问路径" class="全限定类名"/>

</beans>

四、启动项目

使用 Tomcat 启动,通过 https://域名:端口/项目路径/访问路径,即可访问到 Controller,再通过 Controller 访问到对应的视图。

参考