首页 > 编程语言 > 详细

SpringMVC框架

时间:2020-09-14 16:16:34      阅读:58      评论:0      收藏:0      [点我收藏+]

1.SpringMVC是基于spring的框架,实际上就是spring的一个模块,专门是做web开发的,web开发底层是servlet,框架是在servlet基础上加入一些功能,让web开发方便

2.SpringMVC就是一个spring,spring是容器,IOC能够管理对象,使用<bean> @Component @Repository @Service @Controller spring能够创建对象,放入到容器中,springMVC容器中存放的是控制器对象,我们要做的是使用@Controller创建控制器对象,把对象放入到springMVC容器中,把创建的对象作为控制器使用,这个控制器对象能接受用户的请求,显示处理结果,就当做是一个servlet使用;

3.注意:使用@Controller注解创建的是一个普通类的对象,不是servlet,SpringMVC富裕了控制器对象一些额外的功能;

4.web开发底层是servlet,SpringMVC有一个对象是servlet:DispatcherServlet(中央调度器),它负责接收用户的所有请求,之后请求转发给Controller对象,最后是Controller对象处理请求

5.注意:在web.xml中,需要在Tomcat启动时,创建DispatcherServlet对象的实例,需要<load-on-startup>标签,它表示Tomcat启动后创建对象的顺序,值越小,越先执行
    为啥要创建实例?
    在它创建的时候,会同时创建SpringMVC容器对象,读取SpringMVC的配置文件,把这个配置文件的对象都创建好,当用户发起请求时就能使用这些对象

6.servlet的初始化会执行init()方法。DispatcherServlet在init()中(了解原理):
    WebApplication ctx=new ClassPathXmlApplicationContext("springmvc.xml");
    getServletContext().setAttribute(key,ctx);

7.@RequestMapping:请求映射,作用是把一个请求地址和一个方法绑定,一个请求指定一个方法处理。
    属性;value 是一个string类型的,表示请求的URI地址的,不能重复,推荐以“/”开头
    位置;在方法上面:被修饰的方法叫控制器方法或处理器方法,在方法上面:被修饰的方法可以处理请求,类似于servlet中的doget/dopost

8.springMVC请求的处理流程:
    1.发起some.do,Tomcat接收请求
    2.Tomcat读取web.xml,知道*.do的请求给DispatcherServlet
    3.DispatcherServlet读取springmvc.xml,知道some.do-->dosome
    4.DispatcherServlet把some.do转发给MyController.dosome()方法
    5.框架执行doSome()把得到的ModelAndView进行处理,转发到show.jsp

9.中央调度器:DispatcherServlet 作用:用户向服务器发送请求,请求会到DispatcherServlet,DispatcherServlet 对请求URL进行解析,得到请求资源标识符(URI),然后根据该URI,将请求分派给不同的控制器对象处理,返回类型为ModelandView;

10.框架对视图执行的forWord操作:request.getRequestDispatcher("/show.jsp")
当配置了视图解析器,可以使用逻辑蒙城(文件名),指定视图,框架会使用视图解析器的前缀+逻辑名称+后缀组成路径,这里就是字符串连接操作

11.SpringMVC注解式开发之@RequestMapping的使用
    属性 method:表示请求的方式,它的值是RequestMethod类的枚举值,例如表示get方式的请求:RequestMethod.GET

12.接收请求的参数:第一类是使用SpringMVC提供的在控制器方法形参中使用的:HttpServletRequest、HttpServletResponse、HttpSession
第二类是用户提交的参数:逐个接收、对象接收
逐个接收请求参数的  要求:控制器方法的形参名必须和请求参数名相同,同名的请求参数赋值给同名的形参
                原理:使用request接收请求参数
    Stirng strName=request.getParameter("name"),Stirng strAge=request.getParameter("age");
    SpringMVC框架调用DispatcherServlet,通过他调用控制器类中的方法,按名称对应,参数分别对应给同名的方法

在逐个接收请求时,如果请求参数名和形参名不一致,可以使用@RequestParam注解,它使用的位置是控制器方法形参名前,属性value的值是请求参数名,属性required的值为true时表示请求参数名必须携带数据,为false表示不必携带参数

13.注意(接上):get方式的请求方式没有乱码,但post方式请求有乱码,需要使用过滤器,过滤器可以自定义,也可以使用框架中的;->CharacterEncodingFilter

14.DispatcherServlet:中央调度器,匿名叫前端控制器(front controller),我们写的类加上@Controller注解是后端控制器(back controller),会处理请求;返回的类型是ModelandView,model是模型,是数据,view是界面,显示数据;

15.控制器方法的返回值:ModelAndView、void(了解)、String、对象Object;
ModelAndView:当处理器方法需要返回Model和View时,使用ModelAndView作为返回值
String:控制器方法返回视图的逻辑名称(需要配置视图解析器,用来补全路径)或者完整视图路径(不能配置视图解析器,否则路径会错)
void:不能表示数据和视图,在处理ajax请求时,可以使用void返回值,响应对象会输出结果
Object:例如String,Integer、Map、List、Student都是对象,对象有属性,属性是数据,所以返回Object表示数据,和视图无关,可以使用对象表示的数据显示ajax请求

16.现在做ajax,步骤为;1.加入处理json格式的工具库的依赖,SpringMVC默认使用Jackson  2.在SpringMVC配置文件中加入<mvn:annotation-driven>注解驱动  3.在处理器方法的上面加@ResponseBody注解

17.返回对象框架的处理流程;1.框架返回Student类型,调用框架中ArrayList<HttpMessageConverter>中每个类的方法CanWrite()判断哪个HttpMessageConverter的接口实现类能够转换Student类型  2.框架会调用实现类的Writer()MappingJackson2HttpMessageConverter中的Writer()方法将Student类型的数据转为json数据  3.框架会调用@ResponseBody把2中的结果数据输出到浏览器,ajax请求完成;

18.Tomcat本身能够处理静态资源文件的访问,

 

SpringMVC框架

原文:https://www.cnblogs.com/1877chl/p/13666854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!