zoukankan      html  css  js  c++  java
  • 01springMVC入门

    1      MVC模式回顾

    Spring MVC是一种基于MVC的Web应用框架。

    MVC是一种设计模式,MVC在b/s系统下的应用:

     

    执行步骤:

    1. 发出请求,请求到MVC当中的C,C接收请求后并不能处理请求,需要把请求交给M
    2. 模型是用来处理请求的,所有用来处理的东西都是模型,pojo,action,service,dao
    3. 处理完后进行结果返回到C
    4. C需要一些好看的经过渲染的页面进行响应,这就用到V视图
    5. 控制器进行视图的渲染,将模型数据填充到request域
    6. Request准备好了后就可以response了

    注意:b/s系统下模型无法将数据填充到视图

    与springMVC的联系:控制器、模型、视图这些在spring中怎么实现的?

    2      Spring MVC框架

     

    执行步骤:

    1 发起请求到前段控制器(dispatcherServlet)

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

    3 处理器映射器HandlerMapping向前端控制器返回handler

    4 前端控制器调用处理器适配器去执行handler

    5 处理器适配器去执行handler

    6  handler执行完给适配器返回modelAndView

    7 处理器适配器向前端控制器返回modelAndView,modelAndView是springMVC框架的一个底层对象,包括model和view

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

    9 视图解析器向前端控制器返回view

    10 前端控制器进行视图渲染,视图渲染将模型数据(在modelAndView对象中)填充到request域

    11 前端控制器向用户响应结果

    3      springMVC主要组件

    1前端控制器DispatcherServlet(不需要程序开发)

    作用:接收请求,响应结果,相当于转发器,中央处理器

    减少了其他组件之间的耦合度。

    2 处理器映射器HandlerMapping(不需要程序开发)

    作用:根据请求的url查找handler

    3 处理器适配器HandlerAdapter(不需要程序开发)

    作用:按照特定规则(HandlerAdapter要求的规则)执行handler

    4 处理器Handler(需要程序开发

    注意:编写handler时按照handlerAdapter的要求去做,这样适配器才可以正确执行handler

    5 视图解析器view resolver(不需要程序开发)

    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

    6 视图view(需要程序员开发jsp

    View是一个接口,实现类支持不同的view类型

    4      一个简单的springMVC案例

    4.1   配置前端控制器

     1   <!-- 配置springmvc前端控制器 -->
     2   <servlet>
     3       <servlet-name>springmvc</servlet-name>
     4       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     5    <init-param>
     6         <param-name>contextConfigLocation</param-name>
     7         <param-value>classpath:/*-servlet.xml</param-value>
     8     </init-param>
     9     <load-on-startup>1</load-on-startup>
    10   </servlet>
    11   
    12   <servlet-mapping>
    13       <servlet-name>springmvc</servlet-name>
    14        <url-pattern>/</url-pattern>
    15   </servlet-mapping>

    4.2   配置处理器:配置器

    1 <!-- HandlerAdapter -->
    2 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    4.3   配置处理器:映射器

    1 <!-- HandlerMapping -->
    2   <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    4.4   配置视图解析器

    1 <!-- ViewResolver -->
    2 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    3   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    4   <property name="prefix" value="/WEB-INF/jsp/"/>
    5   <property name="suffix" value=".jsp"/>
    6 </bean>

    4.5   处理器书写

    1 <!-- Handler-->
    2 <bean name="/hello" class="com.inspur.handler.HelloWorldController"/>

    Java代码

     1 public class HelloWorldController implements Controller {
     2     @Override
     3     public ModelAndView handleRequest(HttpServletRequest request,
     4            HttpServletResponse response) throws Exception {
     5        //返回ModelAndView
     6        ModelAndView mv = new ModelAndView();
     7        //相当于request的setAttribute,在jsp页面中通过message取数据
     8        mv.addObject("message", "Hello World!");
     9        //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
    10        mv.setViewName("hello");
    11        return mv;
    12     }
    13 }

    4.6   Jsp书写

    1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    2   ${message}

     4.7   访问

    http://localhost:8080/springmvctfirst/hello

  • 相关阅读:
    while练习
    运算符
    作业
    [新手必看] 17个常见的Python运行时错误
    作业
    day04
    作业
    算法模板——线段树2(区间加+区间乘+区间求和)
    1798: [Ahoi2009]Seq 维护序列seq
    1708: [Usaco2007 Oct]Money奶牛的硬币
  • 原文地址:https://www.cnblogs.com/zhouyeqin/p/8418492.html
Copyright © 2011-2022 走看看