zoukankan      html  css  js  c++  java
  • SpringMVC框架

    1.SpringMVC

    Spring MVC 是一个模型 - 视图 - 控制器(MVC)的Web框架建立在中央前端控制器。servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果的概念。

    2.请求-响应模型 :

     

     3.mvc模型:

     

     3.1 组件:

    1.前端控制器DispatcherServlet(不需要程序员开发)
    作用接收请求,响应结果,相当于转发器,中央处理器。
    有了DispatcherServlet减少了其它组件之间的耦合度。

    2.处理器映射器HandlerMapping(不需要程序员开发)
    作用:根据请求的url查找Handler

    3.处理器适配器HandlerAdapter
    作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

    4.处理器Handler(需要程序员开发)
    注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

    5.视图解析器View resolver(不需要程序员开发)
    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

    6.视图View(需要程序员开发jsp)
    View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

    3.2 配置解析:

    1.Dispatcherservlet

    Dispatcherservlet是前置控制器,配置在web.xml文件中。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controoler来处理,是配置springMVC的第一步。

    2.InternalResourceViewResolver

    视图名称解析器

    3.SpringMVC常用注解

    @Controller:标识这个类是一个控制器

    @RequestMapping:给控制器方法绑定一个uri

    @ResponseBody:将java对象转成json,并且发送给客户端

    @RequestBody:将客户端请求过来的json转成java对象

    @RequestParam:当表单参数和方法形参名字不一致时,做一个名字映射

    @PathVarible:用于获取uri中的参数,比如user/1中1的值

    Rest风格的新api

    @RestController相当于@Controller+ @ResponseBody

    @GetMapping@DeleteMapping@PostMapping@PutMapping

    4.SpringMVC的入门程序

    web.xml

     1 <web-app>
     2     <servlet>
     3         <!-- 加载前端控制器 -->
     4         <servlet-name>springmvc</servlet-name>
     5         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     6         <!-- 
     7              加载配置文件
     8              默认加载规范:
     9              * 文件命名:servlet-name-servlet.xml====springmvc-servlet.xml
    10              * 路径规范:必须在WEB-INF目录下面
    11              修改加载路径:
    12         -->
    13         <init-param>
    14             <param-name>contextConfigLocation</param-name>
    15             <param-value>classpath:springmvc.xml</param-value>   
    16         </init-param>
    17     </servlet>
    18     <servlet-mapping>
    19         <servlet-name>springmvc</servlet-name>
    20         <url-pattern>*.do</url-pattern>
    21     </servlet-mapping>
    22 </web-app>

    springmvc.xml

     1 <beans>
     2     <!-- 配置映射处理器:根据bean(自定义Controller)的name属性的url去寻找handler;springmvc默认的映射处理器是BeanNameUrlHandlerMapping-->
     3     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
     4     
     5     <!-- 配置处理器适配器来执行Controller ,springmvc默认的是SimpleControllerHandlerAdapter
     6     -->
     7     <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
     8     
     9     <!-- 配置sprigmvc视图解析器:解析逻辑视图; 
    10         后台返回逻辑视图:index
    11         视图解析器解析出真正物理视图:前缀+逻辑视图+后缀====/WEB-INF/jsps/index.jsp
    12     -->
    13     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    14         <property name="prefix" value="/WEB-INF/jsps/"></property>
    15         <property name="suffix" value=".jsp"></property>        
    16     </bean>
    17 </beans>

    自定义处理器

     1 @Controller
     2 @RequestMapping("/mvc")
     3 public class MyController implements Controller{
     4  
     5     @PostMapping("/request")
     6     public ModelAndView handleRequest(HttpServletRequest arg0,
     7             HttpServletResponse arg1) throws Exception {
     8         ModelAndView mv = new ModelAndView();
     9         //设置页面回显数据
    10         mv.addObject("hello", "欢迎学习springmvc!");
    11         
    12         //返回物理视图
    13         //mv.setViewName("/WEB-INF/jsps/index.jsp");
    14         
    15         //返回逻辑视图
    16         mv.setViewName("index");
    17         return mv;
    18     }
    19 }    
  • 相关阅读:
    hdu 1017 A Mathematical Curiosity 解题报告
    hdu 2069 Coin Change 解题报告
    hut 1574 组合问题 解题报告
    hdu 2111 Saving HDU 解题报
    hut 1054 Jesse's Code 解题报告
    hdu1131 Count the Trees解题报告
    hdu 2159 FATE 解题报告
    hdu 1879 继续畅通工程 解题报告
    oracle的系统和对象权限
    oracle 自定义函数 返回一个表类型
  • 原文地址:https://www.cnblogs.com/chensisi/p/13294089.html
Copyright © 2011-2022 走看看