00:00
好了,那我们说访问首页这个功能呢,我们做任何一个功能以后,我们我基本上就分为这几步来做,以后所有的功能我都分这几步,第一步要做一个功能,你首先得知道这个功能是干什么的,到底要做成什么样子,你得先知道,那这个功能我们就首先来分析需求。啊,需求分怎么分析需求,需求文,读需求文档,看项目原型,这样的话你就知道要做成什么样子了,所以以后大家大家怎么到公司里边做项目,也是先分析需求,不管领导给你分配什么任务,你首先必须明确做成什么样子,如果你要不知道看文档,文档看不懂,问问领导知道吗?问别人,总之你不能稀里糊涂的做下去。你必须非常明确要做成什么样子,所以我们第一步先分析需求,分析需求到底要做成什么样子。这个功能签到哪些页面,这个页面上面有什么内容,这些内容从哪来到哪去,这个功能做完了跳转到哪个页面,然后呢,成功了干什么,失败了干什么,你必须首先非常清楚。
01:12
知道吗?这是我们说这那假如说你分析清楚了,下边就开始做,做的话,不能不是说上来对吧,马上就写代码了,因为这个功能有可能比较复杂,你上来写代码,你有可能不知道怎么写,那下边怎么下边分析与设计设计你也得分,写代码之前先分析出来是吧?先分析出来看看我做这个功能。这个流程到底什么样子?需要创建哪些类?这些类有哪些属性和方法,方法有哪些参数和方值,以及类和类之间的互相调用关系,你必须很清楚。这样你才能写代码,如果你要说这些不知道,你写代码写着写着你写不下去了,特别复杂业务的,我们这个东西跟盖楼是一样的,盖楼的话,你以前做那些简单功能,你就盖一个,盖一两间小平房,诶我随便盖就行了,但你要盖一个楼的话,你必须先设计,如果不设计,你盖着盖着你就盖不下去了啊,写代码一样。
02:12
如果你做的功能比较复杂的话,你要不设计的话,这个代码你写着写着你就写不下去了,不停的往前返工,知道吧,当然我们说设计肯定得需要花费时间。那花费时间的话,相对你以后什么不停的返工,这个时间是值得的,知道吧,所以我们以后给他做就是,那假如说我们设计好了做这个功能,这个流程什么样子,牵扯哪些类,这些类都什么样子的,类和类的关系全设计好了,下边呢,编码实现,编码实现。好,这时我们说我们这一阶段最重要的是前面两个阶段。我们这阶段给大家讲课的重点就是前面两个,我我这一阶段我不是重点给大家写代码的,代码是最简单的啊,我们大家以后写程序,你做几个功能你就发现了,写代码对程序员来说没有比写代码最简单的事儿了,知最容易的事儿就写代码,知道吗?最难的事儿是前面,前面这是创造性的劳动,知道吗?这都是死的代码都是死语法都是死的,知道吗?所以下边就写代码,写代码写的时候怎么写,按照设计写,设计都已经设计好了,需要创建哪些类,这些类什么样子的,类和类之间关系都已经设计好,你剩下只需要编一下就行了。
03:27
而且这个过程我说很很短暂的,而且都是死的,知道吗?所以这不是我们的重点,我们的重点在这块。好,这是我们这那写完之后对不对呢,他就要测试测试我以后做任何一个功能,我首先给大家都是按照这四步来做,知道吧。好,测试成功了,那我们才做完,就这好这时候我们知道,那下边我们就做首页了,做首页的话,我们首先首先分析需求,看这个首页到底做成什么样子,那他这个需求就是这个首页这个功能太简单了,所以我们就简单给大家分析一下去了,他这个首页肯定就要当用户一访问我们的项目的项目的时候,那他访问的时候肯定就访问这个这个网页,然后呢,一访问这个网页跳转到项目的首页去。
04:15
那跳转到我们这个项目首页,哪个首页就能inex.JSP就跳转到它去知道吗?就是他一访问这个就跳转那个页面知道吗?那这就什么,由这个页面来看,这个页面就是按理说应该是个登录页面,从需求,从需求文档,从需求这个项目原型上看,应该是一个登录,应该登录页面应该是个登录页面,跳转到那个页面。知道吗?好,这是我们说的这样,这是他大这个需求说,当用户一输入这个网址,在浏览器上一输入网址,应该跳转到这个项目的登录页面去。那他们首页那个首页就是登录页面,从这个需求问,从这个项目原型上来看知吧,好,这时候我们说大概他这个需求就这样,那我就什么,我就准备这么做了,用户一输入他就跳转到首页去,大家看你问老师你这个需求你怎么知道这他需求文档上写的,就这需求文档在哪呢?你看这个才啊业务开发的这首页功能看吧,上面我们说了以后在公司里边需求文档比这个详细多了,它上面都有些截图等等这些。
05:19
咱们这个是简化版的需求文档,它上面写的是非常详细的,有法律含义的知道吧,法律意义的知道吧,那我们这个简单可以读一下,你看说他这个首页功能,说用户访问项目的首页,首先就是进入登录页面去,就他这个项目需求是他这个功能的需求,就这。好,大家需求,大家这个清楚之后呢,下边我们准备来分析设一下到底怎么做。那分析设计怎么设计,你可以找个纸找个笔,简单画一画这个流程图,画一画流程图,看到底是什么样的,从哪儿发清发请求,到哪儿接收请求,处理,处理完了之后成功了怎么,失败了怎么办,你可以就找个纸,找个找个笔简单画一画,那我这个给大家讲课的时候呢,我找个纸找个笔,大家可能也看看不到,那我怎么办呢?我就准备用一个软件,哪一个软件是他设计这个设计逻辑这个模型的时候用的这个软件,我只能用这个软件,它上面有个图叫流程图。
06:22
那这样的话画画的话,那可能大家看的比较这个清晰一些,所以我准备用这个软件给他画,这个软件我不要求大家是啊们你们要掌握它,但是我画出来图,你要能够根据我画的图能写出来代码,这就达到我的要求了,这个图我不要求你画,知道吧,我画出来了,你要能写出来代看着我的图能写出代码,这样就行了,当然我课堂上我画出来图,我自己写的码,课下你看着图你自己写的知道吧,好这是我们这好下边我就准备来设计一下这个知道吗?下边我准备来这个用这个流,用这个软件画这个流程图了,哪一个这个软件,这个软件我已经装好了啊,昨天装好了哪一个就这个软件啊,你们想装的话,你们也可以装,我已经给他拷到那个兔子的目录下果了。
07:10
它这个是这个收费的软件,但我们有破解可以破解,但是WIN10系统好像破解的时候稍微有一点点问题,不影响使用,会给你谈一个报一个,报一个错误啊,报一个错误,它不影响使用,你点确定就行了,不用管它,因为这是收费的版本,这收费的软件咱们不花钱,那没办法是吧,你要花钱再给报错的话,那咱们就不打印了,咱们没花钱嘛,那要报就报了是吧,好,下边来伙就来打开这个软件,你看打开打开这个啊,这个这个软件平台rational Rose这个软件平台打开了。我以后所有流程图都画了,看大家看吧,就这个地方破解的时候还会报这个错啊,点确定不用管了,然后呢,这个地方点取消,点取消,然后呢,大家看这个,这我在上面画流程图,它上面不但能画流程图,还画力图,用力图等等这些就设计那些类了,我这个地方这些类我就不设计了,我就主要给大家,我要让大家这种流程更清晰,我就画一个叫识序图,叫流程图,好这个地方给大家画一个,然后呢,我在这里边,我每一个功能画一个流程图,怎么画,在这个目录下,它叫包,这它也有包的概念,让他右键没一个流程图知道吧。
08:24
你又有流程图叫sequence,知道吧,大家知道一点,它大家看这个地方,我就创建这个图了,这个图你可以起个名字,我这个地方就叫首页,就叫首页,然后呢,我来设计这个流程图,把它双击打开,就在工作工作区中打开这个画画板了,在上面可以画图,点这个最大化,这样行了啊,左边是一些工具栏,在上面你用到哪些环节,你可以拖过来,知道吧。这个地方再往这个地方,当然这个图我画好,画好之后CTRLS来保存一下它,它将来会保存MDL这么一个文件。
09:01
让将来用这种软件可以打开啊,当然你不用那个,你不用这个,呃,你电脑你可以装这个软件,上面有破解方法啊,你装了之后你都能打开我这些文件了,你要你要不装的话,到到时候我给你保存图片,你也能看到知道吧,好这是我们这样,然后呢,这个地方的我准备把这个,我准备把这个把它设计这个图纸这个什么这个这个文件我保存咱们今天这个笔记里边。保存到咱们今天的笔记里边,这个地方就保存这里边,这个地方我就叫CRM流程图,流程图啊流程图好,然后呢,这个地方来点保存就行了,这样的话我就在这里边,以后我所有的流程都划到这个这个文件里边了,那下边我准备画这个首页的这个流程了。这个首页流程是这样,大家看这样,我这样开始画,那这个流程的话要画流程,它肯定流程在运行过程中肯定是一系列的环节,哎呀一系列环节,那一系列环节它用这个图形表示,环节用这个跟个电视一样啊,这个环节就表示在整个流程运行过程当中,各个节点叫各个节点,什么各个节点,你比方这个流程,用户从客户端浏览器发请求,那这个客户端浏览器就是一个环节,那发请求到后来要有什么,要有ctl类去接收,这个C类也是一个环节,这个CTRL类在什么接收到警之后需要处理,它调service层的方法,Service层类又是一个环节,Service叫map map又是一个环节。
10:35
知道吧,就是说在整个从请求发起到后来做出响应各个环节就用它来表示,知道吗?所以我下边来画这个环节了,第一个环节我就把它拖过来,拖过来放到这儿就行了,双击它可以在上面,可以在上面写文字,这个环节的名字叫什么?那我们现在要做首页了,这个首页整个流程的环节,第一个环节是谁?
11:01
第一个环节是谁啊,对输入地址在哪输入地址,对地址栏,地址栏是谁的,是不是浏览器的浏览器,我们就告诉叫客户端,客户端所有的流程,我们做外部开发,所有流程都是从客户端发起的。所有这种第一个环节永远是客户端,永远是客户端,但我们前面跟大家说了,我们做外部开发这些运行机制,外部程序的运行机制都是请求驱动的,从前台发请求,整个流程才能发起,如果前台不能不发请求,你写的外部程序,你写的再好,你用的技术再先进,它不会自动执行。它不会自动发起一个流程,你写的程序你写的再好,部署到掏不开的服务器上,他永远么在掏不开的服务器上一直待着,他不会说哪天什么自己睡醒了,然后呢,自己执行一下子,你写的同学他自己会执行的,他不可能自己执行的,你用的技术再先进,他不会自己执行。
12:04
你不知他们开始他一直在那静静的躺在那儿,他永远不会自己执行,那什么时候会执行?对,客户端发请图了,然后呢,你的程序才能执行,所以所有的流程都是从客户端发起的。所以大家包括以后我们做所有的开发,你要画流程,第一个环节永远是客户端,这个客户端在我们看来就是浏览器,从技术角度来讲就是JSP网页,就是JP网页,在JSP上面,在网页上面发生的这些事知道吧,所以那我们这个地方来看,第一个环节就是客户端,那在客户端上面,它如何发起整个访整个首页的流程呢?如何发起?那就那就是在客户端上面,用户是不是输入那个URL地址啊,在地址上输入URL地址,一敲回车,是不是这个流程就发起了,就发起了,就这样发起的,明白吗?然后呢,所以说大家我现在在客户端上想发生一件事儿,用这个用这个箭头看到这个弯线,这个箭头,然后呢,一点它完了之后点了点你点了这个竖线上面表示在这个客户端这个环节发生了事件,发生什么事件,双击它在这儿可以输入一些什么文字,发生什么事情,根据需求说了,用户一访问我们的系统,他怎么访问,那就在浏览器地址栏输入那个什么项目的那个URL,然后一敲回车,就发起这个流程了,所以我们这个呢,第一个环节上面发生这个用户输入用户在浏览器吧,浏览器输入访问首页那个URL,这个URL是什么,我我这个地方我就写到。
13:54
就这个地方写个注释刀口表示注释HTTP,然后呢127.0.0.1,然后呢80801访问我们这个项目,然后呢一输入这个UR,然后呢一敲回车是吧?嗯,然后敲嗯按回车键嘛,按回车键啊一敲回车键,这个时候大家看整个流程就发起了啊整个流程发起了,那发起干什么大纲。
14:27
那大家跟着一块想啊,他一输入这个地址,一敲回车,大家看发生了什么事,一敲回收发生什么事,对,是不是他要跳转到首页去了,跳转到首页,跳转哪个页面,就跳转这个页面,这个页面在外部符下边,从浏览器能直接访问吗?不能,不能,那什么,那他就想看到首页咋办?对,访问controller是不是这样的,向controller发个请求,有ctrler去访问那个页面,然后他就看到了,大家能理解这意思吧,这样,所以大家看下边他一敲回车键,向后台要发一个请求了。
15:08
那加后台发请求,你是不是得在后台得提供一个CTRL接收请求了,接入请求,当然我们说以前都是用sorry,当然我们说实际开发不可能用sorry,因为sorry太麻烦了,所以我们都是用spring m Mac做CTRL控制层,所以这个地方就创建一个CTRL了,第二个环节把这个流程推到第二个环节了,第二环再投入来一个环节,在这个环节上面写我们这个环节的名字,这个环节名字那就是一个CTRL类了,这个CTRL类一会儿我们必须得创建一个CTRLL,这个CTRL名字叫什么无所谓,但是我们要建明之义。它既然是访问首页的,我这个名字我就随便起了,我就建名,这我就叫它了index,一般都叫首页,它这个ctrler后边带上CTRL类,将来我在这个CTRL这个类里边加一个方法来接收它这个什么访问首页的请求,并且处理这个请求就行了,所以大看他一输入这个地雷,然后呢一敲回车就向这个CTRL上发了一个请求。
16:10
发这个请求,我们把它叫做叫跳转的请求,为什么?因为他想跳转到首页去啊,所以我们把它叫跳转请求,跳转请求知道吧,这是我们说的这个地方,那跳转请求知道吗?跳转过来,那这个CTRL接受的请求之后怎么办呢?对,在这里边我们也写到我们担码了这个请求,我们说就那么推到这儿了,大家这个线是这个实践是表推进流程推到这个环节了。那这个现在这个流程来到这个环节,这个环节我们要写代码,写代码干什么。转发到后面。对,跳转到首页,其实大家我们以前给大家讲了CTRL层它的三个职责是么?它三个C层三个职责是什么?大家还记得吗?
17:01
对接收请求,然后呢,对有参数获取参数需要通摸做封装,这是第一个知道是不是样呢?对,这是道第二个请第二个知道了,对调用业务层调serve等号是不知道呢,对,然后呢,这是这调用业务,调用业务层完了之后呢,第三个第三个职责呢。对返回根据处理业务层处理结果是不是返回详细信息啊,对这些职责这都是他的职责,下边我们就写这个代码了,在这个你看在这个环节上面干什么事,第一个它跳转过来是不是请求他就接收到了,对如果你UR定义好了,他就接收到,接收到之后有参数吗。对,前台有参数吗,你看。对,前台一输入ul没有参数,没有参数他还用接收吗?对,不用,不用接收,更不用封装了,是不是啊,他只需要接收请求,接收到请求,第一个职责就完成了,第二个知道处理业务,处理业务要调service。这个地方需要调三字吗?对,不需要,因为没有数据要处理,是不是样子,不用调三字,这是第二个职责,也没了第三个职责呢,对返回什么响应信息,是不是这样吧,返回响信息,它要返回什么响应信息。
18:15
对,他要返回什么消息信息就跳转页面是吧,为什么跳转页面。因为前台一访问这个什么URL是吧,对需求说他就想看到首页,是不是这样吗?那他就返回一个首页就行了,所以这个地方什么处处理业务不用处理就需要,只需要把首页返回一个客户端就行,为什么返回首页?就是因为客户端想要首页,他想看到首页,所以你要给他返回一个首页,返回哪一个首页就返回这个首页,就返回这个首页啊,那返回这个首页,返回一个网页,他能返回网页吗?它直接返回不能返回是吧,其实他严格来讲就是它直接返回也能返回,但是你得通过流往外打,是不是比较麻烦,比较麻烦,那我要想让他返回网页比较简单的做法应该怎么办?
19:05
是不是直接跳转就行了,对,跳转到首页就行,跳转到首页,那这个什么首页又是一个环节,跳转首页,这个首页就是谁,就是index那个页面。我们说美工做的是静态网页,我们就把它改正吗?对动态的JSP从这个地方直接跳转到JSP就行了,那跳转怎么跳转,还是用这个,那么。用这个实线让他推进这个流程,这个是表示跳转到首页,叫跳转到首页去,那跳转到首页首页干什么呢?现在这个流程推到这个JSP了,这个JSP干什么呢?对就要显示了是吧?那JSP咋显示啊。那那就运行吧,GSP咋运行呢?JSP先在什么?先在JS先在Tom是不是运行么?对Tom的运行原理,这个JSP运行原理什么?先在tomt上运行,在Tom上咋运行呢?
20:09
对先创建一个sorry,是不是执行那个骚对一执行运行的结果这个什么对结果是一个什么HTM网页网页,然后把这个网页是不是就可以什么对显示到客户端了,其实这个网页就是一个什么响应信息返回返回过去了,返回给谁对谁发的请求,返回谁谁发的请求,对客户端,客户端在我们这段就是浏览器。然后把这个什么运行的这个这个网页作为响应信息发回这个一双击这个线,然后呢,这个线就可以这上面写个文字了,知道吧,这地方双击,然后是多了一个这个逗号知这个响应信息,那这个响应信息这个地方可以给他用,这个是做备注的,知道吧,这个地方可以做一些笔记,那这个地方响应信息是个什么样的东西呢?就是个网页,把这个网页上面这个这个备注信息对谁做说明呢?就对响应信息做说。
21:10
这样的话,大纲我们说用户一输入地址栏这个URL,一回车,大纲向他发一个请求,他直接跳转这个页面,这个页面一运行返回网页,返回浏览器了,那浏览器拿到网页之后怎么办呢。用户看,对给用户看,晚上对浏览器最擅长的是就是显示网站的浏览器这种软件专门显示网页的,那它怎么显示,就在浏览器窗口上面来显示首页就行了,所以我们这个地方在又回到浏览器这个环节了,而且返回到这个这个线在上用虚线知用这个线啊。然后呢,浏览器拿到这个什么,拿到这个网页之后,浏览器在什么,在窗口上,在窗口上来显示,然后呢,CRM的首页,这样用户就看到首页了,整个这个功能,这个流程我们就设计好了。
22:03
当然这个流程是个最简单的流程了,是吧,就没有没有比这个流程更简单了。知道吗?咱们整个CR项他连service层连层都不用掉,它都不牵扯到数据处理。他也没有参数,只需要发请求,把一个网页运行结果返回就行了,这时候我们说这个流程那么好,这个流程我们就设计好了,设计好之后,那下边我们就准备编码实现了,知道吧。
我来说两句