Spring MVC入门
这是一个简单的Spring MVC入门案例,具体步骤如下
完整的文件结构如下所示
引入jar文件
所需jar文件如下
配置前端控制器
在web.xml中,配置Spring MVC的前端控制器DispatcherServlet如下所示
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<!-- 配置前端过滤器 -->
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 初始化时加载配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.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>
</web-app>
创建Controller类
创建com.itheima.controller包,并编写控制器类FirstController,该类需实现Controller接口
package com.itheima.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class FirstController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) {
// 创建ModelAndView对象
ModelAndView mav = new ModelAndView();
// 向模型对象中添加数据
mav.addObject("msg", "这是我的第一个Spring MVC程序");
// 设置逻辑视图名
mav.setViewName("/index.jsp");
// 返回ModelAndView对象
return mav;
}
}
handleRequest()是controller接口的实现方法,FirstController类会调用该方法处理请求,并返回一个包含视图名和模型的对象。
创建Spring MVC配置文件
在src目录下创建配置文件 springmvc-config.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-4.3.xsd">
<!-- 配置处理器Handle,映射“/firstController”请求 -->
<bean name="/firstController"
class="com.itheima.controller.FirstController" />
<!-- 处理器映射器,将处理器Handle的name作为url进行查找 -->
<bean class=
"org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 处理器适配器,配置对处理器中handleRequest()方法的调用-->
<bean class=
"org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 视图解析器 -->
<bean class=
"org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>
</beans>
创建视图View页面
在web目录下创建view.jsp页面,使用EL表达式获取msg中的信息
<%--
Created by IntelliJ IDEA.
User: zdy
Date: 2019/4/11
Time: 2:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个springmvc程序</title>
</head>
<body>
${msg}
</body>
</html>
运行结果如下所示
PS: 在地址栏中输入的地址是 localhost:8080/firstController 而不是 localhost:8080/view.jsp
写在最后
刚开始运行后浏览器的网址一直是localhost:8080/view.jsp,空白页,以为自己写错 了,各种谷歌解决方案和debug,后来发现地址栏输入出问题了,改掉后才显示正确的结果