博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc笔记
阅读量:4701 次
发布时间:2019-06-09

本文共 2457 字,大约阅读时间需要 8 分钟。

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

 

转载于:https://www.cnblogs.com/beanjk/p/11281529.html

你可能感兴趣的文章
YTU 2987: 调整表中元素顺序(线性表)
查看>>
JSP中文乱码
查看>>
Apache
查看>>
XE8 (RTM) Android SDK 更新安装
查看>>
ROS之rviz显示历史运动轨迹、路径的各种方法(visualization_msgs/Marker、nav_msgs/Path)...
查看>>
SCP-bzoj-1079
查看>>
Python 实践项目 游戏
查看>>
AJAX--Jquery
查看>>
模拟新浪微博随便看看
查看>>
环境搭建
查看>>
解密EXL
查看>>
简易版cnlog
查看>>
erlang程序运行的几种方式
查看>>
堆heap和栈Stack(百科)
查看>>
html5页面实现点击复制功能
查看>>
mac os设置root密码
查看>>
MSSQL—行转列
查看>>
Int类型空判断
查看>>
关于闭包的作用,以及优缺点
查看>>
【CF809E】Surprise me! 树形DP 虚树 数学
查看>>