文章目录
Spring MVC概述
- Spring框架的一部分,可以方便的利用Spring所提供的其他功能,灵活性强,易于与其他框架集成
- 提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象
- 可自动绑定用户输入,并能正确的转换数据类型
- 内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单
- 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序
- 支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术
Maven依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
</dependencies>
配置Servlet的xml文件
<?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>
<!-- SpringMVC 配置前端过滤器 -->
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 初始化时加载配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 配置加载Spring MVC配置文件位置 -->
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<!-- 1 表示容器在启动时立即加载Servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- /表示拦截所有URL的请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
创建实现 Controller的类 firstController
public class FirstController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) {
// 新建ModelView对象
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "这是我的第一个Spring MVC程序");
mav.setViewName("/WEB-INF/jsp/first.jsp");
return mav;
}
}
编写SpringMVC的配置文件
<?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">
<!-- 配置处理器Handle,映射“/firstController”请求 -->
<bean name="/firstController" class="com.hlq.ch11.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>
视图的JSP文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${msg}
</body>
</html>
EL表达式简介
- EL 全名为Expression Language
- 注意Servlet版本,如果是Servlet 2.x,需要设置isELIgnored
<%@page isELIgnored="false" %>
- EL的作用
- 获取数据
- ${msg}
- ${user.address.city}
- 执行运算
- ${user==null}
- ${user!=null?user.name:""}
- 获取web开发常用对象
- ${隐式对象名称}
- ${pageContext.request.contextPath}
- 获取数据
在浏览器中输入实现接口的类
输入对应的URL
- 设置ModelAndView的信息
页面中获取