springMVC学习总结(一)快速入门

springMVC学习总结(一)快速入门

一、初步认识

  • springMVC执行流程
    • <img src="http://images2017.cnblogs.com/blog/1135258/201712/1135258-20171222174147459-726790122.png" width="100%">
      
  • 主要组件
    • DispatcherServlet(中央控制器)
      • 配置在web.xml中的前端控制器,客户端请求的入口,调用HandlerMapping获取处理器
    • HandlerMapping(处理器映射器)
      • 负责调用 HandlerAdapter获取处理器
    • HandlerAdapter(处理器适配器)
      • 调用处理器
    • Controller(处理器)
      • *执行代码逻辑,结束之后返回到 DispatcherServlet 然后由由DispatcherServlet调用调用ViewResolver
    • ViewResolver(视图解析器)
      • 配置在springmvc.xml中的视图解析器,返回视图

二、开始使用

  • 准备工作

    • 导包
      • 普通web项目

      • maven项目
        要导入的依赖包括:springmvc相关、jsp相关

          <properties>
          	<spring.version>4.1.3.RELEASE</spring.version>
          </properties>
          <!-- springmvc相关 -->
          <dependencies>
          	<!-- Spring -->
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
              </dependency>
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
              </dependency>
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>${spring.version}</version>
              </dependency>
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.version}</version>
              </dependency>
          	<!-- jsp相关 -->
          	<dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
              </dependency>
              <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet-api.version}</version>
                <scope>provided</scope>
              </dependency>
              <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp-api.version}</version>
                <scope>provided</scope>
              </dependency>
          </dependencies>
        
    • xml文件的配置
      • 前端控制器(web.xml

          <servlet>
              <servlet-name>springmvc</servlet-name>
              <servlet-class>org.springframework.web.servlet.DispatcherServlet
          	</servlet-class>
          	    <init-param>
          	      <param-name>contextConfigLocation</param-name>
          	      <param-value>classpath:springmvc-servlet.xml</param-value>
          	    </init-param>
              <load-on-startup>1</load-on-startup> <!--表示servlet随服务启动-->
          </servlet>
          <servlet-mapping>
          	<servlet-name>springmvc</servlet-name>
          <url-pattern>*.action</url-pattern>
          </servlet-mapping>
        
        • load-on-startup:表示servlet随服务启动;
        • *.action这里是客户端访问请求的入口
        • contextConfigLocation:加载springmvc配置文件
      • 核心配置文件(springmvc.xml
        下面以注解开发为例进行示例:

        • 开启注解扫描

            <!--开启组件扫描,扫描位置根据实际项目进行配置-->
            <context:component-scan base-package="com.springMVC.controller" />
          
        • 配置注解映射器

            <!-- 注解适配器 -->
            <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
          
        • 配置注解适配器

             <!-- 注解适配器 -->
            	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
          
        • 配置视图解析器

            <!-- ViewResolver -->
            <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
            	<property name="prefix" value="/WEB-INF/jsp/"/>
            	<property name="suffix" value=".jsp"/>
            </bean>
          
          • 该视图解析器最终返回的视图地址是 “WEB-INF/jsp/hello.jsp”
          • viewClass:该视图解析器需要jstl的相关jar包 来解析jsp页面的jstl标签
  • 代码编写(即Controller

    • 后台代码表现层写法:

      @Controller
      public class Demo01Controller {

        @RequestMapping(value = "/test.action")
        public String test(){
            System.out.println("访问成功!!!!");
            return "hello";
        }
      
    • 视图层代码:

        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
        <%@page isELIgnored="false"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Hello World</title>
        </head>
        <body>
        controller 传递过来的值:${message}
        </body>
        </html>
      

      ${message}:表示显示由HelloWorldController处理器传过来的模型数据。
      页面的访问:http://localhost:8080/hello.action 访问路径服务器设置不同有所区别

原文地址:https://www.cnblogs.com/xujie09/p/8087083.html