MVC:css
Model(模型):数据模型,提供要展现的数据,所以包含数据和行为。就是Dao层和Service层html
View(视图):负责进行模型的展现,通常就是咱们见到的用户界面,客户想看到的东西。前端
Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责显示。java
SpringMVC的特色:web
Spring的web框架围绕DispatcherServlet[调度Servlet]设计。spring
Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的做用是将请求分发到不一样的处理器。咱们能够采用基于注解的controller声明开发,十分简洁;数据库
Spring MVC框架像许多其余MVC框架同样,**以请求为驱动,围绕一个中心Servlet分派请求及提供其余功能,DispatcherServlet是一个实际的Servlet(继承自HttpServlet基类)后端
SpringMVC的原理以下图所使:设计模式
当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,建立数据模型,访问数据库,将模型响应給中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。spring-mvc
建立maven项目
导入webmvc,idea会自动导入相应的依赖
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.1.RELEASE</version> </dependency> </dependencies>
对应的依赖:
<!--主注册DispatcherServlet--> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--关联一个SpringMVC的配置文件--> <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> <!-- / 匹配全部的请求 不包括.jsp /* 匹配全部的请求 包括.jsp --> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 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 http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--扫描包配置,控制层,和前端交互 controller--> <context:component-scan base-package="com.star.controller"/> <!--开启注解扫描--> <mvc:annotation-driven/> <!--在web开发中,咱们通常存在静态资源css,js,img。。。--> <mvc:default-servlet-handler/> <!--视图解析器--> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/views/"/> <!--后缀--> <property name="suffix" value=".jsp"/> </bean> </beans>
在WEB-INF下建立views目录,建立hello.jsp页面;
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello</title> </head> <body> <%--使用el表达式获取传入的参数--%> <h1>${msg}</h1> </body> </html>
package com.star.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller //控制层 public class HelloController { @RequestMapping("/hello") //请求的映射路径 public String hello(Model model){ model.addAttribute("msg","Hello,SpringMVC");//使用model给前端传入参数 //拼接成:/WEB-INF/views/hello.jsp return "hello"; } }
配置tomcat,启动项目,输入路径:
注意:要在IDEA的项目发布中,添加lib依赖!