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得到请求体中所有的参数。

  • 相关阅读:
    【2017 Multi-University Training Contest
    【2017 Multi-University Training Contest
    【Uva 1543】Telescope
    Information centric network (icn) node based on switch and network process using the node
    JQuery实现放大镜
    JQuery实现放大镜
    JS关闭浏览器 (不弹出提示框)
    JS关闭浏览器 (不弹出提示框)
    JS关闭浏览器 (不弹出提示框)
    MVC5 Controller构造方法获取User为空解决方法
  • 原文地址:https://www.cnblogs.com/beanjk/p/11281529.html
Copyright © 2011-2022 走看看