广州尚学堂7月11号部分笔记

1. SpringMVC概述

1.1. 什么是Spring MVC

SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC框架.

MVC框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),而且使用简单,与Spring无缝集成。 支持 RESTful风格的 URL 请求 。

采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。


1.2. SpringMVC的作用

MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离.

2. SpringMVC底层实现

在没有使用SpringMVC之前我们都是使用的Servlet在做Web开发。但是使用Servlet开发在接受请求数据参数,数据共享,页面跳转等操作相对比较复杂。


SpringMVC底层就是的Servlet,SpringMVC就是对Servlet进行更深层次的封装


2.1. 回顾MVC模式

回顾什么是mvc模式

  模型model(javabean),  视图view(jsp/img)  控制器Controller(Actionrvlet)  C存在的目的.就是为了保证M和V的一致性

  当M发生改变时,C可以把M中的新内容更新到V中.

 

2.1.1. 原始MVC 模式

MVC模式最早开始是在CS 架构上面 20世纪70+年代

下面为原始的mvc模式.

目前web应用中,99%的项目都会使用mvc模式开发.

2.1.2. WEB开发的MVC

WEB开发从20世纪90+年代开始,也是使用MVC模式。在最原始的MVC上有一些改进

优秀的框架改变了这种模式,将model更广泛的使用,这样会比原始的mvc好多了.

像现在一些优秀的mvc的框架,如Struts2,springMVC

在客户端提交也使用了模型来请求参数

spring MVC 也实现的相关的功能


1. SpringMVC的全注解开发


1.1. Spring中IOC 注解


上面是注解

下面是说明

@Component

通用组件注解(一般配置其他非三层相关的类)


@Controller

表现层(控制层)


@Service

业务逻辑层(服务Service)


@Resposotory

数据持久层(DAO)


1. SpringMVC执行流程和原理

SpringMVC流程:

01、用户发送出请求到前端控制器DispatcherServlet。

02、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。

03、HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。

04、DispatcherServlet调用HandlerAdapter(处理器适配器)。

05、HandlerAdapter经过适配调用具体的处理器(Handler/Controller)。

06、Controller执行完成返回ModelAndView对象。

07、HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。

08、DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)。

09、ViewReslover解析后返回具体View(视图)。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户。


两种限制

SpringMVC支持对请求的限制.如果不满足限制的条件,就不让访问执行方法.

这样做,大大提高了执行方法的安全性.

主要的限制有两种:(method)方法限制,参数限制

1.2.1. 方法限制

就是设置请求的method类型.如果发送过来的请求与方法设置的method不一样,就不能访问执行方法.

请求method : GET , POST

  <form action="${pageContext.request.contextPath }/login.do" method="get">

    <input type="submit" value="登录">

  </form>

/**

* 接收的请求,必须是POST

* @return

*/

@RequestMapping(value="login",method=RequestMethod.POST)

public String login(){

System.out.println("-登录-");

return "/login.jsp";

}

前台发送的是GET请求,而方法限制是POST请求,所以请求无法执行方法

方法限制可以配置多个参数

@RequestMapping(value="login",method={RequestMethod.GET,RequestMethod.POST})

public String login(){

System.out.println("-登录-");

return "/login.jsp";

}

1.2.2. 参数限制

1.就是请求里面必须包括哪些参数,或不包括哪些哪些.

2.参数包括哪些值,不包括哪些值

限制参数格式:

1.参数必须包括:params={"username","password"}

2.参数不能包括:params={"!userid"}

3参数值必须是指定的值:params={"username=zhangsan"})

4.参数值必须不是指定的值:params={"userid!=123"})

请求:没有后台方法指定的参数

<h4>登录页面</h4>

<form action="${pageContext.request.contextPath}/request/method1.do" method="post">

账号:<input name="username"><br>

密码:<input type="password" name="pwd"><br>

<button type="submit">登录</button>

</form>

后台代码

/**

* 需求:登录时必须包括用户名,密码

* @return

*/

@RequestMapping(value="login2",params={"username","password"})

public String login2(){

System.out.println("-登录-");

return "/login.jsp";

}

如果前台请求没有指定后台要求的参数,会报错.

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

推荐阅读更多精彩内容