秒杀系统(三)——基础知识回顾之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

posted @ 2019-02-04 18:42  AlbertYang666  阅读(131)  评论(0编辑  收藏  举报

AlbertYang