M:Model数据模型层 实体类pojo业务类Service,Dao 处理业务逻辑数据访问
V:视图层html…与用户交互展示数据
C:控制层 controller 工程中servlet 接收请求响应服务器
mvc的工作流程:用户通过视图层发送请求到服务器controller,controller调用响应数据层处理请求,处理完后将结果返回controller,然后根据结果找到相应视图响应给浏览器
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.18</version>
</dependency>
//在web.xml里配置
<!-- springmvc前端控制器对浏览器发送的请求统一处理-->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- springmvc配置文件的位置和名称-->
<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>
<!-- / 处理所有非.jsp请求-->
<url-pattern>/</url-pattern>
</servlet-mapping></web-app>
//在springMVC.xml里配置
context组件扫描和视图解析器
<!-- 配置Thymeleaf视图解析器 -->
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="order" value="1"/>
<property name="characterEncoding" value="UTF-8"/>
<property name="templateEngine">
<bean class="org.thymeleaf.spring5.SpringTemplateEngine">
<property name="templateResolver">
<bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".html"/>
<property name="templateMode" value="HTML5"/>
<property name="characterEncoding" value="UTF-8" />
</bean>
</property>
</bean>
</property>
</bean>
@Controller
public class HelloController {
//value请求名url method请求方式(不设置任意请求方式都能匹配@GetMapper注解也可以)
//params="a"请求必须带a这个参数,!a必须不带a, a="20"必须带a且a=20 , a!="20"必须带a但a不能=20
//headers="host!=localhost:8080"
@RequestMapping(value="/") / 可以是字符串数组满足一个就行
public String index(){
return "index"; //设置视图名称//前缀+“”+后缀
}
}
mvc支持ant风格
?:表示任意的单个字符
*:表示任意的0个或多个字符
**:表示任意的一层或多层目录
注意:在使用**时,只能使用/**/xxx的方式
@RequestMapping("aGetById/{id}")
public String aGetById(@PathVariable("id") Long id){
...
}
thymeleaf超链接
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<a th:href="@{/login}">这是超链接</a>