zoukankan      html  css  js  c++  java
  • Spring Web MVC 原理学习(下)

             接着上一篇博客,这一篇。我们依据一个简单的demo,来对SpringMVC的原理再次学习:

     

    一、配置web.xml

            

             我们新建一个web项目。在web.xml配置站点的统一訪问点,把Dispatcher Servlet配置在里面。进行全局流程控制。

    <!-- 前台控制器的配置 ,配置统一訪问点,进行全局的流程控制-->
    
    <servlet>
    
    <servlet-name>chapter2</servlet-name>
    
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>                
    
    <load-on-startup>1</load-on-startup>
    
    </servlet>
    
    <servlet-mapping>
    
    <servlet-name>chapter2</servlet-name>
    
    <url-pattern>/</url-pattern> 
    
    </servlet-mapping>
     

    二、配置spring的servlet.xml文件

          

             再然后配置spring的配置文件xx.servlet.xml,在里面配置HandlerMapping。HandlerAdapter。ViewResolver详细使用的类,这里我们分别配置的是BeanNameUrlHanderMapping,SimpleControllerHandlerAdaper,InternalResourceViewResolver,值得一说的。这里面我们能够依据项目实际情况,配置对应的技术。灵活性在这里体现的很好。

    <!-- 在spring配置文件里。配置HandlerMapping、HandlerAdapter,ViewResolver -->
    
     
    
    <!-- HandlerMapping -->
    
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    
     
    
    <!-- HandlerAdapter -->
    
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
    
     
    
    <!-- ViewResolver -->
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
    
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    
    <property name="prefix" value="/WEB-INF/jsp" />
    
    <property name="suffix" value=".jsp" />
    
    </bean>


    三、详细业务实现

     

            接下来我们就应该写一个controller的类了,实现Controller的接口。获取ModelAndView的对象,实现业务:

    import javax.servlet.http.HttpServletRequest;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    
    import org.springframework.web.servlet.mvc.Controller;
    
    public class HelloWorldController implements Controller {
    
    @Override
    
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    
    //1、收集參数
    
    //2、绑定參数到命令对象
    
    //3、调用业务对象
    
    //4、选择下一个页面
    
    ModelAndView mv = new ModelAndView();
    
    //加入模型数据 能够是随意的POJO对象
    
    mv.addObject("message", "Hello World!");
    
    //设置逻辑视图名。视图解析器会依据该名字解析到详细的视图页面
    
    mv.setViewName("hello");
    
    return mv;
    
    }
    
    }
     

             然后我们需建立一个view。这里我们建立jsp页面,依据controller类里设置的view名称“hello”,我们新建一个“hello”的jsp页面,依据${message}。获取业务数据,渲染视图。

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    
    "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
    <head>
    
    <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
    
    <title>Hello World</title>
    
    </head>
    
    <body>
    
    ${message}
    
    </body>
    
    </html>
     

             等等。这还没完呢。在spring的配置文件xx.selvet.xml里。我们仅仅配置了规则,可是还没有详细写业务,所以我们须要配置controller这个bean。通过URL获得beanName,以便于能够找到controller。

    <!-- 处理器 -->
    
    <bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController" />
     

    四、实际应用原理结合的图

           

                          

               这张demo的流程图,是在上一张原理图上继续写的,或许有些地方不太合适。欢迎拍砖!

     

  • 相关阅读:
    Wx-小程序-使用canvas截图保存
    Wx-小程序-图片预览、保存
    CSS-文本溢出省略号表示
    Wx-小程序-长按复制文本
    Vue-组件通信
    JS-禁用浏览器前进后退
    JS-内置对象和方法
    JS-冒泡排序
    JS-常用方法合集
    Wx-小程序-组件式开发之Vant
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8386772.html
Copyright © 2011-2022 走看看