SpringMvc基础知识

执行流程:

  1. 用户发出请求 然乎通过url到达相关的控制器
  2. 处理器映射器(HandlerMapping)根据请求的url查找handler,
  3. HanderExecution为具体的handler,主要就是根据url找到控制器,然后解析后的信息再传给DispatcherServlet   
  4. 处理器适配器(handlerAdapter),按照特定的规则执行handler
  5. Handler让具体的controller去执行
  6. Controller将具体的执行信息返回给处理器适配器  如:ModelAndView
  7. 处理器适配器将 视图 再给DispatcherServlet   然后DispatcherServlet  调用视图解析器来解析处理器适配器传递的视图
  8. 视图解析器再将解析过的视图传给DispatcherServlet   然后调用具体的视图

  

MVC 主要做的事情:

  1. 将url映射到Java类或者方法
  2. 封装用户提交的数据
  3. 处理请求   调用相关的业务处理   封装响应数据
  4. 将响应的数据渲染.jsp/html等表示层数据

在Spring MVC框架当中,Controller替代Servlet担负控制器的职能,

M:指model:模型层,指工程当中的Java Bean,作用是处理数据

Java Bean分两类:

一类是实体类Bean:专门存储业务数据的

一类为业务处理Bean:指Servlet或Dao对象,专门处理业务逻辑和数据

V:View,视图层指项目当中的html或jsp等页面,作用是与用户进程交互,展示数据

C:Contoller,控制层,指工程当中的servlet,作用是接受请求和响应数据

@RestController是一个组合注释,它本身是元注释的,@Controller并@ResponseBody指示一个控制器,其每个方法都继承类型级别的@ResponseBody注释,因此直接写入响应正文而不是视图分辨率并使用 HTML 模板呈现。

捕获的 URI 变量可以使用@PathVariable  默认支持简单类型(int、long、Date等)例如

@Controller 

@RequestMapping("/owners/{ownerId}")

public class OwnerController {

       @GetMapping("/pets/{petId}")

       public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId){

         // ...

}

@RequestMapping的属性的子集(或全部)

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping和@PatchMapping是组合注释的示例。提供它们是因为,可以说,大多数控制器方法应该映射到特定的 HTTP 方法,而不是 using @RequestMapping,默认情况下,它匹配所有 HTTP 方法。

@RequestParam注解将 Servlet 请求参数(即查询参数或表单数据)绑定到控制器中的方法参数,用@RequestParam绑定petId

@Controller

@RequestMapping("/pets")

public class EditPetForm {

// ...

@GetMapping

public String setupForm(@RequestParam("petId") int petId, Model model) {

Pet pet = this.clinic.loadPet(petId);

          model.addAttribute("pet", pet);

           return "petForm";

}

// ...

}


版权声明:本文为wuxneudb原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。