zoukankan      html  css  js  c++  java
  • Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

      Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用  

    springmvc

    (1)springmvc是什么?

    是一个mvc框架,用来简化基于mvc架构的web应用程序的开发。
    注:springmvc属于spring框架的一部分。

    (2)五大组件

    DispatcherServlet 前端控制器

    HandleMapping (请求地址与模型的对应关系)

    Controller 处理器 (业务逻辑处理)

    ModelAndView (封装处理结果)

    ViewResolver 视图解析器 (处理结果与视图的对应关系)

    step1. DispatcherServlet收到请求之后,依据HandlerMapping的配置 调用对应的Controller来处理。
    step2. Controller将处理结果封装成ModelAndView,返回给 DispatcherServlet。
    step3. DispatcherServlet依据ViewResolver的配置,调用 对应的jsp来将处理结果进行展现。

    (3)编程步骤

    step1. 导包。
    step2. 添加spring配置文件。
    step3. 配置DispatcherServlet。
    step4. 写处理器(Controller)。
    step5. 写jsp。

    案例:

    src/main/java/

    controller

    package controller;
    
    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 HelloController implements 
    Controller{
    
        public ModelAndView handleRequest(
                HttpServletRequest req, 
                HttpServletResponse res)
                        throws Exception {
            System.out.println("handleRequest()");
            /*
             * ModelAndView有两个构造器:
             * a. ModelAndView(String viewName)
             * b. ModelAndView(String viewName,
             * Map data)
             * 注: 
             *         viewName是视图名(视图名会被
             *     ViewResolver解析成真正的视图对象,
             * 比如某个jsp)。
             *         data是处理结果。
             * 
             */
            return new ModelAndView("hello");
        }
        
    
    }
    HelloController.java

    src/main/resources

    <?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:jdbc="http://www.springframework.org/schema/jdbc"  
        xmlns:jee="http://www.springframework.org/schema/jee" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
            http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
            http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
        <!-- 配置HandlerMapping -->
        <bean 
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/hello.do">helloController</prop>
                </props>
            </property>
        </bean>
        <bean id="helloController" 
        class="controller.HelloController"/>
        <!-- 配置视图解析器 -->
        <bean
         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/> 
        <property name="suffix" value=".jsp"/> 
        </bean> 
        
    
        
        
    </beans>
    spring-mvc.xml

    src/main/java/webapp/WEB-INF/

    <h1>Hello,SpringMVC</h1>
    hello.jsp
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 
             DispatcherServlet的初始化方法在执行时,
             会启动spring容器。
             contextConfigLocation负责指定spring
             配置文件的位置。
         -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
      
    </web-app>
    web.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.tarena.spring</groupId>
      <artifactId>springmvc01</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>war</packaging>
      <dependencies>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>3.2.8.RELEASE</version>
          </dependency>
      </dependencies>
    </project>
    pom.xml
  • 相关阅读:
    Codeforces Round #694 (Div.1, Div.2)题解(2A-1D)(1E-1F待填)
    【Luogu日报#294】OI中你可能会用到的一些不等式及其证明 | 习题题解
    SP10570 LONGCS
    Unity 数字孪生笔记 工具介绍
    Unity3D 最佳数字孪生插件(一个基于Unity的自动化概念设计,仿真,虚拟调试和3D HMI的框架)
    Unity 数字孪生笔记 PiXYZ快速入门
    数据结构:堆排序
    HDU 4704 Sum (欧拉降幂+二项式公式+快速幂)
    Codeforces Goodbye2020部分题解
    Apache架构师的30条设计原则
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6493187.html
Copyright © 2011-2022 走看看