springmvc入门

 1.什么是SpringMVC?

   轻量级框架、MVC设计模式

 2.SpringMVC的工作原理
    
   1) 用户发起请求 -> DispatcherServlet(中央处理器,前端控制器)
   2) DispatcherServlet -> HandlerMapping(处理器映射器)
   3) 由HandlerMapping处理器映射器根据配置或者注解找到最终要执行的Handler并返回
   4) DispatcherServlet -> HandlerAdapter(处理器适配器)
   5) 由HandlerAdapter处理器适配器根据Handler不同映射规则执行Handler(Servlet、Action以及Controller)
   6) 执行Handler(Servlet、Action以及Controller)并返回ModelAndView
   7) 返回ModelAndView(包含了展示的数据和跳转的页面)至DispatcherServlet
   8) 由DispatcherServlet将ModelAndView送达到视图解析器ViewResolver
   9) 由视图解析器ViewResolver进行视图解析工作(获取完整页面路径=前缀+逻辑视图名(页面名称)+后缀)
   例如:/WEB-INF/jsp/index.jsp
   10) 将ModelAndView中的Model部分渲染到具体的View视图上进行显示
   11) 由DispatcherServlet将响应结果发送给用户(响应用户Response)

   核心组件的作用:
   1)DispatcherServlet:前端控制器,中央处理器,用于请求接收和分发以及响应结果
   2)HandlerMapping:处理器映射器,根据配置或者注解找到最终要执行的Handler并返回(仅查找,不执行)
   3)HandlerAdapter:处理器适配器,根据Handler的不同规则执行Handler(这里才是执行动作)
   4)ModelAndView:模型视图,包含了被渲染的数据和跳转的页面(仅是逻辑视图名)
   5)ViewResolver:解析ModelAndView中的View部分进行视图解析操作,获取完整页面路径=前缀+逻辑视图名(页面名称)+后缀

3.综合案例 

1,添加springmvc相关依赖

2,添加JSTL依赖

3,在WEB-INF下添加springmvc-servlet.xml(spring-mvc.xml)

 注1:修改spring-mybatis的扫描配置

 注2:修改spring-mvc.xml的扫描配置

 4,配置web.xml

 5,配置Tomcat

 6,HandlerMappinp处理映射器

 7,常用注释

        1,@Controller:用于标识处理器类

        2,@RequestMapping:请求到处理器功能方法的映射规则,可定义到类和方法

                1)如果作用在类上,起到窄化路径的作用

                2)如果作用在方法上,表示该方法为请求处理方法

                3)属性 :value:作用在类上,叫做窄化路径;作用在方法上,叫做请求路径

                    注意:如果单独使用value属性,那么value属性可以省略

                               如果与其他属性一起使用,则必须指明

 2,参数传递

1)直接传递String或者八大基础类型

 2)传递对象类型的参数
3)RequestParam

required = false:允许为空
defaultValue = "未知类型":默认值

 4)传递Request/Response/Session

 

5)传递集合类型的参数

5.1 请使用@RequestParam方式接收Map类型参数

 5.2 使用@RequestBody方式传遍List或Map类型的参数,但是参数的格式必须是JSON

注意:必须导入jackson的jar包

 JSON格式:

 1)数组:[1,2,3,4,5...]

2)对象:{'name':'zs','age':21}

3)混合:{'total':81,'rows':[{'bname':'三字经','price':100},{'bname':'十宗罪','price':100},{},{}....]} 

 3,返回值

 1)String:逻辑视图名 (跟上面一样的,不用跳转页面)

以下三种方式都属于需要跳转到视图解析器中进行视图解析器操作:

 2)ModelAndView

 

 

 3)String+Model

 4)json

4,跳转
1)forward:转发,"forward:path":地址栏不变
2)redirect:重定向,"redirect:path":地址栏改变
 注意事项:
 1)这两种跳转方式将会绕开视图解析器的前缀和后缀
 2)还有就是如果在同一controller中则不用使用"/"从根目录开始,而如果是在不同的controller则一定要从根目录开始
3)转发和重定向的路径,不是路径视图名,而是请求方法名
  3.1)如果在本Controller里面跳转,不需要使用"/"开头
  3.2)如果在不同的Controller里面跳转,则需要使用"/"开头,并且是窄化路径+请求路径
  例如:redirect:/index/toIndex

 

例如:redirect:/index/toIndex

 

 

 4,图片

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值