• SpringMVC


    目的:为更方便的进行Web的开发,实现前后端分离

               1、前置控制器 DispatcherServlet 是核心,与Spring IoC容器做到了无缝集成。

    DispatcherServlet其实就是个Servlet(它继承自HttpServlet基类)

     

    2、DispatcherServlet都持有一个自己的上下文对象WebApplicationContext

    3、工作流程

    第一步:发起请求到前端控制器(DispatcherServlet)

    第二步:前端控制器请求HandlerMapping查找Handler可以根据xml配置、注解进行查找

    第三步:处理器映射器HandlerMapping向前端控制器返回Handler

    第四步:前端控制器调用处理器适配器去执行Handler

    第五步:处理器适配器去执行Handler

    第六步:Handler执行完成给适配器返回ModelAndView

    第七步:处理器适配器向前端控制器返回ModelAndView。ModelAndView是springmvc框架的一个底层对象,包括 Model和view

    第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

    第九步:视图解析器向前端控制器返回View

    第十步:前端控制器进行视图渲染。视图渲染将模型数据(在ModelAndView对象中)填充到request域

    第十一步:前端控制器向用户响应结果

    4、请求转发与重定向

    return "forward:/WEB-INF/jsp/S1.jsp";
    
    return "redirect:/xx"

     

    因为WEB-INF目录下的资源不是公共资源,不能直接访问。所以就可以起到那个保护这些代码未经授权的访问和窥视,更好的保护资源。
    我们需要通过servlet中请求转发到该页面才可访问。这样url地址也不会显示改地址。使用重定向是无法访问该资源的。

     

    5、restful风格

    简易,安全(URL不含变量名)

    @GetMapping("/URL")、Post、Put、Delete
    //定义请求方式,同样的url,不同的请求方式,对应不同的响应
    
    "/{a}/{b}"
    (@PathVariable int a,@PathVariable int b)
    //从url中获取变量值
    
    @RequestParam(value="username") String name 
    //原始?username=xxx

     

     

  • 相关阅读:
    微信消息类型和事件类型
    lnmp环境搭建脚本
    laravel框架踩过的坑
    vue结构详解
    PHP消息队列实现及应用
    laravel 运行错误
    笔记分享
    cf730e
    cf 730i
    cf 731f
  • 原文地址:https://www.cnblogs.com/mo-jian-ming/p/13323671.html
Copyright © 2020-2023  润新知