zoukankan      html  css  js  c++  java
  • springmvc的基本使用

    springmvc的基本使用(基于xml)

    一、搭建工程

    这里使用的springmvc版本是5.3.13,新建一个web工程,导入springmvc的依赖,因为springmvc依赖了spring,所以不需要单独导入spring的依赖。

    需要使用tomcat插件来启动web工程,所以要引入maven对应的插件,最终pom文件的内容如下

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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.lyy</groupId>
        <artifactId>springmvc-003</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <packaging>war</packaging>
    
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.3.13</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1</version>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>80</port>
                        <path>/</path>
                        <uriEncoding>UTF-8</uriEncoding>
                        <server>tomcat7</server>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    最终工程的目录如下

    src
    --main
    ----java
    ----resources
    ----webapp
    ------WEB-INF
    --------web.xml
    

    二、基于xml配置springmvc

    配置springmvc,实际上就是配置springmvc的四大核心组件:前端控制器,处理器映射器,处理器适配器,还有视图解析器

    2.1 配置前端控制器

    springmvc的前端控制器DispatcherServlet本质上是也一个servlet,用来接收用户的请求,进行处理,然后进行响应,是springmvc处理用户请求的入口。

    因为它是一个servlet,所以需要配置在web工程的web.xml中。

    	<servlet>
            <servlet-name>dispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>dispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    

    2.2 配置其他组件(处理器映射器,处理器适配器,视图解析器)

    springmvc的几个核心组件中,除了前端控制器外其余的都要配置在springmvc的容器中,作为容器中的bean。

    所以需要创建springmvc的配置文件,并把配置文件的路径作为前端控制器的初始化参数。

    2.2.1 自动配置处理器映射器,处理器适配器,视图解析器

    (1) springmvc提供了一个mvc:annotation-driven标签,在配置文件中配置了这个标签,就会自动配置处理器映射器和处理器适配器

    (2) 视图解析器,springmvc默认的视图时jsp,所以需要把InternalResourceViewResolver这个视图解析器配置到容器中

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           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
            https://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            https://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            https://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:component-scan base-package="com.lyy.controller"></context:component-scan>
    
        <!--  这个标签会自动给容器中配置 处理器映射器,处理器适配器  -->
        <mvc:annotation-driven/>
    
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
    </beans>
    

    这样,只需要再定义Controller来处理请求并返回对应的视图

    @Controller
    @RequestMapping("/hello")
    public class HelloController {
    
        @GetMapping("/sayHello")
        public String hello(){
            return "success";
        }
    }
    

    2.2.2 手动配置 处理器映射器,处理器适配器,视图解析器

    以上这三个组件,被mvc:annotation-driven标签自动配置了。当有需要时也可以不使用这个标签,自己在spring容器中手动配置

    (1)处理器映射器的顶层接口是 HandlerMapping, 处理Requestmapping注解这种映射关系的是RequestMappingHandlerMapping,所以可以在容器中配置这个

    ( 2) 处理器适配器的顶层接口是HandlerAdapter,处理Requestmapping注解这种映射关系的是

    RequestMappingHandlerAdapter

    所以可以在springmvc的配置文件中注释掉mvc:annotation-driven,配置这两个bean,也是可以的,这种通常用于需要对这两个组件进行定制化处理时使用

    <!--  手动配置处理器映射器  -->
        <bean id="requestMappingHandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
        <!--  手动配置处理器适配器  -->
        <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
    
  • 相关阅读:
    [Learn AF3]第二章 App Framework 3.0的组件View——AF3的驱动引擎
    [Learn AF3]第一章 如何使用App Framework 3.0 构造应用程序
    [译]Intel App Framework 3.0的变化
    手机浏览器中屏蔽img的系统右键菜单context menu
    HTML5 touche vents drag to move & AF actionsheet by longTap
    HTML5 FileReader
    【转】Gulp入门基础教程
    【Intel AF 2.1 学习笔记三】
    【Intel AF 2.1 学习笔记二】AF中的页面——Panel
    【Intel AF 2.1 学习笔记一】AF程序结构
  • 原文地址:https://www.cnblogs.com/chengxuxiaoyuan/p/15751053.html
Copyright © 2011-2022 走看看