MVC模式
MVC是指Model-View-Controller(模型-视图-控制器)模式,是开发Web应用程序时常用的一种代码分层方式。
视图(View):负责格式化数据并把它们呈现给用户,包括数据展示、数据验证、界面设计等功能。对应组件:JSP或HTML文件
控制器(Controller):负责接收并转发请求,对请求进行处理后指派视图并将响应结果发送给客户端。对应组件:servlet
模型(Model):模型对象拥有最多的处理任务,是应用程序的主体部分,它负责业务逻辑的处理和实现对数据的操作。对应组件:JavaBean(包括处理业务逻辑的service层与数据库操作相关的DAO层及贯穿于各层之间的数据模型POJO)
MVC的处理过程
- 视图提供系统与用户交互的界面,并发送用户输入的请求给控制器
- 控制器接收用户的请求,并决定应该调用的模型
- 模型根据用户请求进行相应的业务逻辑处理,并返回处理结果(数据)
- 控制器根据返回的处理结构,调用相应的视图格式化模型返回的数据,并通过视图呈现给用户
搭建Spring MVC环境
步骤1:引入依赖
<!--spring-webmvc的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
步骤2:编写配置文件
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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:contect="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启注解驱动 -->
<mvc:annotation-driven/>
<!-- 注解扫描的包 -->
<contect:component-scan base-package="controller"/>
<!-- 完成视图的对应 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
web.xml
<!-- Spring MVC的核心是一个Servlet,称为前端控制器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载Spring MVC配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
步骤3:编写控制器
@Controller
@RequestMapping(value = "/hello")
public class HelloController extends AbstractController {
private Logger logger = LogManager.getLogger(HelloController.class);
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
System.out.println("Spring MVC框架搭建成功。");
return new ModelAndView("hello");
}
@RequestMapping(value = "/hello")
public String hello() throws Exception{
// System.out.println("Spring MVC框架搭建成功。");
logger.info("我的第一个SpringMVC程序,运行成功啦!");
// 跳转到hello页面
return "hello";
}
}