TZ_06_SpringMVC的注入门程序

 SpringMVC的入门程序
1. 创建WEB工程,引入开发的jar包 1. 具体的坐标如下

 
2. 配置核心的控制器(配置DispatcherServlet) 1. 在web.xml配置文件中核心控制器DispatcherServlet
 

<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.hdh</groupId>
    <artifactId>SpringMVC_day01_start</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.2.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <finalName>springmvc_day01_01_start</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project> 

   
3. 编写springmvc.xml的配置文件
 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans           
         http://www.springframework.org/schema/beans/spring-beans.xsd         
         http://www.springframework.org/schema/mvc 
          http://www.springframework.org/schema/mvc/spring-mvc.xsd        
         http://www.springframework.org/schema/context                   
         http://www.springframework.org/schema/context/spring-context.xsd">

    <!--开启注解扫描 -->
    <context:component-scan base-package="com.hdh" />

    <!--配置试图解析器 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/page/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    <!--开启SpringMVC框架对注解的支持  -->
    <mvc:annotation-driven></mvc:annotation-driven>
</beans>

 


4. 编写index.jsp和HelloController控制器类

   1>index.jsp
    <a href="user/sayHello">入门程序</a>

    2> HelloController

@Controller
//设置请求的一级目录/user/sayHello
@RequestMapping(value="/user")
public class HelloController {
    //建立请求URL和处理请求方法之间的对应关系
    @RequestMapping(path="/sayHello")
    public String sayHello() {
        System.out.println("Hello SpringMVC");
        return "success";
    }
}


 
    3> 在WEB-INF目录下创建pages文件夹,编写success.jsp的成功页面

    <h1>入门成功</h1> 
 
5. 启动Tomcat服务器,进行测试
 

 6. 入门案例的执行过程分析
    1>. 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象, 就会加载springmvc.xml配置文件

       2. 开启了注解扫描,那么HelloController对象就会被创建

       3. 从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解 找到执行的具体方法

       4. 根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定名称的JSP文件

    5. Tomcat服务器渲染页面,做出响应 2. SpringMVC官方提供图形

7. 入门案例中的组件分析

       1. 前端控制器(DispatcherServlet) 用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由 它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。

       2. 处理器映射器(HandlerMapping)负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的 映射方式,例如:配置文件方式,实现接口方式,注解方式等。

       3. 处理器(Handler)      它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由 Handler 对具体的用户请求进行处理。

         4. 处理器适配器(HandlAdapter)

      5. 视图解析器(View Resolver) 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名 即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

      6. 视图(View)最常用的就是jsp

8. RequestMapping注解
  1. RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系

  2. RequestMapping注解可以作用在方法和类上

      1> 作用在类上:第一级的访问目录

      2>作用在方法上:第二级的访问目录

  3. 细节:路径可以不编写 / 表示应用的根目录开始

  4. 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /

  5. RequestMapping的属性

      1> path 指定请求路径的url

      2> value       value属性和path属性是一样的

      3> mthod     指定该方法的请求方式 ,必须请求提交的的方式与method相同

      4>params   指定限制请求参数的条件(例如:user=张三   必须完全一致)

      5>headers  发送的请求中必须包含的请求头

猜你喜欢

转载自www.cnblogs.com/asndxj/p/11361952.html