SpringMVC笔记一

springmvc学习笔记:
SpringMVC笔记一_第1张图片
springmvc主要几个重要的组件执行流程:
1 请求先进入DispathcherServlert
2 DispathcherServlert根据URL去找HandlerMapping来查找对应的Handler对象
3 DispathcherServlert根据返回的Handler对象去找对应的HandlerAdapter执行该Handler,返回ModelAndView
4 DispathcherServlert根据逻辑的视图通过ViewResolver来查找实际的视图。返回view
5 DispathcherServlert把model传给View,然后渲染出相应的实际视图。

总结: 一个DispathcherServlert贯穿了整个流程,可以从DispathcherServlert的源码中doDispatch方法中找到。感觉这就是一个请求的总人口和出口。

在这里插入图片描述

根据上图的原理图,我们可以大概找到如果项目中要引进springMVC时的引进步骤:
1 首先是总入口,DispathcherServler前端控制器. 因为这个是需要拦截所有请求,所有配置在web.xml上。
SpringMVC笔记一_第2张图片
2 因为HandlerMapping、HandlerAdapter、ViewResoler都是在DispathcherServlert的doDispath方法执行,所以要引入这几个组件,而配置DispathcherServlert的时候在上面web.xml文件中配置,所以才会在配置的时候引入springmvc.xml,剩下的组件就可以在springmvc.xml中配置,这样就可以让web.xml看起来更简洁。

3 配置HandlerMapping.(在springmvc.xml中配置,xml方式)
在这里插入图片描述
4 配置jsp的视图解析器ViewResolver(在springmvc.xml中配置,xml方式)
在这里插入图片描述
5 配置HandlerAdapter(在springmvc.xml中配置,xml方式)
SpringMVC笔记一_第3张图片
5 配置Handler(Controller,我们程序员需要写的也是最主要的)
需要实现Controller接口org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行。

public class ItemsController1 implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		String Message="Hello ";
		//返回ModelAndView
		ModelAndView modelAndView =  new ModelAndView();
		modelAndView.addObject("message", Message);
		//指定视图
		modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
		return modelAndView;
	}

}

配置完后需要把Handler放入HandaAdapter中,因为真正执行Hadnler的是HandaAdapter。



                   
                            
                                     helloController
                            
                            
         

至此,xml方式配置完成。

但是上面的配置方式可能基本不用了,因为springmvc在3.1后便引入了注解方式来配置这几个组件,所以我一开始也不知道这种方式,现在终于找到这些组件的配置了,用注解配置需要修改原来的配置文件:
处理器映射器和处理器适配器
HandlerMapping:
如果用注解方式这个配置可以代替上面两种,因为这个包含了上面两个,所以在注解下,我们也看不到上面两个处理器,而直接用这个代替了。实际项目中用的比较多是这个。
(注解下配置HandlerMapping,HandlerAdapter,springmvc.xml)

   

配置视图解析器:


	
		
		
		
		
	

(注解下配置Handler,springmvc.xml)
Haddler的变化:

//使用Controller标识 它是一个控制器
@Controller
public class ItemsController1 {
	
	//商品查询列表
	//@RequestMapping实现 对queryItems方法和url进行映射,一个方法对应一个url
	//一般建议将url和方法写成一样
	@RequestMapping("/queryItems")
	public ModelAndView queryItems()throws Exception{
		String Message="Hello ";
		//返回ModelAndView
		ModelAndView modelAndView =  new ModelAndView();
		modelAndView.addObject("message", Message);
		//指定视图
		modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
		return modelAndView;
	}

(注解下配置Handler,springmvc.xml)




注解下配置相对简单很多。但是使用这种默认的配置,我们怎么知道它用的是哪个处理器映射器和处理器适配器呢,在这个配置文件中有:
SpringMVC笔记一_第4张图片

你可能感兴趣的:(SpringMVC)