00:00
咱们啊,呃,刚刚呢,已经把这个表单的回显啊,已经做好了,那么我们再来做一些优化,做哪些优化呢?大家注意看一下哈,那么在实际的开发当中啊,在实际的项目开发中啊,一个模块一般只使用一个类的程序啊,这是用一个select程序,而我们现在呢,大家注意看一下哈,我们现在这个登录是一个注册是一个select,而这两个呢,登录和注册呀。他们都属于用户模块的功能,所以我们想怎么办?呃,我们要把这个log in select和it select合并到一起,成为一个usual select也就啥意思呢,注意看一下哈,也就是说这边有一个叫做usual。
01:06
哎,程序好了,那么这个程序呢,既实现了登录的功能,又实现了注册的功能,也就是说注意看哈,那这边这个页面叫做log in。点JP页面,好,那么还有一个叫做resist JP页面。Okay。好了两个页面,那么他们呢,都把这个请求给谁,都把这个请求给usual,都给他,它处理两个功能。而大家注意啊,呃,这两个页面的请求呢,都是POS请求。都是post请求,也就是提交过来的时候啊,都是什么呢?Public do post的方法,要在这一个方法里面处理两个功能,那怎么办?
02:14
有什么思路吗?你想想哈,我的代码只能写一份呢,我怎么同时处理两个功能?是这样子的,大家注意看看哈,前面呢,大家一直都说老师这个隐藏域它看不见对吧,咱们第一天讲了嘛,呃,在这个表单里面来表单,大家老师问老师啊,这个隐藏玉啊看不见,在这表单有啥用啊,今天咱们就来讲讲了,大家注意看哈,我们可以在这两个页面当中,表单里面添加一个隐藏域。Input type等于hidden name等于action value等于录音好,然后让它表示登录功能是吧,然后呢,下面这个地方大家注意看一下,也有一个。
03:15
哎,只不过这个值呢,是表示什么,表示注册的功能,好了,大家看看这个值不同啊,这个值不同的话在这边。一进入do破方法的时候干什么事情呢?大家注意看一下哈,String action先获取请求的参数点,Get parater好获取谁呀?获取action啊,获取这个action的值,然后大家想想啊,通过对这个action值的一个判断说,如果它等于log一点。
04:03
Equals。谁呀,Action好了,那这里面我就知道什么呢,它是登录提交过来的,这里呢,处理登录的业务,哎,而下面l if再做一个判断说如果呀,它这里等于register。Equals action。啊S,那么大家注意看一下哈,那这里就做什么事情呢,处理哎,注册的业务就这样子的好了,这咱们了解一下。哎,这个呢。如果按照这样一个思路,那么我们一个user类程序就可以处理两个功能,甚至是后面更多的其他功能了,那这样一个思路是否可行呢?来,咱们试一下。
05:01
啊,咱们试一下好,怎么试啊,我先在这里。添加一个usual程序,叫做usual,好让他继承P好继承好了以后在这里面有一个什么do post方法,哎,我们说在这个方法里面干什么事情啊,就跟我们刚刚说的一样,上来就获取action请求参数啊,判断是吧?好了,那来吧,Action等于Iq.get per meter,这里是action,好判断,哎,我先我先打印一下吧,咱们先不走那么快是吧,一点点来,我先打印一下这个action的值。好,注意看啊,我这边打压成的值,然后呢,我在两个页面的表单里面各自添加一个隐藏域,大家请看哈。
06:06
呃,我找到哪呀,我找到。表单,诶,找到表单哪个pages里面user下的log in,哎,找到这个登录表,它加隐藏域。Hidden,然后name呢是egg。Value是录音好,然后注册里面也添加一个好,它也是action,然后value呢是ist,大家注意看,然后添加了隐藏域以后,两个表单的请求地址啊,都指向user select啊,我们好像还没有给这个user配置这个请求地址是吧?来咱们来写一写啊,给U乐类的配置一下。
07:03
这里面是杠class,这什么东西呢?Usual select杠内,好,咱们这里是什么东西呢?Usual,小写就小写吧,小写不影响啊,然后到mapping,呃,这里呢是usual斜杠,Usual,好,那现在呢,我们把这个地址啊改到登录。和注册里面。两个都改了,那么咱们现在先提交看看服务器能否收到这个action的值啊,咱们先试试看,那我启动一下这个书城。啊,启动一下。
08:00
稍等。啊,正在启动。好,启动成功了,咱们来测一下吧啊,登录action action,咱们点击提交,诶已经提交给U乐设备了,这边能收到吗?看一下诶录个音看见吗?那如果是注册呢,来试试看啊ME123456123456啊me at Q点com啊这里是abcde,咱们点击提交。大家看一下是不是有啊,那服务器都能收到的话,那简单了,对吧,咱们就在这边判断,就跟咱们刚刚说的一样啊,判断一下哎,咱们说什么东西呢?Log in equals什么呀,Action,好,咱们就打印一句话,哎,处理登录的需求。
09:04
好了,那么如果它这里呢是resist,我复制一下就它。好啦,那么这里呢,就处理注册的需求。好,咱们看看啊,他能不能够有效的选择不同的操作啊,不同的操作来重新部署一下。啊,应该还行吧。刷一下哎。部署成功对吧,咱们再来,呃,咱们刷新哈,现在是注册,我们看看提交过去啊,随便吧,无所谓了,这个值无所谓了,然后123456 123456啊QQ啊,然后这里是abcde好,那这注册功能啊,点击大家看是注册了,这样没问题的。
10:04
那如果是登陆呢?嗯,来我们看看ABCDEABCDE首谓是登陆,大家看一下它是不是有效的可理啊,分发这个不同的功能啊,你看可以做注册,也可以做登录,那么看来咱们这个思路是没问题的,那现在接下来就干嘛呢?我们只需要啊,把这里变成登录的代码,呃,这里变成注册代码就好了。是吧,那简单了,咱们这个代码其实已经写好了,你去复制过来就行,这是什么,这不就是诶这不就是登录的代码吗?复制放到这个地方粘贴进来了是吧?这里缺一个usual service,给他创建一下,创建一个usual service。
11:01
好,那登录的代码就有了,注册了代码呢,咱要给人家拿过来。是吧,也拿过来,好,也放进去。好就有了,但是大家注意看一下哈,我们确实啊,在这里面既有登录的代码,又有注册代码,但是发现没有这个代码,是不是感觉特别拥挤,特别长。对吧?哎,一般情况下我们说一个方法呢,只处理一个功能就好了,那很明显这么写呢,这个代码变得很拥挤,不太好啊,维护起来也不太好维护,那怎么办呢?跟大家说一下哈。我们现在啊,把这个东西呢,给人家复制一下。哎,然后把这个改了,叫做log in。好,那这里干什么事情呢?这里就做登录的功能,咱们就写个方法是吧,啊处理登录的功能。
12:07
而下面呢,再整个方法。叫做read,那么这个处理注册的功能,诶,那分别把登录的功能拷贝出来剪切。注意往这粘贴是吧,哎,那注册的功能呢,也剪切出来粘贴。然后放到这里面,然后呢,我们在这里面只需要简洁的调用log in方法,哎,还有ist的方法就行了。好,那么这样子呢,整个代码就变得很简洁了,这不就是最早的时候咱们讲的那个在色里面分发这个请求吗?你看现在效果是差不多的,那现在这么写完之后,咱们来看看对于原来这个登录和注册的功能,人家有没有什么影响。
13:13
啊,咱们看看有没有什么影响,来重新部署一下哈,咱们来实验一下吧,测试一下,先看一下登录。But me123456,我先故意写个错的啊,它部署呢也成功了,部署也成功了,咱们看看它能不能有效的处理咱们的需求。诶,你看见了吗?登录错误之后,它依然是可以回显这个错误信息和用户名的是吧,那我来个成功的不,你走你看他也可以正确的登录,哎,就说明没啥问题,那注册这个呀,咱们也可以来。也可以来试一下啊,试一下注册失败就行了,ZWG168123456123456ZWG168艾特qq.com啊这里的abcde,那这个很明显,一提交呢,它就会报错,说用户名义存在,咱们看看哈,走出效果一样啊,功能是没有问题的,那就说明咱们的这个思路啊是可行的。
我来说两句