zoukankan      html  css  js  c++  java
  • springmvc笔记

    第1章 SpringMVC 的基本概念

    1.1 三层架构

    表现层:

    也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求web 层,web 需要接收 http 请求,完成 http 响应。

    表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。

    表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。

    表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)

    业务层:

    也就是我们常说的 service 层。它负责业务逻辑处理,业务层在业务处理时可能会依赖持久层。

    持久层:

    也就是我们是常说的 dao 层。持久层就是和数据库交互,对数据库表进行曾删改查的。

    1.2 SpringMVC 概述

    1.2.1 SpringMVC框架概述

    SpringMVC框架是三层开发模式中web层的框架,其中包含了MVC设计模式中的View和Controller两个模块。View其实就是页面,实现技术现在比较热门的有Jsp,Ios,安卓,php,h5。Controller就是一个控制器,负责分发View层发送的指令。

    1.2.2 SpringMVC和Struts2框架优劣势分析

    共同点:

    (1)它们都是表现层框架,都是基于 MVC 模型编写的。

    (2)它们的底层都离不开原始 ServletAPI。

    (3)它们处理请求的机制都是一个核心控制器

    区别:

    (1)Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter

    (2)SpringMVC是方法级别的,表示一个方法就是一个独立的控制器,不能有私有属性,用单例就行了。而Struts2是类级别的,一个类才是一个控制器,类中可以有私有属性,该对象必须是多例的。

    (3)Struts2里面解析页面参数等用的OGNL表达式,开发简单,效率会稍差一点。当然Struts2也可以选择JSTL。SpringMVC用的JSTL,开发稍微复杂,但是效率高。

    第2章 SpringMVC 的入门

    2.1案例的执行过程

    2.2 springMVC中的组件

    2.2.1 前端控制器

    其实就是刚才在web.xml中配置的核心servlet。

    2.2.2 Springmvc三大组件

    处理器映射器

    处理器适配器

    视图解析器

    其中处理器映射器和处理器适配器只用配置一个开启springmvc注解支持即可。

    使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping(处理映射器) 和RequestMappingHandlerAdapter( 处理适配器)

    视图解析器就是下面的配置

    处理器

    其实就是我们controller中的方法

    视图

    其实就是页面,可以是jsp,安卓,ios,php,h5等技术

    2.3 RequestMapping 注解

    (1)作用:用于建立请求 URL 和处理请求方法之间的对应关系

    (2)出现位置:

    【1】类上:请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。它出现的目的是为了使我们的 URL 可以按照模块化管理:知道是哪个类的那个方法。

    【2】方法上:请求 URL 的第二级访问目录。

    value:用于指定请求的 URL。它和 path 属性的作用是一样的。

    method:用于指定请求的方式。

    params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和

    配置的一模一样。

    例如:

    params = {"accountName"},表示请求参数必须有 accountName

    params = {"moeny!100"},表示请求参数中 money 不能是 100。

    headers:用于指定限制请求消息头的条件。

    注意:

    以上四个属性只要出现 2 个或以上时,他们的关系是与的关系

    2.4处理器如何接收参数(参数绑定)

    2.4.1 接收简单类型和String类型的参数

    注意:传值的name必须和处理器中的参数名保持一致

    <a href="${pageContext.request.contextPath }/test">初始化案例HelloMvC</a>

    路径:http://localhost:8080/test?age=35&name=dfs

    页面

    后台

    2.4.2接收对象类型的参数

    编写一个User对象

    页面

    后台

    2.5请求参数乱码问题

    post 请求方式:

    在 web.xml 中配置一个过滤器

    tomacat 对 GET 和 POST 请求处理方式是不同的,GET 请求的编码问题,要改 tomcat 的 server.xml

    配置文件

    第三章 常用注解

    (1)RequestParam的使用

    作用:把请求中指定名称的参数给控制器中的形参赋值。

    属性:

    value:请求参数中的名称。

    required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。

    页面

    后台

    说明:如果配置了@RequestParam,默认情况下必须给该属性赋值,否则报错。当然可以指定required=false时,不赋值也不错。

    (2)RequestBody的使用

    作用:

    用于获取请求体内容。直接使用得到是 key=value&key=value...结构的数据。

    get 请求方式不适用。

    属性:

    required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值

    为 false,get 请求得到是 null。

    页面

    后台

    说明:get方式不能使用此注解,post得到请求体中所有的参数。

  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/beanjk/p/11281529.html
Copyright © 2011-2022 走看看