框架——SpringMVC

1、开发步骤

  1. 新建web maven工程
  2. 加入依赖
    spring-webmvc依赖,间接把spring的依赖都加入到项目
    jsp,servlet依赖
  3. 配置中央调度器: 在web.xml中注册springmvc框架的核心对象:DispatcherServlet
    DispatcherServlet叫做中央调度器,是一个servlet,它的父类是继承HttpServlet
    DispatcherServlet页叫做前端控制器(front controller)
    DispatcherServlet负责接收用户提交的请求,调用其它的控制器对象,并把请求的处理结果显示给用户
  4. 创建一个发起请求的页面 index.jsp
  5. 创建控制器(处理器)类
    1)在类的上面加入@Controller注解,创建对象,并放入到springmvc容器中
    2)在类中的方法上面加入@RequestMapping注解。请求映射,把指定的请求交给给方法处理,(value="/some.do")
  6. 创建一个作为结果的jsp,显示请求的处理结果。
  7. 创建springmvc的配置文件(spring的配置文件一样)
    1)声明组件扫描器, 指定@Contorller注解所在的包名
    2)声明视图解析器。帮助处理视图的。

2、执行流程

  1. 浏览器提交请求到中央调度器
  2. 中央调度器将请求转给处理器映射器
  3. 处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后,返回给中央调度器
  4. 中央调度器根据处理执行链中的处理器,找到能够执行该处理器的处理器适配器
  5. 处理器设配器调用执行处理器
  6. 处理器将处理结果及要跳转的视图封装到一个对象ModelAndView中,并将其返回给处理器适配器
  7. 处理器适配器直接将结果返回给中央调度器
  8. 中央调度器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象
  9. 视图解析器将封装了的视图对象返回给中央调度器
  10. 中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象
  11. 中央调度器响应浏览器。

在这里插入图片描述

3、注解

1、处理器方法注解
@RequestMapping(value="/some.do",method=RequestMethod.POST)

在这里插入图片描述
2、处理器方法参数

HttpServletRequest
HttpServletResponse
HttpSession
请求中所携带的请求参数

逐个参数接收
请求参数名(index.jsp中参数)与该请求处理方法的参数名相同
若不同,可在方法参数名前添加注释:@RequestParam(“请求参数名”)

对象参数接收
要求对象中的属性名需要和请求参数名相同

处理中文乱码
在web.xml中注册字符集过滤器

3、处理器方法返回值

ModelAndView
Ajax异步响应时,会多余,不用该对象

String
字符串可以指定逻辑视图名,通过视图解析器转化为物理视图地址

void
针对Ajax异步响应

自定义类型对象
返回对象,需要使用@ResponseBody注解,将转换后的JSON数据放入到响应体中
导入Jackson的jar包,声明注解驱动

4、请求重定向和转发

forward:表示转发,实现 request.getRequestDispatcher(“xx.jsp”).forward()
不和视图解析器一同工作,就当作项目中,没有视图解析器,
setViewName(“forward:视图的完整路径”)

redirect:表示重定向,实现 response.sendRedirect(“xxx.jsp”)
setViewName(“redirect:视图的完整路径”)
注意:对于请求转发的页面,可以是WEB-INF中页面;而重定向的页面,是不能为WEB-INF中的。因为重定向相当于用户再次发出一次请求,而用户是不能直接访问 WEB-INF 中资
源的

5、异常处理

采用aop思想
@ExcepHandler 方法上
@ControllerAdvice 类上

6、拦截器(面试)

preHandler 预处理方法

注册拦截器

拦截器和过滤器的区别

  1. 过滤器是servlet中的对象, 拦截器是框架中的对象
  2. 过滤器实现Filter接口的对象, 拦截器是实现HandlerInterceptor
  3. 过滤器是用来设置request,response的参数,属性的,侧重对数据过滤的。 拦截器是用来验证请求的,能截断请求。
  4. 过滤器是在拦截器之前先执行的。
  5. 过滤器是tomcat服务器创建的对象 拦截器是springmvc容器中创建的对象
  6. 过滤器是一个执行时间点。 拦截器有三个执行时间点
  7. 过滤器可以处理jsp,js,html等等 拦截器是侧重拦截对Controller的对象。 如果你的请求不能被DispatcherServlet接收, 这个请求不会执行拦截器内容
  8. .拦截器拦截普通类方法执行,过滤器过滤servlet请求响应

在这里插入图片描述
在这里插入图片描述

7、知识框图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、ssm的开发步骤

SSM: SpringMVC + Spring + MyBatis.

SpringMVC:视图层,界面层,负责接收请求,显示处理结果的。
Spring:业务层,管理service,dao,工具类对象的。
MyBatis:持久层, 访问数据库的

用户发起请求–SpringMVC接收–Spring中的Service对象–MyBatis处理数据

SSM整合也叫做SSI (IBatis也就是mybatis的前身), 整合中有容器。
1.第一个容器SpringMVC容器, 管理Controller控制器对象的。
2.第二个容器Spring容器,管理Service,Dao,工具类对象的
我们要做的把使用的对象交给合适的容器创建,管理。 把Controller还有web开发的相关对象
交给springmvc容器, 这些web用的对象写在springmvc配置文件中

service,dao对象定义在spring的配置文件中,让spring管理这些对象。

springmvc容器和spring容器是有关系的,关系已经确定好了
springmvc容器是spring容器的子容器, 类似java中的继承。 子可以访问父的内容
在子容器中的Controller可以访问父容器中的Service对象, 就可以实现controller使用service对象

  1. 使用springdb的mysql库, 表使用student(id auto_increment, name, age)
  2. 新建maven web项目,加入依赖 springmvc,spring,mybatis三个框架的依赖,jackson依赖,mysql驱动,druid连接池 jsp,servlet依赖
  3. 写web.xml
    1)注册DispatcherServlet :1.创建springmvc容器对象,才能创建Controller类对象。2.创建的是Servlet,才能接受用户的请求。
    2)注册spring的监听器:ContextLoaderListener:创建spring的容器对象,才能创建service,dao等对象。
    3)注册字符集过滤器,解决post请求乱码的问题
  4. 创建包, Controller包, service ,dao,实体类包名创建好
  5. 写springmvc,spring,mybatis的配置文件
    1)springmvc配置文件
    2)spring配置文件
    3)mybatis主配置文件
    4)数据库的属性配置文件
  6. 写代码, dao接口和mapper文件, service和实现类,controller, 实体类。
  7. 写jsp页面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值