SpringMVC搞定以后就可以开始整合了
文章目录
- 一、随便讲点儿
- 1.1 SpringMVC底层原理 [ 执行流程
- 1.2 SpringMVC组件
- 二、xml配置 开发
- 2.1 web.xml配置前端控制器
- 2.2 springmvc.xml配置其他
- 2.3 开发处理器:就是写和上面不一样的东西
- 2.4 前端视图
- 2.5 配置Tomcat访问前端
- 三、注解 开发
- 3.2 springmvc.xml 配置其他
- 3.3 开发处理器:注解版
一、随便讲点儿
SpringMVC是Spring框架的一个模块儿,是一个基于Spring的Web框架
1.1 SpringMVC底层原理 [ 执行流程
- 发送请求到
前端控制器DispatcherServlet
前端控制器
请求处理器映射器HandlerMapping
查找Handler(就是Controller
可以根据web.xml进行查找、注解进行查找处理器映射器
向前端控制器
返回Handler
前端控制器
调用处理器适配器
去执行Handler
处理器适配器
执行Handler
,向前端控制器
返回ModelAndView
前端控制器
请求进行视图解析视图解析器
解析完毕后返回View
- 前端控制器进行视图渲染
- 前端控制器向用户响应结果
1.2 SpringMVC组件
组件
- 前端控制器:接收请求 响应结果 相当于一个转发器 中央处理器
- 处理器映射器: 根据请求的url查找handler
- 处理器适配器: 按照一定的规则执行Handler
Handler处理器
:编写Handler的时候需要依照功能需求进行- 视图解析器:对视图进行解析,根据逻辑视图名得到真正的视图
视图
:View是一个接口,支持不同的视图
二、xml配置 开发
导入相关依赖就不说了嗷,还有头文件
自己搜吧
2.1 web.xml配置前端控制器
<!-- 配置前端控制器 --><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></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>
2.2 springmvc.xml配置其他
<!--配置处理器适配器--><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--配置处理器映射器--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/><!--配置处理器:这玩意儿和上面的不一样--><bean name="/test.action" class="com.test"/>
2.3 开发处理器:就是写和上面不一样的东西
package com;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;//要实现org.springframework.web.servlet.mvc.Controller
public class test implements Controller {//处理器处理完返回的是ModelAndView @Overridepublic ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {//测试数据List<User> userList = new ArrayList<>();userList.add(new User("zhangsan",20));userList.add(new User("lisqi",21));userList.add(new User("wangwu",23));//创建ModelAndView ModelAndView mav = new ModelAndView();//将数据给到前端视图mav.addObject("userList",userList);//设置视图mav.setViewName("test.jsp");return mav;}
}
2.4 前端视图
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<body><c:forEach items="${userList}" var="users">${users.name} ${users.age}<hr/></c:forEach>
</body>
</html>
2.5 配置Tomcat访问前端
http://localhost:8080/MySpringMVC_war_exploded/test.action
三、注解 开发
上面的开发的时候,处理器要实现接口,所以不是很方便。
我们利用注解可以在一个处理器里面实现多个方法。
3.2 springmvc.xml 配置其他
<!--注解日常扫描--><context:component-scan base-package="com"/>
<!--配置处理器适配器、配置处理器映射器:一句话的事儿--><mvc:annotation-driven/><!--配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--设置前缀:拼接到视图的前面--><property name="prefix" value="/"/><!--设置后缀:拼接到视图的后面--><property name="suffix" value=".jsp"/></bean>
<!--配置处理器:不配置啦!直接注解-->
3.3 开发处理器:注解版
@Controller //注解:有四个
@RequestMapping("/")//窄化路径:访问时候的路径
public class Test {@RequestMapping("test")//还有其他的写法:主要是返回值和输入参数的区别。public ModelAndView list() {List<User> lists = new ArrayList<>();lists.add(new User("aaa",13));lists.add(new User("cccc",14));lists.add(new User("mmm",15));ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("userList",lists);modelAndView.setViewName("user/list");return modelAndView;}
}
唉……感觉自己效率好低,学海无涯啊