在这里我的整理了一些资料,有须要的朋友能够直接点击领取。html
22本Java架构师核心书籍java
架构简单,容易实现。面试
视图层的职责不单一;不只须要对数据进行封装,还须要编写逻辑代码调用模型层也就是说这里的视图层充当了视图 + 控制两个职责;视图层直接与模型层打交道页面及其的混乱、不利于维护spring
MVC架构提出是为了将视图与模型层分开,两者不直接打交道;而是经过控制层来从当两者交互的桥梁;数据库
视图层只须要专一于数据封装与展现架构
模型层专一于业务逻辑mvc
控制层负责处理用户递交的请求,而且协调视图与模型层
SpringMVC框架的核心围绕着DispatcherServlet前端控制器进行展开,它用于协调全部的Servlet对用户的请求进行解析、查找对应的Servlet进行处理、最后给出响应!能够将DispatcherServlet功能相似于CPU处理器、人类的大脑…
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>${message}</h1> </body> </html>
public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { // 1. 建立模型-视图 ModelAndView mv = new ModelAndView(); //调用业务层 // 2. 封装数据对象 mv.addObject("message","Hello, SpringMVC!"); // 3. 封装要跳转的视图,放在ModelAndView中 mv.setViewName("hellomvc"); return mv; } }
核心配置文件中,配置映射器、适配器、解析器;最后将请求的路径以及对应的Servlet类交给IOC容器托管。
<?xml version="1.0" encoding="UTF8"?> <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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 1. 配置处理器映射器 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 2. 配置处理器适配器 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 3. 配置视图解析器 --> <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/page/"/> <!-- 后缀 --> <property name="suffix" value=".jsp"/> </bean> <!-- 4. 将servlet交给IOC容器管理 --> <bean id="/hellomvc" class="com.controller.HelloController"/> </beans>
因为全部的Sevlet不在走各自的映射路径,而是统一由前端控制器DispatcherServlet调度,因此只须要在项目的web.xml中配置DispatcherServlet便可。而后将SpringMVC核心配置文件交给前端控制器DispatcherServlet掌管!
<?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"> <!--1.注册DispatcherServlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 关联Spring的核心配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMVC-Servlet.xml</param-value> </init-param> <!-- 启动级别1 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
web.xml中无须要在配置单独Servlet的映射路径,而是直接配DispatcherServlet。这是由于前端控制器会自行根据HandlerMapping进行查找。
Servlet无需在继承HttpServlet类,是由于DispatcherServlet是继承了HttpServlet。而如今编写的Servlet实现了Controller接口会在通过适配器HandlerAdapter进行找到!
都看到这里,以为文章对你有帮助记得给个点赞。