springMVC一文通关

1.springMVC介绍

1.1SpringMVC是什么

它是基于MVC开发模式的框架,用来优化控制器.它是Spring家族的一员.它也具备IOC和AOP.
什么是MVC?
它是一种开发模式,它是模型视图控制器的简称.所有的web应用都是基于MVC开发.
M:模型层,包含实体类,业务逻辑层,数据访问层
V:视图层,html,javaScript,vue等都是视图层,用来显现数据
C:控制器,它是用来接收客户端的请求,并返回响应到客户端的组件,Servlet就是组件

1.2执行流程

MVC流程
(1)当用户通过浏览器发起一个HTTP请求,请求直接到前端控制器DispatcherServlet;
(2)前端控制器接收到请求以后调用处理器映射器HandlerMapping,处理器映射器根据请求的URL找到具体的Handler,并将它返回给前端控制器;
(3)前端控制器调用处理器适配器HandlerAdapter去适配调用Handler;
(4)处理器适配器会根据Handler去调用真正的处理器去处理请求,并且处理对应的业务逻辑;
(5)当处理器处理完业务之后,会返回一个ModelAndView对象给处理器适配器,HandlerAdapter再将该对象返回给前端控制器;这里的Model是返回的数据对象,View是逻辑上的View。
(6)前端控制器DispatcherServlet将返回的ModelAndView对象传给视图解析器ViewResolver进行解析,解析完成之后就会返回一个具体的视图View给前端控制器。(ViewResolver根据逻辑的View查找具体的View)
(7)前端控制器DispatcherServlet将具体的视图进行渲染,渲染完成之后响应给用户(浏览器显示)。

2.基于注解配置SpringMVC

2.1 新建项目

2.2 调整项目结构

2.3 pom文件添加依赖

2.4 在web.xml文件中注册DispatcherServlet

这是一个Servlet 要配置全类名,前缀,后缀

2.5 使用注解进行开发

@Controller
@RequestMapping

3.优化

3.1 提交方式的优化

六种优化:单个数据提交,对象封装提交,动态占位符提交,映射名不一致时,手工提取数据,中文乱码

3.2 action返回值

1)String:客户端资源的地址,自动拼接前缀和后缀.还可以屏蔽自动拼接字符串,可以指定返回的路径.
2)Object:返回json格式的对象.自动将对象或集合转为json.使用的jackson工具进行转换,必须要添加jackson依赖.一般用于ajax请求.
3)void:无返回值,一般用于ajax请求.
4)基本数据类型,用于ajax请求.
5)ModelAndView:返回数据和视图对象,现在用的很少

3.3 ajax请求

function show() {
  $.ajax({
    url:"${pageContext.request.contextPath}/ajax.action",
    dataType:"json",
    type:"get",
    success:function (list) {
      var s="";
      $.each(list,function (i,stu) {
        s+=stu.name+"----"+stu.age+"<br>";
      });
      $("#mydiv").html(s);
    }
  });
    }

在控制器方法上添加@ResponseBody,来处理ajax请求

3.4 四种跳转方式

不需要配置渲染器 返回类型为void
请求 return “main”
无渲染器时,直接返回jsp页面 return “redirect:index.jsp”;
有渲染器时,重定向 return “redirect:/admin/main.jsp”

4 springMVC其他使用

4.1 直接使用的参数

1)HttpServletRequest
2)HttpServletResponse
3)HttpSession
4)Model
5)Map
6)ModelMap

4.2日期处理

A.单个日期处理
要使用注解@DateTimeFormat,此注解必须搭配springmvc.xml文件中的mvc:annotationdriven标签
B.类中全局日期处理
注册一个注解,用来解析本类中所有的日期类型,自动转换.
JSTL日期显示处理
添加依赖
页面导入标签库
使用

4.3 拦截器拦截器执行的时机

1)preHandle():在请求被处理之前进行操作,预处理
2)postHandle():在请求被处理之后,但结果还没有渲染前进行操作,可以改变响应结果,后处理
3)afterCompletion:所有的请求响应结束后执行善后工作,清理对象,关闭资源 ,最终处理.
拦截器实现的两种方式
1)继承HandlerInterceptorAdapter的父类
2)实现HandlerInterceptor接口,实现的接口,推荐使用实现接口的方式
拦截器实现的步骤
1)改造登录方法,在session中存储用户信息,用于进行权限验证
2)开发拦截器的功能.实现HandlerInterceptor接口,重写preHandle()方法
3)在springmvc.xml文件中注册拦截器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值