2019-06-09 Spring MVC的学习笔记(一)

三层架构与MVC模型

B/S交互:浏览器和服务器端,将服务器端分为三层架构

第一层:表现层(Spring MVC)

第二层:业务层(Spring)

第三层:持久层(Mybatis)

浏览器首先发出http请求,传输请求参数,最终由表现层响应结果

Spring MVC框架介绍:通过一套注解和一个简单的java类成为请求处理的控制器,无须实现任何接口,同时还支持其他风格的编程请求。

与Struts 2框架相对比的优势:

共同点:

都是表现层框架,都是基于MVC框架编写的

底层都依赖ServletAPI

他们的处理请求的机制都是一个核心控制器

区别:

Spring的入口的Servlet,strus2基于filter

Spring MVC基于方法,strus2基于类,Spring会较为简洁

Spring还支持JSR303 处理ajax请求更加方便

Strus2的OGNL的表达式让页面的开发效率更加高效


书写一个有前端控制器到视图解析器的处理程序,其中涉及到以下几个组件

前端控制器:DispatcherServlet,接口用户请求和响应

处理映射器 handlerMapping:根据用户请求通过HandlerMapping 让controller类中的方法去执行,返回一个执行链

处理器适配器(handlerAdapter):无论访问什么类,都会经过处理器适配器组件,适配任何Controlleer

视图解析器:从返回各种jsp页面,页面渲染,跳转各种页面。

注:在SpringMVC中加上《MVC:annotation-driven》自动加上了处理器映射器、处理器是适配器、视图解析器

第二讲:requestMapping的注解的作用

该注解加载类中的方法之前,也可以放在类上。处理请求路径和类中的方法,该注解建立了二者的关联关系。加上一个映射关联

注解放在类上,有一个类的路径,之后应该在xml文件中将注解的文件

2. RequestMapping注解的属性:

根据源码,找到value和path两个API,value是path的别名。二者作用相同

method方法:属性类型是一个对象,枚举类。设置请求方式;意味着可以添加多个属性。value=。。。;value=。。。’

params:用于指定限制请求参数条件 params={e.g.: "username"}字符串形式的数组。必须按照params的形式请求

headers:请求必须包含headers,用于指定限制请求头的条件

第三讲:请求参数的绑定

param.jsp页面,含有一个超链接,点击之后,后台的param可以执行。

method请求为post请求

直接在value位置编写对应的属性名,可以自动完成赋值操作。

解决中文乱码问题:

web.xml中配置filter与fliter-Mapping,初始化参数UTF-8设置命令如下:

<param-name>encoding</>   ;<param-value>UTF-8</>

自定义类型转换器:解决自定义转换器的异常

类型转换器注册,实现Convert接口< S , T >,实现其中的convert方法,将yyyy-mm-dd转换为字符串类型String

配置bean id的class为这个接口的路径,property-name =converters(转换),<set> bean class=实现接口的类的路径</set>

第四讲:常用的注解

RequestBody:get方法不适用,用于获取请求体内容,直接用到的是key value的数据结构

获得某个请求体的呢绒 在参数前面加上requestBody获取请求体,不是单纯的用户名,而是表单的所有属性组成的json字符串

pathVariable注解:用于绑定url的占位符。演示过程依然是先写Controller方法,testPathVariable,在requestMapping注解中写上方法名/{id}

HiddenHttpMethodFilter过滤器

requestHeader注解:在形式参数的括号里面加上注解requestHeader,可以获取请求头的值

CookieValue:原理同上,了解即可

ModelAttribute注解:放在方法上面会优先执行。作用:在提交一个表单的时候,没有新提交的值继续使用原来的值

Sessionattribute:多次请求

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容