Java框架——SpringMVC

在这里插入图片描述

SpringMVC

1.概述

1.SpringMVC做web开发的框架,实际是spring框架中的一个模块

2.springMVC的使用基于spring,容器的概念,springMVC会创建容器,WebApplicationContext.SpringMVC作为容器是创建和管理控制器对象的,使用@Controller创建控制器对象。

3.三层和框架的对应

  • 1.SpringMVC—界面层,接收用户请求,显示处理结果
  • 2.Spring—业务层,处理业务逻辑的,spring创建Service,DAO,工具类对象
  • 3.MyBatis—持久层,访问数据库的,对数据增删改查

4.SpringMVC底层访问依然是Servlet-DispatcherService(中央调度器)

  • 1.创建WebApplicationContext对象,读取配置文件,进而创建控制器对象
  • 2.他是一个Servlet,要接收用户的请求,显示处理结果

2.SpringMVC处理Web请求

1.注解

  • 1.@Controller:创建控制器类的对象,接收请求,处理请求

  • 2.@RequestMapping:请求映射,把请求绑定到一个方法,让这个方法处理请求

    • 1.valuue:请求的url地址,唯一值
    • 2.method:请求的方式,使用RequestMethod类的枚举值,例如:get请求–RequestMethod.GET

2.接收用户提交的请求参数

  • 1.HttpServletRequest,HttpServletResponse,HttpSession可以直接出现在处理器方法的参数位置
  • 2.逐个接收参数,【处理器方法的形参名】和【请求中参数名】一样,按名称对应赋值。
  • 3.解决请求中post方法有中文乱码,使用过滤器解决问题,CharacterEncodingFilter
  • 4.逐个接收中,请求中参数名和形参名不一样,使用@RequestParam解决问题
  • 5.使用java对象接收请求的参数,要求请求中参数名和属性名一样
  • 6.SpringMVC处理器方法的形参还可以Map,List等集合类型,数组都可以。

3.处理器方法的返回值:表示请求的处理结果

  • 1.MethodAndView,表示数据和视图,对视图执行forward

  • 2.String:表示视图的,可以逻辑名称,完整视图路径。对视图执行forward

  • 3.void:返回值本身不能表示数据和视图,可以响应ajax请求

  • 4.对象Object:表示数据的,响应ajax请求

  • 5.SpringMVC:处理器方法返回对象,转为json响应ajax步骤

    • 1.加入处理java到json转换的工具库:jackson
    • 2.在SpringMVC配置文件加入注解驱动mvc:annotation
    • 3.在处理器方法的上面加入@ResponseBody

4.url-pattern

  • 设置中央调度器的url-pattern是”/“:导致【静态资源】访问失败都是404,【动态代理】可以正常访问

  • 第一种解决静态资源访问的方案:SpringMVC的配置文件中:1)mvc:default-servlet-handler、2)mvc:annotation-driven

    • 原理:给程序内存中增加一个处理器对象,DefaultHttpRequestHandler,让这个对象处理静态资源的访问。
  • 第二种处理静态资源

    • 使用框架中的mvc:resources标签,由框架自己处理静态资源的访问

5.ssm整合开发

  • 1.ssm整合有两个容器:1):SpringMVC的容器,2)Spring的容器

    • 1.SpringMVC的容器:管理controller,视图等对象
    • 2.Spring容器:service,dao等对象
  • 2.创建容器的方式

    • 1.创建SpringMVC的容器对象:使用中央调度器DispatcherServlet
    • 2.创建Spring容器对象,使用监听器ContextLoaderListener
  • 3.配置文件

    • 1.SpringMVC的配置文件
    • 2.Spring的配置文件
    • 3.MyBatis主配置文件
    • 4.数据库的属性配置文件

6.核心技术——转发和重定向

  • 1.转发----forward
  • 2.重定向—redirect
  • 特点:都不和视图解析器一起工作,就当项目中没有视图解析器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值