zoukankan      html  css  js  c++  java
  • 秒杀系统(三)——基础知识回顾之SpringMVC

    目录

    1.什么是MVC

    2.SpringMVC的流程

    3.SpringMVC简单实例

    1.新建maven项目SpringMVCTest

    2.web.xml

    3.application-context.xml

    4.编写测试代码

    源码:


    1.什么是MVC

    模型-视图-控制器(MVC)是一个以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。

     

    2.SpringMVC的流程

    1、  用户发送请求至前端控制器DispatcherServlet。

    2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    4、  DispatcherServlet调用HandlerAdapter处理器适配器。

    5、  HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

    6、  Controller执行完成返回ModelAndView。

    7、  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

    8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

    9、  ViewReslover解析后返回具体View。

    10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

    11、 DispatcherServlet响应用户。

     

    3.SpringMVC简单实例

    1.新建maven项目SpringMVCTest

    在pom.xml中添加依赖:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
         <modelVersion>4.0.0</modelVersion>
    
         <groupId> com.albertyy.springmvc.Text</groupId>
    
         <artifactId>SpringMVCTest</artifactId>
    
         <version>0.0.1-SNAPSHOT</version>
    
         <packaging>war</packaging>
    
    
    
         <dependencies>
    
         <dependency>
    
             <groupId>org.springframework</groupId>
    
             <artifactId>spring-webmvc</artifactId>
    
             <version>3.2.4.RELEASE</version>
    
         </dependency>
    
         <dependency>
    
             <groupId>javax.servlet</groupId>
    
             <artifactId>servlet-api</artifactId>
    
             <version>2.4</version>
    
         </dependency>
    
         <dependency>
    
          <groupId>javax.servlet</groupId>
    
          <artifactId>jstl</artifactId>
    
          <version>1.2</version>
    
        </dependency>
    
      </dependencies>
    
    </project>

     

    2.web.xml

    新建文件夹WEB-INF,和文件web.xml,spring-servlet.xml

    web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
    <context-param>
    
        <param-name>contextConfigLocation</param-name>
    
        <param-value>
    
            classpath:application-context.xml
    
        </param-value>
    
      </context-param>
    
     
    
    <filter>
    
        <filter-name>characterEncodingFilter</filter-name>
    
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    
        <init-param>
    
            <param-name>encoding</param-name>
    
            <param-value>UTF-8</param-value>
    
        </init-param>
    
      </filter>
    
      <filter-mapping>
    
        <filter-name>characterEncodingFilter</filter-name>
    
        <url-pattern>/*</url-pattern>
    
      </filter-mapping>
    
    
    
      <listener>
    
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    
      </listener>
    
      <listener>
    
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    
      </listener>
    
    
    
      <servlet>
    
        <servlet-name>spring</servlet-name>
    
        <servlet-class>
    
          org.springframework.web.servlet.DispatcherServlet
    
        </servlet-class>
    
        <load-on-startup>1</load-on-startup>
    
      </servlet>
    
    
    
      <servlet-mapping>
    
        <servlet-name>spring</servlet-name>
    
        <url-pattern>/*</url-pattern>
    
      </servlet-mapping>
    
      <display-name>Archetype Created Web Application</display-name>
    
      </web-app>
    
    
    

    spring-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
    
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    
         xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
    
         xsi:schemaLocation="http://www.springframework.org/schema/beans
    
           http://www.springframework.org/schema/beans/spring-beans.xsd
    
           http://www.springframework.org/schema/context
    
           http://www.springframework.org/schema/context/spring-context.xsd
    
           http://www.springframework.org/schema/tx
    
           http://www.springframework.org/schema/tx/spring-tx.xsd
    
              http://www.springframework.org/schema/mvc
    
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    
    
         <context:component-scan base-package="com.*" />
    
         <mvc:annotation-driven />
    
         <!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
    
             <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> -->
    
    
    
         <mvc:view-controller path="/" view-name="index" />
    
    
    
         <bean
    
             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    
             <property name="order" value="1" />
    
             <property name="prefix" value="/WEB-INF/view/" />
    
             <property name="suffix" value=".jsp" />
    
             <property name="viewClass"
    
                  value="org.springframework.web.servlet.view.JstlView" />
    
         </bean>
    
    
    
    </beans>
    
    
    

    3.application-context.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"  
    
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    
        xmlns:context="http://www.springframework.org/schema/context"
    
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
    
           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    
           http://www.springframework.org/schema/context  
    
           http://www.springframework.org/schema/context/spring-context-3.1.xsd">
    
    
    
      <context:component-scan base-package="com.*" />
    
      <context:annotation-config />
    
    </beans>

     

     

    4.编写测试代码

    /**  
    
    
    
    * @Title: TestControl.java
    
    
    
    * @Package com.albertyy.control
    
    
    
    * @Description: TODO
    
    
    
    * @author yangxianyang  
    
    
    
    * @date 2019年2月4日 下午6:12:33
    
    
    
    * @version V1.0  
    
    
    
    */
    
    
    
    package com.albertyy.control;
    
    
    
    import java.io.IOException;
    
    import java.io.PrintWriter;
    
    
    
    import javax.servlet.http.HttpServletRequest;
    
    import javax.servlet.http.HttpServletResponse;
    
    
    
    import org.springframework.stereotype.Controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    
    
    
    
    
    /**
    
     *        项目名称:SpringMVCTest   类名称:TestControl   类描述:SpringMvc测试  
    
     * 创建人:yangyangyang   创建时间:2019年2月4日 下午6:12:33   修改人:yangyangyang  
    
     * 修改时间:2019年2月4日 下午6:12:33   修改备注:   @version       
    
     */
    
    @Controller
    
    @RequestMapping("test")
    
    public class TestControl {
    
    
    
             @RequestMapping("test")
    
             public void test(HttpServletRequest request, HttpServletResponse response) {
    
                       String test = request.getParameter("test");
    
                       response.setContentType("application/json");
    
                       response.setCharacterEncoding("UTF-8");
    
                       try {
    
                                PrintWriter printWriter = response.getWriter();
    
                                printWriter.println("hello==" + test);
    
                       } catch (IOException e) {
    
                                // TODO Auto-generated catch block
    
                                e.printStackTrace();
    
                       }
    
             }
    
    
    
    }

     

    源码:

    链接: https://pan.baidu.com/s/1jLortXqGmtlD8kTCXXraFQ 提取码: b7gy

  • 相关阅读:
    web.xml
    ibatis配置
    ibatis基本语法
    XML文件解析
    进制转换
    BaseAction
    【编译】StreamInsight简介
    秒懂C#通过Emit动态生成代码
    百度地图应用开发(二)
    ListView与Adapter的那些事儿
  • 原文地址:https://www.cnblogs.com/yangxianyang/p/13675626.html
Copyright © 2011-2022 走看看