00:00
好,接着我们来说一下哈,咱们这个第二个练习啊,已经做出来了,但是大家注意,我们想说这个第二个练习的目的其实是为了干嘛呢?其实是为了说明一下咱们前面讲的请求转发的一个具体的使用。那么我们跟大家说一下哈,在实际的开发的时候,大家注意看,它应该是这样子的,页面上有一个搜索的界面,比如说关键字是吧,然后这上面有些内容,然后呢是搜索。在下面就去搜索啊,那么用户在这里呢,就来搜索。这些关键字,比如说脏是吧,脏字好了,当。我把这个字再重新写一下哈,脏字好,那么当用户点输入这些字的时候,点击搜索他会干嘛?他会把数据发给服务器,然后服务器查到之后是不是跟这样一样显示出来,对吧?那具体的流程是什么样子的,大家注意看,它会把这个发送给solid程序。
01:05
那这边呢,会有一个叫做。程序好,这个咱们了解一下。注意看呢哈,这边是客户端。啊,客户端好,那么他搜索之后把这个东西发给他。那么我们就来想想啊,你觉得这个类他要干啥他干啥第一。获取请求的参数,也就是关键字张对吧,能理解吧,好其次。发SQL语句到数据库去查询。啊,学生信息。
02:00
好,第三呢,就是便利查询到的结果啊,输出给客户端显示,也就是咱们看到这个内容对吧,大概是这样子,但是咱们今天讲这个GDP的时候啊,咱们也讲过了,咱们说let程序其实是不太适合。干什么事情回传HTM数据给客户端的,也就是说第三步其实在类去实现的话是非常麻烦的。那我们说谁适合干这个事情,JSP页面。那这个时候怎么办?大家注意看,那么JSP面就出来了。哎,那么这个页面呢。我们说它就是专门用来显示学生的,叫做so student.jp。啊,它专门用来显示学生的数据,这里咱们说啊呃,专门用来显示学生的数据,就这样子。
03:00
好,那么也就是说第三步我们是不是期望给这个JP边来做呀,那现在也就是说大家注意看一下,我们需要这个和这个JP共同来完成这个功能,没错吧,但现在问题是我们从这边到这边。怎么过去?那么过去的时候,我们还要把学生的信息带到这边来,怎么办?这就是咱们要讲的问题了。那其实咱们前面讲的请求转发,其实刚好可以解决这个问题了,他怎么做呀,首先啊,大家注意看。我从这里请求转发过来,他不就过来了吗?对吧,就过来了呀,这个是请求转发,但问题是数据怎么带过来。我们说请求转发他什么,他是一次请求。那么一次请求呢,他共享瑞克的域中的数据还记得吧?所以第三呢,你要干嘛把查询到的学生信息保存到que域中。
04:06
能理解吗?然后你转发给他,他就能有了。他就可以有了,然后这边最终输出完了以后啊,他会把这个结果。传给客户端。浏览器去显示。就这样子,这才是整个正常的流程啊,这才是整个正常的流程,OK。那我们就按照这样一个分析去模拟一下啊,大家注意这个就是请求转化的使用。因为咱们那天讲起转发的时候,大家都觉得只是看到那个效果,不知道咋回事是吧,那今天咱们就把它应用起来,好按照这个说法,咱们要有一个搜索的受略程序吧,在这边。一个类叫做should student,它继承于HTTP。啊,那么我们重写这个do get方法就可以了,那么在这里面主要是三件事情,获取请求的参数,其次。
05:13
发clel语句,发CQL语句,呃查询学生的信息,第三保存学找存查询到的结果也就是学生信息到cost御总对吧,就这样子,那最后就是什么呢?请求转发吗?请求转发到so student,点击P页面,就这样子啊,就这样子好了,那么大家注意啊,咱们其实讲这个的点呢,主要是为了说明请求转发的使用,那么获取参数和发CYQL语句啊,其实咱们前面已经讲过了,所以这两步。
06:04
咱们省略,因为他们的目的是为了得到学生信息吧,那我们来看啊,我们这里说使用for循环生成查询到的数据做模拟啊,做模拟好,那怎么做呀?啊,其实我们可以把这边这个。是不是拿过来,这是不是有了,能理解吧,哎,这样就好了吗?这样就好了,然后呢,把它保存成request.set错表at student list啊student list好,那么求转发request.get requestpat。好,那这个路径我们转化给谁呀?我们说是不是交给这个so student对吧?好了,那其实这个so student刚好就是这个test to,我们可以用它来做,那我们可以改下名字。
07:03
呃,这里呢,叫做。So student。好,那就转发给他就好了,那这个路径是斜杠,斜杠表示的工程名映射到代码的web这个目录,然后呢,叫做chest下的so student就好了。好,那么我们这里呢,我们这里呢,大家注意到他要干啥。他要从注意啊。从cost域中获取学生便利是吧?他要干这个事情?啊,他要干这个事情,好,那么我们到这里面来调整一下,那么我们在JP里面是不是不需要再自己去生成了,而是什么,而是从request.get啊,To表里面获取,那这个P呢,要跟这边保持一致,Student list。
08:05
就这样子啊,来一个类型转换。好,能理解吧,哎,就这个地方OK,就这样完了以后大家注意啊,咱们整个代码其实就写完了。但是大家经常会犯一个错误,什么错误大家注意看我刷新。啊,这个已经改了名字了,他叫。So student,大家发现问题了吗?是不是出现空子的异常?第几行38,也就是这里。为什么大家注意啊,哪怕我们的整个代码都已经写完了,但是我们在访问程序的时候,大家注意一定是从客户端这边先请求,再访问这个GDP,大家记住啊,经常有很多同学就写代码之后直接访问这个GDP,说老师。为什么我没有数据啊,报错了,你想想这个时候你直接访问这个JSP页面。
09:03
你有经过这个色列程序吗?你没有经过它,你的域里面其实没有数据的,也就是大家看,也就是这里是得不到数据,这里是空,一旦这里是空的情况下,大家注意我们根本就得不到我们想要的这个模拟的效果,所以访问的时候一定要先访问这个。啊,好像我们还没有给这个select加地址是吧,你给他加一下那就好了啊,我们复制上面那个改一改就行。咱们说should student。列名手这么改小写,那么我们把它拿过来,大家看,在工程零的后面敲啊,咱们要重启。那记住啊,插没配置完之后一定要重新部署才有效。稍等。啊,这个部署好了,咱们来敲回车好大来看这个结果是不是出来了,哎,这个呢,就是请求转发的一个使用啊,转发的一个使用,那么经常犯的错误就是大家写完之后会直接返回这个GDP,注意不可以。
10:12
一定要从客户端发请求给最后跳转过来啊。
我来说两句