00:00
来看我屏幕。我们昨天呢,我们把这个QQ中它的一些主要的功能把它稍微写了一写啊,当然还有一些呃,细节的一些功能呢,我们没有写啊,留给大家自己去写,那么我希望大家能够,我希望大家啊,就是不要在页面上,不要在页面的细节上面就是花太多的时间啊,因为大家以后做开发的话,可能我们绝大部分同学你都不太可能性会接触到前端的页面。哪怕你看到前端的页面,那么这些前端的页面一般情况下也不是让大家来负责的,大家主要负责的任务还是后端,甚至于我们有很多同学,他就从来都没看过前端页面长什么样。都是很有可能的,为什么呢?他只负责写后端的接口。就是说他根据接口文档,然后去写后端的这个实现。啊,根据这个Excel就是接口文档一个一个的去实现啊,人家就规定了他给你什么样的参数,然后需要你给他返回什么格式的数据,全部都规定好了,规定好之后就按这个要求去写就可以了。
01:02
啊,所以呢,呃,所以呢,我们有很多同学可能都接触不到前面那个前端的这这些页面啊,所以大家我希望大家不要在前端的页面花太多的时间,当然我们不能保证100%啊,因为我们有些同学可能到公司里面去得得一条龙是吧,得得全占。啊,那你可能就要就要去花一些时间在钱到页面上去啊,那行。我们简单的把这个系统啊,简单的来小结一下啊,然后咱们就进入到第三个小的小的项目啊。嗯,这个项目当中呢,我们首先啊,来我看一下啊,我们就一个一个说不着急啊,我们简单总结一下。呃,我看一看啊,在我们的慢慢页面上,慢这个页面上是日志的列表。日志的列表这边有个叫topic点,那么当它运行起来之后啊,这边有十分表,后面会显示一个点零,大家还有印象吗?会显示一个点零。啊,那么我们需要把这个点零这个操作,我们需要把它改一改。咱们一起来看一下啊。那我利用它启动的时间,我再来复制一份。
02:04
Project稍等一下啊,PROJECT23。好,QQ中1.0。就这样子。然后呢,我们把它重命名一下。回到这边的,把它打开,找到它奥的西附的。Can you。那行,咱们把它import进来。稍等啊。先把它最小化。我们找到他,然后找到他。然后点击。点击model,然后找到它import是是这个是吧,然后我们找到二三。找到MP。点击OK。把它应用把它导入进来,行二三我们先放一边,我们先看一下二二里面的啊,现在我运行的是二二这个项目。行,把它清空掉,再回到这边来。
03:00
好,我登录进去。大家会发现啊,它后面总是显示个点零是吧,这个这个其实不太好啊,那我们把这个小细节咱们一起来修改一下,是这样的同学们。我们在我们程序当中,我们经常会用到什么呢?来稍等啊,我就随便找一个类,随便啊随便。比如说我就把它写在这里面,Topic。随便写一下啊。就比如说接到这吧,反正这个代码一会儿我也会注释掉。我们经翅有什么呢?在我们加法当中,我们经常有死菌。把它转化成date。那么第二个呢,是我们经常会把date,把它格式化成一个字符串string。经常会有这两个数据类型的互换。那么第一个string我们怎么转化成date呢?比如说我现在一个string。比如说我写个DATE1等于2021-12月30号,比如说12:59:59,意思一下啊,那请问一下同学们,这是不是一个字符串呀?
04:01
这是一个字符串,我想把它转化成日期类型,加法点有点date。我想把它转化成日期的这个格式,我怎么去转呢?这个时候同学们,我需要借助一个叫simple data format这个对象。叫simple simple,简单的,简单的日期格式化这么一个对象,SDF等于new simple data format,然后这个里面放的是什么?放的是我们的格式。四个小写的Y表示零,大写的M表示月。啊,小写的D表示日,然后呢小时我们用的是大写的H,小写H表示的是12小时进制啊,大写H表示表示的是24小时静制。行。具体的比如说这个行业大写的D老师,大写的D表示什么意思呢?大家可以自己去百度一下。你就直接百度关键字simple data,然后就行了,行吧,同学们,人家肯定会有人写博客,罗列出每一个字母分别代表的是啥意思。
05:00
比如说一个月当中的第几天,一个星期当中的表示周几等等等等啊,会有各种各样的,这个不用记啊再来。SDF点它一个方法叫什么呢?叫pass。PA这个方法就可以帮我们把一个字符串。比如说DATE1。啊,既可以转化成一个date啊,我这边写个叫date st1啊,把它变成这个形式s string str行,这样我们就能得到一个date。好,Date类型。好,我们写个叫DATE1,等于它接这样的,那这边需要圈开一下。啊,需要做个圈开,这样我们就把一个字符串,把它变成一个date了。哎,这是第一种场合。第二种场合是什么呢?第二种是date转化成。比如说我们已知这么一个date。啊,我们已经有这么一个date了,那我怎么把它转化成菌呢?我们再来写一下,比如说我现在进来写个date。带套我就直接溜一下吧,六对就这样就可以了。
06:04
好,这是个date,那么我怎么把它转换成string呢?SDF,它一个方法叫format。分这个方法我把DATE2把它放进去,它就可以给我得到一个字符串。子俊data st2。啊,这样我就能得到这个字串了,就能帮我格式化整个字符串,这就是字符串和日期这两者之间的互相转化。好,API不用去死记硬背啊,但是这个单词大家最好还是要留个印象的。将来万一你要用的时候,你得知道查哪个单词叫symbol data format。好了,那和我们这个地方讲的有什么样的关系呢,同学们。有什么样的关系呢,好。我们现在用的是叫time的一个表达式。我们time当中有一个内置对象,这个内置对象叫date,叫date啊,Date加个S,我们来看一下啊。我找给大家看一下,在这个里面。
07:01
我们找到time Le,往下org time Le,然后有个叫expation,叫表达式。表达式当中,我们之前用过一个叫list,用过是它是不是啊。判断某一个集合是否为空的吗?Is empty是吧?那除了这个list之外,我们还有一个叫date加这个S。啊,它里面有个方法,我们看一下。你猜一下,你觉得我会用哪一个?是不是一个码呀。这个分是不是就把date转化成菌啊,来就是它。好。内置对象我们是怎么用的呢?我们是不是井号list词,之前是这么用的吧,井号list l是小写,再看一遍啊。你把课件打开。给大家看一下啊,内置对象time。我们找一下。这边有个内置对象,然后呢,我们以前用的是这个叫稍等一下啊,叫公共的内置对象,我们用一个叫list是不是。
08:00
例词,然后我们用的时候就是例词点is empty稍等啊。在这有。是吧,同学们,井号list词点is empty,那么除了这个list之外,我们还有一个。还有一个叫date呢,在这啊叫date这个。哎,他也可以用,用于做对象的一个叫forming,叫格式化。那行吧,咱们进来用一下。所以在这个地方我们写个井号date,本来这个D是大写的嘛,表示的是一个类嘛,或者借口嘛,那现在我们用的是内置对象,它把这个D变成小写了,叫date叠form。好,就是这样的,然后呢,把我们这个参数把它放进去,它需要两个参数。这是第一个参数。第二个参数,你再看一下第二个参数,是不是就这个死菌啊,死菌不就是我们刚才写的那个格式吗。不就写的这个格式嘛,是吧,同学们就是这个好,所以我们把这个也把它放进去。
09:01
所以呢,我们就在这边写一下。啊,比如说。Y杠,MM-DD杠小时分钟杠秒。就是这。好,这样就可以了。好了。这样我们就把它格式化好了,那我们这个改动之后,我们再来试一下,那这边代码我已经注释掉了啊,我把这坨现在我剪切了。我把它放在read me里面啊。好,找到我们这个项目,我把它放到二三项目里面啊,一会儿我再运行二三。OK。好,我们再往下。今天这个项目没有什么新内容啊,就是一些细枝末节,第一个叫日期。和字符串之间的格式化。啊,格式化问题,这是第一种,这是我们Java类当中的,那么我们在time里面我们要写的来再来。
10:07
里面啊第二个。Time中,我们使用。井号。叫data啊,这表示日期加个S啊,用的是这个叫公共啊,这个公共的内置对象这样的。行吧,这个这个页面上代码我已经写了,我们来试一下啊回到这。回到这。我们后退刷新一下,再点击登录。你看一下后面那个点零是不是没有了,哎,就是这样啊,这个其实比较简单。好,这个小细节需要注意一下。OK。再来,然后呢,我们有同学呢,呃,我们有同学问了我一个问题啊,所以呢,我就再强调一下。啊,就是我们一开始的这个流程啊,稍等一下啊,我先把它关掉。好,我们再写到这儿。
11:01
然后呢,刚刚我们是写到二二里面的是吧,我先停掉了啊。停掉,我们找到刚才的页面,刚才的是frame,然后找到麦,是麦的页面吗?我们加了一下,所以CTRLC到这边来,回到这里来froms ctrl v直接覆盖行吧,同学们。直接覆盖一下啊。把它关掉。现在我打开的是他啊。OK。稍等啊,我把这边补一下,这边叫叫Dollar大括号,然后井号叫对点format。啊,里面我们第一个需要的是topic.topic。Date是吧,第二个是格式化。好,就这样。那行。那么第三个呢,第三个是我们一开始访问的时候啊,就说就说啊程序启动,系统启动。系统启动时。
12:01
我们访问的页面是。HTTP。8080斜杠PRO22。啊,现在是二三,我就写二三行吗?同学们好,二三,然后我们写的是叫page,点问号,Operate等于page and page等于log,我们是不是这么写的?好,我们访问的页面是。为什么就说为什么不是,为什么不是下面一个。ST8080-PRO23-login.h。为什么不是这个?答,我们写一个啊。如果是后者。那么属于。那么属于直接访问静态页面。那么会导致什么呢?那么页面上的time。Time表达式啊,或者标签都可以。
13:01
标签。啊,我们的是浏览器是不能识别的。是吧,力量级是不能识别的,我们。访问前者的目的其实就是要执行。啊,其实就是要执行我们view中的叫process template的方法。是吧,同学们T。诶,没错吧,就是要访问这个当中的process temp的方法。啊,我们访问前者的目的其实就是要执行这个东西。哎,就这样子OK。所以这点需要注意一下,只有你执行了它,那么它其中的这些表达式才会被解释吗?对吧,财务被解释一下。要不然你直接把这个time的表达式直接交给浏览器,浏览器是不能识别的,所以新过需要经过这个方法去进行解析,解析之后它其它其实会做处理。
14:01
啊,处理成浏览器能够认识的一些一些标签。好,再来。下面一个问题。好。就说访问。访问这个U21啊,访问这个UU21。那么执行的过程是什么样的?好。首先我们要搞清楚这个当中。这个当中我们把这几段把它拆下来。好,HTTP。我们到这边把它拆下来。Localhost。把它拆下来,8080把它拆下来,这个把它拆下来,好这个地方把它拆下来,它其实分成了这么几个部分。那么第一个部分这个称之为叫协议。我们的传输协议HTTP,当然还会有HTTPS。啊,安全级别更高的https log是什么?
15:02
哎,是我们server server它的IP是不是服务器端的IP地址嘛,我们这个网络就是茫茫大海嘛,网络当中有N多个服务器,N多个机器嘛。那么你怎么去找到我们这个服务器呢?不会找到其他人的呢?哎,每一台机器在互联网上都会有一个IP吗?是吧,同学们,这是我们的网络知识,我们要通过网络叫路由器吗?路由器。通过我们的叫所谓的叫域名解析器,比如说3W点百度点com,本身这个3W100度点com,它是个叫域名。那这个域名呢,会被我们域名解析器把它解析成IP地址。对吧,会解析成IP地址,那这个IP地址就能够在网络上能够唯一确定一台机器。好,这个叫server IP,好后面这个叫port,是不是端口号呀。再往下这个叫什么。我们这个是不是叫k root呀。
16:01
是吧,同学们,这个叫root。来就是这样。再来。那这个叫什么呢?这个叫什么?我们是不是可以通过request get pass是不是可以获取啊?是不是可以获取这玩意儿?再往下后面这个叫什么,我们说过的叫cor。啊叫查询字符串叫cor string,问号从问号开始,这后面的啊都属于叫string。所以说我们访问这个12L,它执行的过程是什么样的呢?首先第一步。第一步啊,前面的这个什么协议啊,Server IP啊,端口这个咱们就不说了。我们直接从contact root这边开始contact,首先contact root找到我这个项目,因为我通M里面可能要部署好多的,我有好多个项目部署到这一个web服务器里面的,我通过这个contact root能够找到我这个项目。
17:01
是吧,然后呢,我记得我们有一个叫PA。Dis despite that。它所对应的U是什么?他对了,一二趴是什么?它的帕是不是叫星点度啊?那也就是说第一步应该是我们的dispe啊,会拦截斜杠pageg点度是不是。会拦截他。第二步第二步,我们执行request.get pass。这句话会得到什么?这句话我们是不是就能得到杠配点度啊?既能拿到这个值。拿到这个值之后,我们要解析字符串。解析处理字符串。啊,将。杠配给点度要变成什么?要截取到其中的配给?对不对,我们就等于得到配,得到配给之后啊,拿到配给。
18:04
配这个字符串,然后去哪里呢?去我们的ROC容器。是R容实,我们factor。啊,去RC容器中寻找ID或者叫key啊,咱们不是一个冰脉法嘛,是吧,并发内部一个叫冰脉法啊,寻找ID等于page。配置的那个病对象。是不是?这个时候我们就能找到谁呢?我们就可以找到pageg ctrl点加法是吧,同学们,我们经能找到这个类。所以说第四步。我们就可以根据配置点度能够对应的找到这玩意儿。再往下我到底要调用这个类里面的哪一个方法呢?我要到底要调用它里面的哪一个方法。所以第五步我们应该是获取operate。
19:00
Operate值。Operator当前的值是什么?是不是叫配角?那么因此,因此得知。应该调用,或者叫应该执行。应该执行page controller中的page。方法。是吧,同学们要执行这个方法。Set that。那么。我们的page control。啊中的配置方法。配置方法定义如下。我们是这么去写的,Public string string page。好,我们是这么写的,Page是不是我们是这么去写的,那这个方法是不是一个参数啊。这个参数名叫配,那么谁给这个参数名赋值啊?是不是我们这个and后面一个叫page等于loging啊。所以。啊,我们在在corry,啊,在corry string。
20:04
这个扣是这样的,也就是问号。Op等于page,并且page等于login。啊中。获取。请求参数。啊,参数名是配。参数值是login,是不是这样的?啊,这样我就能知道这个page是locking。因此。因此,配置方法的参数配置值。啊会被附上啊会被附上。Logging。对吧,然后。然后。啊,然后return,也就是return log对不对,那么return return给谁。瑞特给谁?明天给谁啊?因为。因为page control的。
21:02
配方法是我们dispat通过反射调用的。也就是我们对应的其实是method.in work方法。是不是,那因此。因此。啊,字符串。Logging。啊,返回给dispatch。是吧,返回给所以第九步。第九步,Dispe。好。第八讲中。接受啊,接收到返回值。然后处理视图。啊,处理视图。我们处理试图的方式有两种。目前。目前处理视图的方式有两种。就是说第一种是。
22:01
带前缀。Direct冒号是不是?第二种是不带前缀。对吧,那么目前啊,当前。当前返回。当前,我们返回login。是不带不带前缀的啊,不带前缀。那么执行,那么执行什么呢?执行我们点process。是不是?然后其中我们放了一个logging啊,后面是我们request,好,Response,那两个是固定写法。那是不是就返回这玩意儿。返回这个东西,那么就用里面的process table这个方法log。那么因此。所以第十步。啊,第十步,那么此时。此时,View。中的process。啊,这个上面太写错了。
23:01
TPET,好。的方法。会执行。效果是。效果是什么呢?在。Locking。这个字符串前面拼接。拼接什么,拼接个斜杠。啊,其实就是配置文件中我们有个叫prefix。叫什么?叫view prefix?配置的值是不是。啊,在login这个字符字符串前面拼接一个斜杠,啊,在logging这个。字符串后面拼接。点HTML。其实就是配置文件中。VI刚,Six。是吧,配置的值,哎,就这样的。
24:01
我看一下啊SHX我看有没有拼错啊,最好最好不要拼错。打开看一眼,哎,下对的吧,Viewx view就这样的,那么老师这两个值配的谁去使用这两个值呢?其实这个源代码我们没有去细讲。其实是我们的view base在使用的。我们再打开,再看一眼。好,我们找到它,找到它找到我们的view base,你看一下我们一个初始化方法,这个初始化方法里面是不是会获取prex以及下啊获取到这两个参数,然后呢,在我们使用一个叫template叫模板识别器的时候,会设置一下前缀,设置一下后缀。然后我们的resolve又被封装成什么呢?我们又被封装了一个叫引擎叫tempate的engine里面去了,你看这个engine对象set template resolve,把这把它放进去。然后我们这个引擎就能帮我们工作,引擎会执行它的process方法。是吧,就是这样的,好,这边两个参数我写的不对啊,一个叫一个叫write。
25:06
回到当然这边是对的啊。我这边写的反倒是对的,Request和response,它内部调用的是不是process方法,Process方法需要需要一个上下文,以及需要一个输出流。啊,所以说那个我要不我就不改吧,啊,就直接调这个process一样的啊没问题。这边写的是对的啊,我说的是这个地方,能听懂吗?说的是这里啊,我说的是这个方法。那行。所以说在log方法这个前面和后面分别去拼接,然后最后跳转啊。最后把进行。服务器转发。就是我们的request get request forward是吧,同学们,那就这样。这就是我们整个的这个过程。啊,我们总共把它也分写的比较细啊,咱们写的一二三四五六七八九十写了十步。好,就这样子。所以说我们最后最后一点复习一下,最后一点。好,目前。目前我们进行web或者叫Java web。
26:03
项目开发的套路。啊,开发的套路。是这样的。第一步。第一步。复制拷贝啊,或者叫拷贝。拷贝我们的叫MYSSM啊这个包。这第一步。是吧?这是第一步。第二步。新建配置文件。Application contacts the XL。第三步,在web.XL文件中,在web.X文件中配置。配置什么呢?有两部分配置。第一部分配置。第一部分配置,我们要配置我们的time live,它要去读取的前缀和后缀。第二部分要配置我们的监听器,Listen的要去读取的你的配置文件。就是配置文件的名字嘛,你要把它配上去,所以我们写个叫新建配置文件,它或者或者可以不叫这个名字。
27:08
或者可以不叫这个名字啊,在web.XL中指定。文件名。是吧?所以我们第三步在web.X文件当中配置来,我们回到这边来。web.XX文件第一步我们得配置这玩意,CTRLC。把它放在这儿。好。这是在web.X件中配置的,对不对?再来,这是第一小步。啊,这第一步。配置前缀和后缀。啊,这样time。Time引擎。就可以根据我们返回的。返回的字符串进行拼接。拼接再跳转。是吧,这第一步第二步。
28:02
在这个地方。第二步配置什么呢?配置监听器。配置监听器要读取的参数。目的是加载LC容器的配置文件。配置文件。也就是application contact the XL。是吧,同学们也就是这个文件。好,所以我们要把它配一下回到这边来,也就是这个。给C把它放到这边。就是这样啊,配置精灵器要读取的参数。好,第一步拷贝这个包,第二步新建配置文件,第三步web DX文件中要配置它,那下面我们具体的要在做具体业务的时候,第四步。开发。具体的业务模块。开发具体的业务模块,我们是怎么做的呢?
29:01
那么开发具体的业务模块。好,第一个。一个具体的业务拈啊,纵向上。纵向上有。几个部分组成。有这么几个部分组成。第一个HTM页面。这第一个H对面页面把它写在这。第二个PU类。是不是?第三个。Do接口和实现类。Service。接口和实现类是不是这样的,再往下。Controller叫控制器组件,没错吧,叫controller叫控制器组件。啊,它是由这么几个部分去组成的。然后我们需要做的事情。我们需要注意的事情。
30:00
好,第一个问题。如果HTML页面。有time。表达式。啊,那么一定不能够直接访问。必须要经过page control。是吧,同学们,这第一个问题,第二个是。在配置文件在application context.xl中。配置。DA。Service。Controller以及三者之间的依赖关系,是吧,同学们配置他们的依赖关系好再来。Do实现类中。在do的实现类中,我们要注意啊,要继承best do,然后实现具体的接口。没错吧。例如。啊,例如。
31:00
我们写一个比如说比如说public。Class,比如说叫user do,我们要继承。Best do,尖括号这边不能写错了,写柚子了。然后。Imp。Use deal是吧?同学们,我们是这么去写的。啊,DA实现类中要继承best do,然后实现具体的接口。需要注意。需要注意。Best do后面的泛型不能写错。是吧,同学们,你是不不能把它写错掉的。好,就这样子。这是我们第的实现类,因为你写错了,将来我的best deal里面是不是有叫super,什么get,叫get什么什么super class,什么FA?是吧,同学们,我记得是一个叫get什么general什么的,是吧,那如果说你这边写错了,是不是你获取的类型就不对了。
32:04
啊。没问题吧啊,所以咱们应该有同学会写错了是吧,写错之后就报了一些错误啊。行,这是do的实现率。再来。那么我们设备子层,咱们可以暂时可以先不用管。啊,我们简单写一下吧,四位。啊,是业务控制。这一层我们只需要,我们只需要记住一点。记住,记住什么呢?就说业务。业务逻辑。业务逻辑我们都封装在service这一层。这一层。啊,不要分散。不要分散。不要分散在controller层。也不要啊,也不要出现在。第五层。我们需要保证DA方法的单精度特性。
33:02
还记得吗?嗯。我们需要保证DA方法的单精度特性,这是我们service的这一层。好,再来。第二个是什么呢?第二个是当。某一个。业务功能。需要使用其他模块的业务功能时。尽量的调用别人的service。R不要,R不要。就是说而不要深入到啊其他。模块的DA细节。人家应该有service方法对外公开,让你直接去调用。而不要去调用人家do内部的细节,首先调用人家模块的哪个do方法,其次再调用人家do的模块的某一个方法,然后呢,通过if判断,再调用第三个模块的什么do方法,那你就已经去干扰到别人的这个业务细节了。
34:04
啊,先调哪个do,再调哪个do,这是别人的service的细节,内部细节,我们这个模块不应该关心,我们应该让别人的直接提供一个方法,提供一个业务方法,让我们来进行调用。好,当然了,这个观点呢,可能会有一部一部分人可能会有持反对意见。啊,以前是有人会持反对意见的。因为呢,我们总是会有会有会有人会认为你service建议要调用do里面的方法,你service里面不要去调用其他service的方法。啊,这个是太过于理想化了,因为大家总会觉得service属于上层,第属于下层,那么我们上层应该调用下层的方法,不应该调用平层评级的方法,这个其实这个思路是太绝对化了。当我们调用其他的模块的业务方法的时候,就应该要调用别人的service方法,而不是别人细节。这是service。那么最后一个。第六个是我们的cler啊,Cler类的编写规则。
35:06
编写规则。第一个规则是什么?在我们的application context.x。配置。中我们要去配置CTRL。好,并ID等于一个值,比如说假设我等于user了。好,Class等于com.at硅谷点。呃,开个重点。比如说我写个叫controllers。好,我写个叫user controller。好,这是第一步。啊,在我们application这个中配置一个controller,那么。那么。用户。在前端。发请求时。对应的。Pass。就是什么呢。就是点读。
36:01
是不是它对应的其实就是user点度,你这个U点度其中的这个部分对应的就是这个ID。是不是?其中的user。啊,就是对应此处的B的ID的值。没错吧,这是第一个。好,第二个是什么呢。第二个是。在我们的controller。中设计的。方法名。啊,方法名需要和operate的值对应,或者叫一致。是不是我们一个方法,Public string logging方法。Logging ID password。三星。我们是这么去写的。好意思一下啊,我这边就写个index算了啊好。
37:01
那么这个方法名叫logging。在我们C中设计的方法名需要和oper的值一致,所以,因此。因此我们的登录验证的表单。表单中,表单如下。我们是这么去写的,Form,表单action,或者写T冒号action都可以。好,艾特大括号。好,我们这里面是怎么写的,是不是写的是user点度啊。好,我们写的是user,读method就无所谓了啊,Post。然后。然后我们在这form表单里面是不是写了一个input type等于hidden name一定是等于op,对吧?Value一定式等于什么?哎,Value是不是一定等于login啊,你这个LOGGING1定要和这个logging要对应。没错吧,同学们一定要把它对应上。好,这是第二步。
38:02
第三步是什么呢?稍等一下啊,这个我能不能把它不用这个杠啊。好,这第一个。好,这第二个。再来第三个。好,第三个是什么呢?在表单中,在表单表单中啊,输入组件。组或者叫组件,组件的name属性和CTRL中方法的参数名一致。是不是?比如说,我们有input type等于text name等于login。ID。是吧,然后我们的方法名。把它放到这儿。你看一下方法名当中是不是login这边有个叫loging ID啊,和这名字是不是一致的呀,你必须得一致。
39:01
这是在表单中啊,我们的组件的name属性和CTRL中的方法的参数名必须得一致,那你说老师这个password肯定也有,那老师这个三线是怎么获取的呢?我们是不是在我们中央控制器里面,我们做了判断。如果你这个方法的参数里面带有request,带有response,带有筛选,我是不是就不是通过request.get旁获取了?啊,就是这样的。好。好,另外。需要注意的是,另外需要注意的是啊,我们的这个方法。就说controller。中的方法中的参数不一定都是通过请求参数获取的。我们是分情况的。啊,我们是要分情况的,If,如果是request.equals谁谁谁,如果是这个情况。
40:04
如果是response,点。Equals,谁谁谁。啊,Else if,如果是sessionin.e谁谁谁,如果是这样的情况,我们是不是就是说直接复制。赋值是不是啊,我们是直接赋值的。啊,我们把它写到了。那就是直接复制。因为request response是不是我们的despite service方法上面记这个参数啊。啊,这两个对象不是我们创建的,也不是我们从请求里面获取的,而是通get帮我们创造了这两个实例对象,那么赛不用讲,赛就是通过通过我们request去获取的嘛。好,只有在else的情况里面。此处。才是从request请求参数中获取是吧?也就是说出现的是request.get parameter。
41:02
比如说log ID。是不是同学们才是这样的?这是我们CT啊,Ctler它的一个编写的一个套路。好,这是第四步。OK。那么这个啊,Controller这个我也把它说完了,最后一点我们的PA。好,第六个稍等一下啊,这第七个。第七个。啊中。它的步骤。大致。分为。大致分为哪几个呢?第一个。第一个解析,Pass。寻找对应的CTRL组件是不是?解析pass。在ROC容器中寻找对应的CTRL组件。
42:00
第二步。第三步是什么?第三步是调用对应的啊,叫调用指定的方法是不是。那么在调用之前。要去准备。Opera指定。指定的方法要求的参数是不是。我要去准备operate指定的方法所要求的参数。首先是参数,那么第三步我要调用operator指定的方法。第四步。第四步接收到指定的方法的啊。执行返回值。是不是?啊,接收到执行。Operate指定的方法的返回值。那么对返回值进行处理其实就是叫视图处理,或者叫视图解析。是不是同学们,所以它应该是这么四步,其实他这边还有一个第零步。
43:02
第零步是什么呢?还记得吗?哎,我们找到dispatch,大家看一眼。我们地理部是不是有个叫应力的方法呀?这个利的方法帮我们做的事情是不是出,是不是去我们的application里面去获取我们的b factory。行,我们把它写在到第零步,从application。荣誉。获取ROC容器。是吧?从application作用域获取RC容器,这就是我们dispat,它里面的步骤来就是这样的,其中第零步我们只执行一次,那么后面呢,我们会执行1234嘛。对吧,你每次点都请求过来,我都会执行1234。好了,那再来一个问题,下面一个问题是。稍等一下啊。
44:09
好,回到这边第八个吧。那么啊,我们最后一个问题是什么呢?就是说。谁?就是说为什么。能够从application。作用于获取到RC容器,为什么?啊,为什么?为什么能够从中又获取到LC容器啊?我们有个叫conduct loader。啊,在容器启动时。会执行初始化任务。是吧,而他的,而他的任务,而他的操作。就是。而他的操作第一个。
45:00
解析配置文件。文件啊,创建一个一个的组件。并完成组件之间。依赖关系的注入。第二步就是将LC容器。保存到application。作用域对吧,同学们保存了200克的作用域,那行,那咱们这边就说完了。啊,其实我们说的开发具体业务模块的这个套路,大家需要把它看一看啊,我们在这边目前我们要进行加入外部开发它的一个套路。123。这是最基础的123,然后到具体的某一个具体的业务,拈,咱们要做的事情是吧,就是这样。好,课下的时候,咱们再把这个再再去看一看。OK。那行,我把它关掉了啊好,现在45是吧,稍等一下啊。嗯,这个停掉停感觉停也不对啊,不停也不对,不停的话时间有点长,停掉吧,我也我也录不了几分钟。
46:04
不停了啊。长一点就长一点吧,来,看着啊,再来。那么我回到best当中,稍等一下啊,让我看一下这里面,我之前这里面呢,都是基于这个什么水果库存系统啊,KKZ啊,我做的一个通用代码啊,但是它不一定就完全正确。比如说我们下面要做书神的时候,我们下面要做书神的时候,你不能光写这几个,我还得再加一些。比如说我们后面要涉及到Java点。南怪鸡点打包。啊,要涉及到double类型好不好。所以我就把它提前把它写上去,Type,笨蛋。OK,就这样子。那行。啊,这样应该就应该应该就差不多,不行的话再说啊,不行我们再再追加嘛。准确的讲,这边我们要写好多的。包括ma,叫bIgMa。啊,包括Java点单过去点float float浮典型Java点单过去什么类型,你全都把它全全部写一遍。
47:01
啊,不管了,不写了啊,就这就这么地吧,那行下面呢,我把我这些通用代码,我可以把它导出来,另外有一点同学们,你这个要不还是这样吧啊,我把视频断一下吧,要不然太长了啊。
我来说两句