SpringMVC_day01_1(初识SpringMVC)

一.SpringMVC简介
1. SpringMVC框架就是Spring framework的子框架.
2. SpringMVC是一个MVC框架.主要关注点在Controller
    2.1 在学习SpringMVC其实主要编写控制层代码.
3. SpringMVC是基于Front设计模式完成,是对Servlet的封装.
4. 自己编写Front设计模式完成请求统一分发


@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse arg1) throws ServletException, IOException {
		String page = req.getParameter("page");
		//分发请求.
		switch (page) {
		case "login":
			login(req,arg1);
			break;
		case "register":
			register(req,arg1);
			break;
		}
	}
	public void login(HttpServletRequest req, HttpServletResponse arg1){
		
	}
	public void register(HttpServletRequest req, HttpServletResponse arg1){
		
	}
}
<a href="demo?page=login">登录</a>
<a href="demo?page=register">注册</a>

文件上传解析,如果请求类型是multipart(多部分的、多重部分)将通过MultipartResolver(附件解析器)进行文件上传解析。

5. SpringMVC执行流程图


5.1 已经写好了Servlet分发器.DispatcherServlet,(类似于Front中的service方法)

如果配置DispatcherServlet的url-pattern为/时会匹配除了jsp所有请求.
5.1.1 搭建SPringMVC时需要把DispatcherServlet配置在web.xml

5.1.2 如果Servlet的url-pattern配置成/时表示除了jsp都执行该servlet   http://localhost:8080/demo23/main 拦不住(要进		Servlet,方法会执行)http://localhost:8080/demo23/main.jsp 被拦住(不进Servlet)

5.2 HandlerMapping:接口,负责帮助解析请求.

例如请求为http://localhost:8080/demo23/abc,把请求最终解析为abc
5.2.1 该类没有默认值,需要手动配置下.如果SpringMVC的环境是基于注解实现需要配置DefaultAnnotationHandlerMapping的<bean>

5.3 HandlerAdapter:接口.负责根据HandlerMapping解析的结果,再去实际调用对用的方法.

(找方法上@RequestMapping(“abc”)),如果找到方法,就执行这个方法,如果没有找到方法会报404

	@RequestMapping(“abc”) //解析的时候会自动加上 ‘/’
	public void login(HttpServletRequest req, HttpServletResponse arg1){
	}

5.3.1 如果希望HandlerAdapter生效且是基于注解实现需要配置AnnotationMethodHandlerAdapter的<bean>

5.4.1 方法返回值内容就是要跳转的资源名称.

5.5 ViewResovler:视图解析器.负责解析HandlerMethod返回值,根据返回值内容去寻找要跳转的资源.

5.5.1 不是必须配置的,SpringMVC中有默认的视图解析器,也可以手动配置.


 


 

                      

猜你喜欢

转载自blog.csdn.net/strawberry_uncle/article/details/80656579