什么是MVC架构
MVC分别对应Model、View、Controller,即模型、视图、控制器。
模型层负责存储数据,视图层负责将信息展示给用户,控制器层负责协调模型层和视图层,它负责与视图层交互并根据用户的操作对模型层进行控制、修改等。
MVC架构将业务逻辑、数据、显示分离,提高了部分代码的复用性,降低了各个模块间的耦合性,可以使各个层级进行独立测试。
如果项目使用MVC架构将会有以下几点好处:
1.生命周期成本低
2.方便部署
3.方便维护
典型的MVC架构就是JSP+Servlet+JavaBean的模式
Spring中的MVC
Spring MVC是spring框架的一部分,是一个基于java实现MVC的轻量级Web框架。
SpringMVC的特点:
1.轻量级,简单易学
2.高效,基于请求响应
3.约定优于配置
4.功能强大:支持RESTful、数据校验、格式化、本地化等。
Spring的Web框架围绕DispatcherServlet(调度Servlet)设计。
DispatcherServlet的作用就是将请求分发到不同的处理器,并且从Spring 2.5开始,使用Java 5或以上的用户可以使用注解进行开发,非常简单。
SpringMVC的流程如下图:
简单的Spring MVC样例:
1.首先我们需要配置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">
<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.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>
</web-app>
2.我们需要配置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">
<!-- 配置处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 配置处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 注册我们的处理器,也就是controller注册到bean容器中! -->
<bean class="com.hkd.controller.UserController" id="/hello"/>
</beans>
3.写一个controller即处理器:
package com.hkd.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 实现Controller接口,我们的类就是一个处理器了!
*/
public class UserController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv=new ModelAndView();
mv.addObject("msg","Hello!!");
mv.setViewName("hello");
return mv;
}
}
最后将项目发布并运行服务器,就可以通过对应的url地址来进行测试了!
注意:
测试时报错首先查看控制台报错信息!根据报错信息排查错误。
如果使用IDEA进行项目的编辑与测试,报404错误可以尝试查看out文件夹下是否自动打包了lib文件夹,如果没有则需要手动添加lib目录和依赖包!
总结:
本文主要简单解释了MVC架构思想和对于SpringMVC的简单理解以及简单样例,希望大家批评指正!