05 SpringMVC:day01\SpringMVC概述及入门案例

05 SpringMVC

01.SpringMVC概述及入门案例

@RequestMapping 来处理多个 URI

01.SpringMVC概述及入门案例

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构
包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用,所以我们课程中的案例也都是基于三层架构设的。

05 SpringMVC:day01\SpringMVC概述及入门案例_第1张图片
表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)

1.1.2 MVC 模型

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,
是一种用于设计创建 Web 应用程序表现层的模式。 MVC 中每个部分各司其职:

Model(模型) :
通常指的就是我们的数据模型。作用一般情况下用于封装数据。

View(视图) :
通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。
通常视图是依据模型数据创建的。

Controller(控制器) :
是应用程序中处理用户交互的部分。 作用一般就是处理程序逻辑的。
 

02.SpringMVC框架的介绍

SpringMVC 的优势
1、清晰的角色划分:
前端控制器(DispatcherServlet)
请求到处理器映射(HandlerMapping)
处理器适配器(HandlerAdapter)
视图解析器(ViewResolver)
处理器或页面控制器(Controller)
验证器( Validator)
命令对象(Command 请求参数绑定到的对象就叫命令对象)
表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。
3、由于命令对象就是一个 POJO,无需继承框架特定 API,可以使用命令对象直接作为业务对象。
4、和 Spring 其他框架无缝集成,是其它 Web 框架所不具备的。
5、可适配,通过 HandlerAdapter 可以支持任意的类作为处理器。
6、可定制性, HandlerMapping、 ViewResolver 等能够非常简单的定制。
7、功能强大的数据验证、格式化、绑定机制。
8、利用 Spring 提供的 Mock 对象能够非常简单的进行 Web 层单元测试。
9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10、强大的 JSP 标签库,使 JSP 编写更容易。
………………还有比如RESTful风格的支持
Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter 

03.入门程序之需求分析 

第2章 SpringMVC 的入门

05 SpringMVC:day01\SpringMVC概述及入门案例_第2张图片

 

04.入门程序之搭建开发环境 (IntelliJ IDEA 2018.3.6 x64)

代码:

springmvc_day01_01_start

05 SpringMVC:day01\SpringMVC概述及入门案例_第3张图片


05 SpringMVC:day01\SpringMVC概述及入门案例_第4张图片

 手动补全Maven项目的文件夹目录

  

java
resources

Mark Directory as

05 SpringMVC:day01\SpringMVC概述及入门案例_第5张图片

 springMVC要添加的依赖坐标如下

  
    
    UTF-8
    1.8
    1.8
    5.0.15.RELEASE
  
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      javax.servlet
      servlet-api
      2.5
      provided
    
    
      javax.servlet.jsp
      jsp-api
      2.2
      provided
    
    

 在web.xml配置前端控制器

在web.xml配置文件中核心控制器DispatcherServlet
 

  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:springmvc.xml
    
    
    1
  
  
    dispatcherServlet
    /
  

 创建springmvc.xml的配置文件

 05.入门程序之入门代码编写

  index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    

入门程序

入门程序

 

 需要启用注解IOC的支持,所以copy依赖头到springmvc.xml

  springmvc.xml




    

  配置spring创建容器时要扫描的包


    
    

 

  创建并编写控制器的类在java目录

  cn.bjut.controller.HelloController

  

// 控制器类
@Controller

public class HelloController {

    @RequestMapping(path="/hello")
    public String sayHello(){
        System.out.println("Hello StringMVC");
        return "success";
    }
    

}

 2-8Tomcat\第3节 tomcat_部署项目 \09_tomcat_与IDEA集成&创建web项目

 在WEB-INF目录下创建pages目录,在里头创建success.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>


    Title



    

入门成功

  返回springmvc.xml配置视图解析器

    
    
        
        
    
    
    

在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。
使 用 自 动 加 载 RequestMappingHandlerMapping ( 处 理 映 射 器 ) 和
RequestMappingHandlerAdapter ( 处 理 适 配 器 )。

启动Tomcat服务器后,测试结果正常显示,可以完成跳转页面的项目需求。

 

 06.入门案例的流程总结

入门案例
入门案例的执行流程
1. 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,
就会加载springmvc.xml配置文件
2. 开启了spring注解扫描,那么HelloController对象就会被创建
3. 从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解
找到执行的具体方法
4. 根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定名称的JSP文件
5. Tomcat服务器渲染页面,做出响应

 

 

 07.入门案例中使用的组件介绍 

  

入门案例中的组件分析
1. 前端控制器(DispatcherServlet)
2. 处理器映射器(HandlerMapping)
3. 处理器(Handler)
4. 处理器适配器(HandlAdapter)
5. 视图解析器(View Resolver)
6. 视图(View)

 

 08.RequestMapping注解的作用/09.RequestMapping注解的属性

  

RequestMapping注解
1. RequestMapping注解的作用是:建立请求URL和处理方法之间的对应关系。
2. RequestMapping注解可以作用在方法和类上
      1. 作用在类上:第一级的访问目录
      2. 作用在方法上:第二级的访问目录
      
      3. 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /
3. RequestMapping的属性
      1. path  指定请求路径的url
      2. value value属性和path属性是一样的
      3. method 指定该方法的请求方式
      4. params 指定限制请求参数的条件
      5. headers 发送的请求中必须包含的请求头
// 控制器类
@Controller
@RequestMapping(path="/user")
public class HelloController {

    /**
     * 入门案例
     * @return
     */
    @RequestMapping(path="/hello")
    public String sayHello(){
        System.out.println("Hello StringMVC");
        return "success";
    }

    /**
     * RequestMapping注解
     * @return
     */
    @RequestMapping(value="/testRequestMapping",params = {"username=heihei"},headers = {"Accept"})
    public String testRequestMapping(){
        System.out.println("测试RequestMapping注解...");
        return "success";
    }

}

   index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    

入门程序

<%-- 入门程序 --%> RequestMapping注解

   枚举类型的.POST

@RequestMapping(value="/testRequestMapping",method = {RequestMethod.POST})

 

 

 

================

end

你可能感兴趣的:(计算机的编程,springMVC)