00:00
好,这个上午的话呢,我们是把这个产品整个的研研发这个流程涉及到的这样的几个职能部门说了一下啊,呃,这里边儿需要大家去清楚,整个这五个职能部门里边,我们是处在开发这一档啊,就是承前启后这样的一个作用啊,然后开发这这个部门里边呢,又分成具体的,呃,简单来分的话呢,就有后台的,有前端的啊,分成这两端啊,然后的话呢,我们再看一下这个前端跟后端啊,在交互方面的一些技术啊。这呢,我们看这样的一个图。这个图的话呢,包括这个图应该是在我们学习这个外部的时候呢,见过这两个图是吧。啊,这两个图里边我们想说明的事情啊,首先呢,就是我们呢,呃,像以前基于这个,呃,像BS架构的啊,Browser跟server属于BS架构啊,CS架构呢,就是我们这client啊呃,不管是BS架构也好,还是CS架构也好,我们跟后台在交互的时候呢,呃,这个流程顺序实际上是一样的啊,不管是浏览器还是客户端,呃一般的情况下,第一步呢是发送请求。
01:07
呃,发送请求都是一样的啊,然后发送给我们后台的这个服务器,呃,服务器第二步要做的事情呢,就是来处理用户发送过来的请求。呃,发送过来的一个请求处理的话呢,必要的情况下需要去再操作后台的数据库,那就在操作数据库,呃,整个把这个操作数据库这块的过程,我们都称作叫哎,就是相当于处理用户的请求这个过程。嗯,然后处理完这个请求以后的话呢,需要给用户一个响应,那我们这里边儿呢,就第三步就是一个响应。比如说呢,你在浏览器或者客户端呢,我们点击某一个按钮,需要启动一个新的页面,新的页面里边这个数据来自于服务器,相当于你在开启这个页面的同时呢,嗯,你需要呢,从服务器在请求这个数据,访问它相应的ul地址,把这个数据呢给我们显应过来,然后显示在我们这个新的it这个界面上。啊,包括呢,我们说想做一个用户的登录或者注册啊,不管登录也好,注册也好,然后呢,你请求里边呢,需要携带用户的登录或者注册的信息啊,用户名密码等等,然后呢,发送给服务器,服务器呢,呃,如果是一个注册,他就把这个数据,数据呢先去后台这个。
02:14
呃,数据库里边去校验一下,是不是已经注册过相同的用户名或者是手机号了,那如果是的话呢,你小燕跟你说已经注册过了,那如果没有,他就该给你注册一下,注册完成以后呢,给你响应过来说注册成功。啊,那如果是登录的话呢,用户名密码去这个数据库校验一下,发现都没错啊,那就再响应一下说诶登录成功。啊,那相应的你到登录这个成功以后的一个界面上啊,呈现给用户就可以了啊整个这块呢,就想表达的就不管是客户端还是浏览器跟后台交互,实际上这个逻辑呢是一样的啊。啊,这里边还举了一个例子说,比如你就去饭馆吃饭啊,你呢,就是客户啊,就是这个客户端啊,那服务员,然后呢,你说我要点点什么样的菜,然后呢,点一个麻婆豆腐,然后这块呢,诶就传送给后台了,那服务员就相当于我们中间就像是个HTP协议啊。
03:06
然后呢,诶告诉这个后厨,后厨呢,就开始给你去一顿做是吧,呃,你也不用关注他怎么去做的,总之呢,就是做好以后给你,呃再呃,通过这个服务员,就好比是atb的一个响应一样啊,再给你端上来,哎,你这就能够得到这个响应数据啊,就这个麻婆豆腐这个盖饭。那就这样啊。啊,然后这里边儿呢,我们列举了一下关于传统的啊,我们通过这个BS架构,整个前台后台中涉及到的相关技术点啊,这个还有印象没有。前面应该都穿过是吧?呃,穿过这些点啊,这个呢已经说过了,就是在面试的时候呢,如果人家问到了啊,因为面试你的有可能他现在在做这个客户端的啊,以前呢,有可能是接触过后台的,比如问到了后台这个,呃,一些相关的技术熟不熟啊,或者说了解不了解啊,这个你要说了解哈,那这个其实咱们一个呢也讲过是吧,咱也讲过哈,再一个呢,就是通过这个项目呢,也希望大家能够啊后台的一些一些相关的基入点,你也能够切入一下啊,虽然没有直接去这样写,但是呢,这个逻辑应该是能够。
04:16
能明白的啊,比如说跟后台在这个联调的时候呢,比如出现一些问题了,这个你能够知道大概是他的问题还是你的问题。啊,问题大概出现在哪啊,就提高这个一个解决的效率啊好,我们这个呢,再稍微的再说一下啊,简单说一下。这呢,我们是以这个浏览器BS架构为例,嗯,浏览器端我们涉及到有三个技术点,Atml CSS跟javascript。啊,这个呢,我们对面那个班就是学前端的啊,像这块呢,就是属于重点要学的。嗯,整个我们浏览器的页面这个骨架呢,都是HTML。啊,这些钱包里边呢,就是一些标签了哈,然后呢,他呃使用这个CSS呃起到一定的美化作用,呃相应的一些图片呀,呃字体大小啊呃是不是要加粗啊,这样的一些格式的设置啊,我们都用的是CSS。
05:12
嗯,Javascript呢,就实现页面的一些行为啊,比如说你在表单提交前的一个验证啊,这些行为呢,都是用javascript来体现的。啊,就是好比是我们建一栋楼一样啊,H2呢,就是这栋楼的骨架。啊,都是HL这个标签,然后呢,呃,这个楼呢,需要去安窗户啊装饰啊,墙面粉刷呀,你可以理解为CSS的美化功能。嗯,而javascript呢,就比如说这个这都是静态的啦,然后呢,这个楼建好以后,它还有一些动态的一些行为。啊,就体现为是GS的一些操作啊。其实这个呢,三个技术点在我们安卓当中,其实呃,那也类似的就有体现啊体现了,只不过我们在这个安卓客户端的时候呢,呃,整个这个页面我们用的不是H天猫啊,替换成谁了。
06:02
哎,是不是插包啊,诶,我们用插包来设置的布局嘛,嗯,然后在这个布局上呢,我们不是也是可以写相应的一些比如字体啊,或者一些设置啊是吧?我们有一些常量colors啊,像strings啊是吧?啊这些资源啊,去来辅助你这个布局的一个设置啊,起到一定的美化作用啊,然后另外的话呢,我们他这里边提到是叫GS啊,那我们用的是什么来体现这个页面的一些行为啊。哎,对,就是不是有张语啊。啊,就是这样的一个关系啊好这呢是我们说的浏览器端,然后的话呢,我们呃,通过发送请求呢,访问服务器,那我们先来说说这个服务器,服务器呢,我们这里边儿提到是汤CAD服务器。啊,当然还有其他的这个服务器哈,他盖服务器,这个服务器的话呢,诶我们需要呢,部署在我们的。嗯,相当于我们这儿呢,是部署在这个lix里边了哈,在那个web服务器上,我们部署这样,他看服务器,然后在它上面呢去,呃,部署我们具体的这个web应用。
07:04
那外围应用里边呢,呃,比如我们这里边写的这个。嗯。哎,就这个啊,哎,这是我们一个外部应用,我们需要呢,把它部署在我们的他CAD服务器上。步入上以后的话呢,我们看到它这里边儿呢,有相关的一些组件啊,典型的就是sol啊,Sol跟filter这都是属于服务器的组件。嗯,只要是组件呢,就组就有一些共性。啊,这个呢,那就不在这多说了啊,比如需要注册呀,需要继承或实现相应的接口或者类啊。啊,然后呢,需要重写相关的生命周期方法呀,啊对象是自动创建的呀,这些都是属于组件的一些共性。那我们呢,通过浏览器呢,呃,发送这个请求就可以发送到我们,呃服务器上指定的这个某一个sol上,相在于你通过这个URL,呃,就指明了你要访问是哪个so。啊好,那指定访问这个策略的话呢,比如说就是一个登录的组,呃,一个请求啊,那我们就把登录的用户名和密码发送到这个这个so这块呢,就诶获取你发送过来的请求参数。
08:17
呃,用户名和密码,然后呢,诶我写一个SQL语句,这个SQL语句呢,就是select,比如说呃用户名密码,呃from具体某一个表,然后呢,呃,Where,呃用户名等于谁,密码等于谁,就是你发送过来的,我去呢,呃后台这个数据库里边去查询一下,看看能不能查到指定用户名和密码的这个人。啊,如果能查到,那说明你写的用户名密码是对的啊,如果查不到,那有可能用户名就不存在,或者是密码写错了,总之呢,我没查到这个人。啊,我就响应给用户。啊,中间这个比较重要的一个结果,就是我们说的啊,刚才通过我们去访问数据库,我们做一个查询操作,这里用的是JDBC技术。
09:04
啊,真正这个后台在起的时候呢,呃,通常情况下都是封装了JDBC的框架啊,比如说这个har rate。啊等等啊,这就后台他们要学的这些框架了啊。啊,然后呢,查询这个结果呢,给用户在响应,就是我们说的响应这个过程啊,那在响应的时候呢。嗯,有的时候我们说这个sol哈,他不太擅长的,它这是一个Java代码哈,不太擅长去生成这个界面效果。啊,因为我们说你响应回来以后,我们希望还是展现在浏览器端,那就意味着整个股价还是A天猫。啊,那你用so累的呈现出来的话,So累是扎va代码,你这前面他这个一个一个往里边写标签啊,这就很费劲了。所以这里边儿呢,又遇到了另外一个结构叫JSP。叫Java server配置啊JP呢,你从文件上来看,它是一个HTML。啊,就比如说我们这里边儿有一个。
10:00
啊,Index点减啊,一看这个格式就像是一个。是不是整个al这样的一个股价啊,啊al啊head呀,嗯,Me me呀,Title啊body啊,这一看就是像al的这个股啊,嗯,但是呢,他有一颗so累的心。是吧,就是你看到的它是一个GSP,但实际上呢,呃,在你返回的时候,服务器帮你编译完以后,GSP其实就后台帮我们生成一个对应的S。啊,那我们在JSP里边能做的事情呢,就是里边呢可以集成Java代码啊,我这里边儿没有写了哈,以前我们讲安卓基础时里边写过。啊呃,可以集成Java代码,就是它本质上还是一个sol啊,这样的话呢,就解决了这个sol,它在返回响应的一个数据的时候呢,呃,这块生成这个页面就是浏览器能够解析的这个代码的时候呢,一个弊端,他不太擅长去写这个标签啊,JSP呢可以啊。啊,然后另外一个组件呢,就提到了一个filter啊,叫一个过滤器。
11:00
啊,比如说我们浏览器,大家登录这个网站的时候,比如说是一个京东吧,嗯,你点好多这个项的时候呢,它都要求你一点进去,要求你得先登录啊,那登录不用每一个后边的都写一个登录。呃,对应的这个页面哈,而是呢,呃,每当你请求一个操作的时候,我就写一个通用的一个拦截器或者叫过滤器,然后呢,要求你必须得先登录一下,然后才能够呃,进入后续的这个页面。啊,这就是一个过滤器的概念啊。啊,比如说我们这里边操作的时候呢,我们就可以,呃,让用户呢,通过浏览器。或者是我们的客户端来访问服务器的时候呢,呃,我写一个拦截器啊,或者叫过滤器让他呢,呃,两秒以后再接着往下操作来模拟一下,呃,就通过你浏览器访问服务器的一个延迟。啊,这呢,因为是本地的,所以特别快啊,我们来模拟一下这个延迟,所以呢,就可以用一个filter啊来做。好,然后的话呢,上面这些啊,我们这个pad服务器呢,部署这些组件的时候呢,呃,需要声明在这个叉格式的文件里。
12:07
来我们叫web点叉包啊,类似于功能清单文件。啊,公众其他文件注册我们的安卓的这些组件哈,那在服务器端呢,呃,是在web点插包当中啊,就我们这个里边。哎,在这里边呢,去注册服务器的组件,就比如说这些sol。啊,就是服务器的组件。好,那另外的话呢,这个插帽呢,还是一种数据传输的格式。呃,数据传输格式除了插帽,还有我们特别常用的,呃,杰森啊,现在呢,主流都是用杰森的,不管是浏览器跟服务器,还是客户端跟服务器都主流都用杰森啊,因为杰森相较于叉猫来讲呢。哎,对,就更加的清亮级了。哎,更加的轻量级,你看它就是一些这个大括号啊,一些逗号,一些分号啊来表示的,像这个插帽的话呢,我们看到它,它会有这种配对的组件啊,配对的这个标签。
13:05
那你配对的话呢,显然你这个不有有点冗余的数据吗。嗯,现在突然想了。所以呢,它这呢就会有点冗余啊,另外的话呢,解析这个叉帽的话呢,相对来讲也稍微麻烦一点啊,不像我们用钩on特别方便,直接就解析出来了。啊,具体这个解析,像这个铺解析,那就是有DOM解析跟这个嗯,萨斯解析。嗯,然后我们本身这个在安卓里边还集成了这个铺解析这块,应该我们也没有讲啊,因为现在用的确实比较少了。啊,这个我们没有详细的去说,主流现在都开始用这个杰森去解析啊,我们把这个呢,就是呃,多用一用,用用手就可以了啊。
14:00
好,然后的话呢,这里边那顺着这个往上说,还提到一个叫Ajax啊啊,这个Ajax的话呢。嗯,它来做什么用呢?就比如说我们可以做一个这样的操作哈,不管你是通过浏览器也好,还是通过这个客户端也好哈,客户端里边我们说也有跟H5交互的这个页面,诶写一个用户名,比如用户注册啊用户名,然后相应的你这些其他的些信息,你刚写完这个用户名,哎把这个光标呢,刚往下边这一掉,然后这立马就给你呈现出来,说此用户名呢,已被注册。对吧,嗯,对,打一个红叉啊,就是本身我还没有去提交呢,他怎么就能够提示我说已经注册了呢。哎,说明呢,就是当你把光标往这一调的时候呢,它是不是已经是通过一个异步任务的方式开始连服务器校验一下后台是不是存在这个用户名了呀。哎,像这个操作呢,就是用Ajax来做的。啊,包括的话呢,我们在这个搜索框当中,比如我们写一个说呃商硅谷是吧,那紧接着下边就提示你商股好不好,呃商股什么什么什么,就这样的一些提示标签就出来了,这个呢,我还没写完呢,他就能够出来,就相当于在你写的过程当中,他已经开始去,呃查询用户经常做的哪些习惯性操作了啊哎,纠正给你提示出来,这呢也是用as来做的。
15:21
啊,那呢在呃浏览器端呢,需要依赖于javascript啊,所以他俩是有关系的啊。啊,那通常呢,用它来交换跟后台交互这个数据格式,就我们说的这两个数据格式。啊,这是这样的一些技术,然后下边呢,还涉及到这个叫cookie和session体现出来的,我们说叫绘画控制。啊,他想表达什么意思呢?就是正常的服务器呢,我们是没法记录,发送了一个请求,又发了一个请求,后台呢去接收这两个请求,他不知道这两个请求是不是来自于同一个浏览器。嗯,这个他是没法识别的,所以呢,这里边我们就提到这个叫会话控制,呃,给这个浏览器呢,指定一个cookie,然后呢,这是他发的第二次这个cookie跟他一样啊,那我觉得哦,这是同一个浏览器发送的请求。
16:10
啊就这样啊,就有点像呢,大家去一个饭店吃饭呢,呃,你今天吃了,然后明天有吃,服务员呢,也不知道你之前有没有来过啊,当你有一个会员卡的时候呢,啊,今天你过去的时候用一下会员卡出示了一下,因为明天又出示啊,他就知道啊,你就是这个就是两次都是这一个人。啊,因为你都用这个卡了,那这个卡就类似于我们的cookie啊,在服务器端这块呢,叫session啊,去记录用户的这个相当于唯一的一个ID一样。啊,这呢,就是我们说的这个整个web阶段相关的这些技术点,只不过呢,我们这里边儿是把前端这个浏览器呢,给它替换掉,换成了安卓客户端啊,后台就是跟后台去交互的时候呢,都遵循HTTP协议,后台这个相关的这个技术点是不变的。啊,后台不能动啊,就是前端呈现的,嗯,变了。
17:02
啊,你是用新浪微博,是用浏览器登的,还是用手机登的,后台都是一个新浪微博的后台啊,这里边我把Java web就是用Java技术来解决相关web互联网领域技术的总和,就称作一个Java web的相关技术。啊,那对于我们安卓成员来讲,从这张图里边需要大家掌握的点有哪些呢?首先。HP协议。啊,这个要掌握就是跟后台交互啊,涉及到HTTP协议这块呢,呃,我们提到了啊HTTP。啊,协议,协议里边呢,重点两个问题,第一个呢,就关于请求。请求呢,我们提到了有两种请求方式,对吧?哎,钙的请求和哎获得请求,哎这个呢是需要大家掌握的啊,哎,这两种请求方式的区别在哪呢?
18:00
哎,这个涉及到他们有请求行,请求头请求体是吧?呃,这个盖的请求的请求参数是不是直接附录在URL地址后面啊POS呢。啊,提供一个请求体。是吧,请求体里边建着对建着对这样的方式啊来提供,那如果你请求的这个呃,数据特别多的时候呢,用get的请求不合适的啊,浏览器呢,往往它这个请求的时候有一个长度的限制啊,哎,不同的浏览器还不太一样,所以呢,这个如果你一旦请求的参数数据过长,哎,用post更合适一些,然后第二个呢,就关于响应。呃,响应的是后台处理完数据以后呢,返回给我们前端的啊,客户端或者是浏览器的,那响应这块呢,我们主要关注的就是这个响应网的问题啊,哎,我们200。嗯,像另外一个重定向是吧,嗯,404500啊这样的问题啊,这个是要关注的点。啊,这个我们说是安卓安乘以二。啊,关注的这个相关的这个技术哈,呃,第一个呢,就是协议啊,第二个呢,就是我们说这个。
19:06
杰森,这种数据格式。嗯,这个呢,就是我们跟后台在交互的时候呢,他给我们响应数据呢,就可以是杰森格式的啊,这个杰森格式呢,怎么让他呢,跟Java对象啊,或者Java对象构成的集合相互转化啊。哎,相互。嗯,转换啊,这个呢,需要大家能够掌握。哎,我们说呢,本身在安卓里边提供了原生的API,呃,另外我们可以用到的这个框架是吧,是不是勾三。啊对,还有一个叫fast杰森啊,这个都可以。啊,这是这个,然后还有呢,就是基本的这个叉叉猫这个也得会了是吧,叉猫我们这个在安卓端的话呢,这个布局都是使用叉包格式啊来实现的啊。
20:04
哎,叉ma格式啊,实现布局以及呢啊功能清单文件啊,那这种语言格式啊,也要熟悉啊,这个叉L语言格式跟这个HRL呢比较像啊。都是有这些相应的一些这个标签。嗯,像这个,诶刚才HRL在这个JSP里面,诶看到这些呢,都是属于这个HRL的标签啊,那HRL跟叉L有什么区别啊。哎,就是它这个呢,叫extensive maup language就是可扩展的是吧,就这里边这个标签呢,是可以自定义的,对这个HR呢,就是不能自定义呢,就定义好的,哎,正因为它可以自定义,所以我们在布局文件当中,比如我们自定义了一个组件啊,比如说就是叫my test view。啊,这是,所以你就能够把它当成这个标签了,因为它可以自定义啊。好,这是我们说插帽这个格式的文件啊,啊,以及呢,我们说这个基本的关于SQL语句的使用。
21:07
啊,那这你得汇报啊,这个我们你在本地存储数据到数据库当中啊,那你得会写这个基本的SQL语句啊。嗯,其实主要的话呢,也就这么几个点啊,需要大家来掌握的啊嗯啊这呢,我们把这个关于呃后台这样的相关一些基础点啊,跟前端在交互的时候,这个情况呢,给大家介绍一下啊,前后台的一个交互。
我来说两句