00:01
OK,来,那么接下来呢,呃,我们就来结合上我们以前就是呃,前一天已经讲过的东西啊,然后呢,我们再提需求,再来往后说好,现在我们已经做到了什么程度了呢?我们可以来看一看啊,我先把我刚才的这个WEB02呢,我给他也跑一下,大家注意了啊,首先的话,如果说诶你新写了一个工程,那么你一定要把它先什么呀,加到我们的这个to开里面,明白吧,一定要加到这个tomcad里面去用,明白这个意思吧?啊,如果说你不加进去,你光启动tomca,就相当于tomcad并没有去帮你为这个工程提供服务,那么你肯定是访问不到他的啊,所以说怎么把这个事儿把这个加进去呢?啊,那么你就在这个工程上面也好,或者说呢,在工程里面的某个页面也好,比如说我想访问log,给改个具体没好了,那就直接在这个页面上面也行,都可以理解吧,但是一般的话,我建议大家呢,还是在这个工程上面啊。
01:02
啊来右键有一个run as run so,这个就会吧,来点一下好加进来,呃,那么对于现在这个外B01来讲呢,我们就不要了,对吧,我就把它移掉,那么大家来看,如果你是拷贝的工程,其实这个汤判知道你是拷贝出来的,能看懂了没有,虽然说你叫WEB02,但是呢,他说这个是从WEB01拷贝过来的,它是知道的啊,但这个的话呢,没关系啊,我们只要把那个root的值改了以后,这个地方它是没有关系的,好,然后呢,我们点击finish,点击OK。好,这样的话呢,我们就把我们刚才的这个WEB02呢,就给它加进来了,好稍等一下啊,等它启动成功,OK,那么启动成功以后呢,我们就来访问一下他的这个loging点啊H还记得吧啊想访问到我们的这个登录页面,OK,在这个登录页面里面呢,我们就可以写上我们呢,比如说呃的密,然后的密码正确的是123456吧啊这个是一个正常的一个登录啊,那我们的登录成功,假如说呢,诶我输错密码了,然后呢,登录的时候呢,你看它是不是又回到了我们这个页面吧,对吧?那么这个东西呢,我们是通过转呃这个重地下的方式,我回到了这个页面,但是现在的问题是什么呀?问题是我们没办法再去啊做一些错误的提示,所以说接下来我们要解决的问题就是怎么来解决这个错误提示的问题,明白了吧,OK,那么首先呢,我们需要给大家去讲解的一个。
02:38
技术呢,叫什么呢?啊,我们来看一下啊,我们要讲解的一个技术呢,叫做啊,转发啊,以及我们的JSP页面,那我们需要结合上这两个技术,就能实现我们刚刚想要实现的一个效果,好吧,啊,那我们先说这个JSP页面啊,一会呢,我们再回头再去说这个转发啊,再说这个JSP页面,什么是一个JSP呢?注意它的全称呢,叫做Java server pages,翻译一下什么意思啊,哎,就是一个Java服务器里面的一个页面技术吧,对不对,OK,那么大家从这个意思,从这个名字上就一定要记住了,这个JSP它虽然我们把它叫成一个页面了,但是它是一个实打实的服务器端的一个技术,它是运行在我们的,他开服务器里面的,它可不像那个HTML能明白吧。
03:38
这时我们也把它叫成页面了,但是呢,它是一个实打实的服务器端里面的一个页面技术,OK,这个大家一定要记住了。那么为什么我们把它称之为一个页面呢?因为从我们这个编写或者说使用角度上,我们感觉它更像是一个页面,因为在这个里面我们可以去编写什么东西呢?我们可以去编写HTML的。
04:06
网页代码可以写我们的Java代码,明白了吧,当然还可以有我们的这个JSP的一些什么标签等等等等一些,所以说呢,怎么去理解这个GSP页面呢,说白了它就是在我们的HTML这个基础之上啊,就这里面呢,我可以写你HTML所有的东西。然后呢,我还可以出现我的Java代码,所以说这个Java代码是我们要去使用的一个东西,理解了吧,OK,就是这样的一个技术啊,OK啊,那么首先呢,这个JP页面呢,它是以一个点JSP来结尾的一个文件啊,以点GSP来结尾的一个文件啊啊那么其实本质上呢,大家注意啊,这个G界面它本质上就是我们的一个solve。
05:00
它本质上就是一个solid,而且它在运行的时候,它也会转化成我们的solid去运行,这个一会我可以带着你去看理解吧,诶,我可以带着你去看的啊,它会转化成一个sorry的运行的好,但是呢,那你说你也是一个sorry啊,我们之前讲过的那个也是一个sorry者,那你你们之之间有什么区别啊,大家注意了,GSP呢,它更加善于处理我们的。页面显示,那他更善于去做这个事儿,而这个so呢,更加善于处理这个业务,对吧?那么其实我们在具体使用的时候,我们是要把它们两个结合起来去使用的,一个处理业务,一个专门去专注于你这个页面的一个展示啊,所以说呢,我们在加入外B阶段,其实我们主要的开发呢,就是一个solid加JSP的一个开发,这才是我们真正的一个啊,写项目的时候会用到的一个技术,So打JD,一个专注于页面显示,一个专注于你的业务处理,听懂了吧,OK,好,那么这些知道了以后呢,接下来我们来看一下GSP的一个基本语法,你怎么去写出一个GSP页面来呢?大家注意你从这个啊,这个可能看不清楚了啊,但是我们可以大概的来看一看这个,你看一下好像感觉就是一个HTML吧,看到没有,这这不都是我们的HTL的代码吗?是不是,但是注意了哈,在这个。
06:26
的基础之上呢,它多了一个GP的一个声明,明白了吧,这是我们GSP页面的一个声明,然后呢,其实这个里面呢,我还可以写Java代码,只不过我们有把它写出来而已,一会儿我们在用的时候会把它写出来的,明白了吧,OK,那么我们怎么去写出一个GSP页面呢?大家注意哈,这个你就千万不要再去手写了,因为什么呀,因为像这个声明的这个东西,像这个什么dog tap这个文档类型约束这些东西,哎,你就不好去写了啊,你就直接什么呀,在我们的eclipse里面把它创建出来就可以了。好,那接下来我们就来给大家去先简单的演示一下这个JSPOK,那我就这样吧,我们回到我们的WEB02里面,我们在这个web content下面注意了哈,Web content下面我再去新建一个什么东西啊好,现在我再去用的时候呢,我就要去找一个叫做JSP的,看到了吧,是不是有一个JSP。
07:26
大瓦,OK,那我就创建它啊,来下一步,然后呢,我叫什么名字呀,我就叫index加,看明白了吧,我就叫index加TOK来下一步好,然后直接分就行了,好那你来大家来看一下,现在我创建好的这个东西呢,就是我们的一个JSP页面,当然了啊,这里面呢,有一些不好的地方,比如说像这个编码,你看它都是用的什么呀,ISO8859杠幺的,看到没有对吧?那这个东西呢,大家应该都知道它是不支持中文的吧,是不是啊,所以说呢,我们希望把它改一下啊啊那么你可以在创建出这个页面来以后呢,手动的去把它改一下,怎么样的手动的改呢?啊把它给删掉,改成utf杠八会改吧,OK,那么要改的话呢,我们就得都去改,那你想一下,如果说我每每次我创建一个页面,我都要做这个事儿,是不是也挺烦啊,是吧,OK。
08:26
这是我们的第一种修改方式啊,那么这个我们是不推荐大家的,所以说你看了哈,刚刚创建的这个index改掉。啊,接下来注意,我希望我在创建的时候,你的编码就是utf杠八的,那么我们需要提前做一个设置,在我们的window里面有一个pro,看到了吧,在这个里面呢,你也不用挨个去找,你就直接搜一个JSP就行了,搜出来以后呢,在这个位置有一个GSP fair看到了吧,OK,点一下,然后呢,注意这就是它默认的那个编码,你看一下是不是ISO8859杠幺,那我只需要把这个位置改成我们的UTF杠八来,注意在这个地方啊,ISO10646其实就是我们的UTF杠八。
09:12
明白吧啊,这个大家知道吗?什么10646啊,我不知道是吧?OK,来吧,改成我们的U加杠八啊好,那么改完以后呢,我们提交来提交并关闭,接下来我们再到我们的web counter下面去用一个JSP好叫做什么JSP file来下一步我们还叫做inex x6JSD啊,看到没有,还叫以EXJSD啊刚才我这个操作比较快哈,看到了吧,OK,那么现在我再把它创建出来了以后呢,你看一下它的编码默认是都是UTM杠法了,看到了吧?OK,这样的话呢,我们就不需要再去手动的去更改,好那么简单的给大家去解释一下啊,像这个东西就是大家现在所看到的什么监括号,百分号,一个艾特符号,这个呢,就是JSP的一个什么呀,声明啊,它就是JSP的声明,那么这个东西呢,我不给大家做过多的一个解释啊,就是我们后面的话呢。
10:13
也会用到一些声明,就是大家只需要把我们用到的东西能记住就可以了,而现在的话他是什么意思呢?你看他只是声明了我的一个语言是Java语言,然后呢,我的contact type呢是一个TH-L叉赛UTF杠八,然后呢,我的配置encoding呢是UTF杠八,就是我的页面的编码是一个UTF杠八,看到了吧,就是基本上这些东西你能看懂就行了。啊,呃,下面这个do tap呢,它是一个,呃,其实这个东西的话呢,我们在这个HTML里面也应该有,但是呢,我们省略了,没有给它写出来,这是一个什么呀?Do tap什么意思啊,文档什么类型吧?哎,文档类型明白了吧,就声明一下,你这个文档类型do tap,那么像后面的这一堆,我们肯定是不能手动把它写出来的,你要能把这些东西写出来啊,也是够厉害的啊,对不对,这个东西我们不需要去记的啊,不需要去记,那么再往下看一下,这个东西就是我们基本的什么了,就是我们的HTML的东西了吧,对不对啊,诶,就是我们HTML的一些内容了啊,大家能看到这个ma里面的话,我们呃之前在这里面写过什么呀,写过一个叉赛的是吧,应该是写过这个东西啊,对吧,但是呢,他可以通过一个content呢,去写的更加的详细一点啊,就跟我们之前写的那个是差不多的啊,其实差不多的啊,然后呢,呃,下面的。
11:37
就是我们的title title的话呢,其实说白了就是给你当前的页面呢,来做一个标记,你看了哈,啊,叫做title here,那比如说呢,我就改一下吧,叫做什么呀,My fast JSP什么呀,Page就是我的第一个JSP页面,那么大家一会可以看一下这个东西有啥作用啊,就是一个页面的一个标题而已,理解吧啊,那么下面这个body底什么呢?我就不再解释了啊,那么大家现在我们能看到的是什么呀?我们能看到,诶你这里面有HTML的代码,那么Java代码在哪呢?注意我们Java代码我们可以怎么写呢?一般的话呢,我们都会出现到这个包里面啊,我说的是一般你可以不出现在包里面,理解吧,你看了哈,我可以在这里面去写我们的Java代码啊,那么对于这个Java代码的话,我们有两种方式啊,一种就是什么呀,Java片段啊,另外一种什么呀,就是一个表达式啊啊。
12:37
我们可以写两种,怎么写呢?对于这个Java片段来讲的话,我们要通过一个加括号,然后呢,百分号,哎呀,不行了啊,这个拿出来吧,我直接写到这啊,你看了哈,就是我们的Java什么呀片段啊,那么你要怎么写呢?就是加括号,百分号,然后在这里面就去写你的Java代码就行了,你比如说我定义一个这个东西啊,你看我就写一个什么呀,随便写的啊,字符串的str等于一个ABC吧,ABC就好了是吧,来ABC你看我就这么写的,能看懂吧,那么这里面我就可以写一个你看了啊,System so,我来输出意一下啊,这个可能提示的不是很好哈,那我们就手动写吧,System加off.french LN我就可以输出什么了,ABC你看到了吧,这就是我们的一个什么Java片段,你这里面详写什么加va代码?
13:37
你都可以写什么加va代码啊,这是一种,另外一种呢,还有一个什么呀,就是我们的呃,表达式,表达式怎么写呢?它这样的就是一个加括号,百分号等号,那么你等号后面写的东西呢,就是必须要能得到一个结果,明白什什么意思吧,就是你不管写多长的代码,它只是一个表达式,最终的是有一个结果的,能明白这个意思吗?啊,比如说呢,哎,像我们这个写个啥呀,我想想啊,我们写个呃。
14:09
比如说呃,写个这个东西吧,比如说五大于三吗?问号如果大于三的话,那我就输出一个什么呀,哎,比如说大于,如果不大于的话,我就是写一个什么呀,小于,你看这个是最终有一个结果的呀,能明白吧,哎,这就最终是有一个结果的啊好,那我就把它写到这,这就是一个表达式,就是前面呢,我们要有一个什么等号,好,那么金像这个东西我就写完了,你看一下,现在我们就已经相当于把这个HTML相关的东西,然后呢,以及我们Java相关东西都给它写到了一个JSP的页面里面,那么接下来我们要研究的就是这个家伙怎么执行的。是吧,诶JS页面是怎么执行的呢?大概的给大家去解释一下啊,我来解释到下面吧,我先解释一下,然后呢,我们再通过具体的代码带着你去看,就是JSP页面的一个这个执行原理,呃,它是一个什么原理呢?大家听我说啊,就是首先大家需要记住这样的一个结论啊,就是JSP本质上就是一个so能明白吧,他本质上就是一个OK,那么他是怎么执行的呢?诶他会什么样执行的时候,哎会先什么呀,会先转化成一个什么呀,Java文件就是一个什么一个呀,Java文件再编译成什么呀,哎再编译成编译成什么东西啊,诶一个点。
15:52
啊,文件啊,这就是我们GPGSP,它一个什么执行原理,那么你在转化成一个点Java文件的时候,这些Java代码你转化过去,这是没问题的是不是啊,但是我这里面的HTML的代码,你怎么给我转化成Java代码是吧?所以大家注意了哈,它是这个样子的,在转化的时候,呃,如何转化呢?大家注意怎么转化呢?就是呃,加va代码片段,哎,照搬什么叫的照搬啊,就是你看这不是你的一个JS页面吗?这是我将来要转化成那个Java代码,就是那个Java文件理解吧,像你写的这一部分内容呢,直接照搬过来就给你放到这儿了,听懂了吧。而像我们的HTML这些东西呢,它是为什么呀?它会通过out,知道大家还记得什么叫做out吗?就是那个输出流,它会通过输出流点。
16:52
Write调用一个方法把这个给你往出写,听懂这个意思了吧,然后另外一个像这个表达式呢,也是往出写的啊,所以说呢,大家都记住这个结论,Java代码片段照搬,然后呢,像我们的HTML的,像这个什么CSS的,以及我们的什么呀,这个什么JS的等啊等啊,就是什么呀,呃,GS,呃,然后呢,还得加上我们的这个啊表达式是吧,表达式OK就是什么啊,通过我们的输出流就是这个art.right往出写啊,Right方法往写好,那我先把这个给大家去解释一下,那么接下来我们就来实际的运行一次,OK,那你看啊,其实我把它取名叫做inex.gsd还是有一个目的的,什么目的呢?大家注意现在。
17:52
你看好了哈,我都关了,然后呢,我再重新运行我的这个项目,看到了吧,重新运行啊,大家来观察一下有什么不一样的地方,直接出来一个大雨,看到没有,是不是出来一个大雨啊,对不对,你还得看这个地方的呀,ABC出来了没。
18:16
哪来的呀,是不是说出来的呀?OK,你还能看出来一些区别吗?我们之前启动服务器的时候,你总是给我一个404页面吧,但这一次为啥没了呀?那么大家就去想了哈,我肯定说过这样的话,我说他会去找一个默认的页面,而只不过那个页面我们没有给他,那现在你知道哪个默认密默认页面了吗?他要找的那个默认页面就叫index JSP,只要你把这个页面写出来了,那么它启动以后呢,它会自动去访问我们的index JSP。
19:02
理解了吧,那么这样的话,你看一下,对于我这个index JSP来讲的话,我这里面写的什么东西呢?我们来看看,首先这个它就是一个Java代码吧,那么它是把这个ABC就给你输出到这个控制台了,以及像这个东西就是一个表达式,那么这个表达式的话呢,它就直接给你显示到什么页面中了,那么这个时候我们能看到你Java相关的,那比如说呢,在我这个包内里面呢,我给你来一个这个东西H1是吧,我让你感受一下这个HTML是不是也能给你显示出来啊,比如说等于什么呀,我们也是给他什么居中一下啊,比如说我是HTML代码看到了吧,OK,那把这个写完以后呢,诶我们其实呢,我们需要重新启动服务器,但是呢,因为这个JSP它其实也算是一个页面吧,我们之前说过页面修改了以后是不需要重新部署的嘛,对吧,你直接访问就行了啊,来到这儿我直接来访问一下,看到没有。
20:02
是不是出来了对吧,所以说大家一定要记住这个结论,什么结论呢?就是Java代码片段是照搬过去的,然后呢,像这种表达式,像这种HTL的代码,它是通过流的方式往出写的,那么我就来给大家去看一下它底层的这个处理啊好,那么现在我们要去找谁呢?我们要去找到这个东西,来找到我们的部署目录啊,来找到我们的部署目录,然后呢,在这个里面呢,我们去找一下,我看看哈,呃,首先我们能,哎哟这个地方,这个地方看不到了啊,我得去找那个谁了,注意哈,这个地方我们看不到了,那我找谁啊,听我说了哈,找他看不到啊,我因为它是一个临时性的东西,所以说我们要找的是来汤姆。呃,我的tomca在E盘下面看到了吧,然后在这个toca里面有一个work看到了吧,Work文件夹在work里面呢,有一个catalina啊啊,大家知道这个catalina是什么吗?啊,这个感觉上是一个人名吧,是不是人名吧?啊,你们知道这个故事吗?
21:13
不知道是吧啊,这个做汤mca的这个人啊,把他的情人的名字写到了这叫做catalina是吧,一听就肯定是个美女是吧?啊,来吧,Local house再进来,诶进来以后怎么我看看没有啊,没有他会在什么地方呢?呃,稍等一下啊,那我看看这个位置在。啊,在这个位置了啊,还是找到我们这个,他看里面就是呃,不要去找你外面的那个了啊还是呃,通过这个地方进来啊,来还是通过什么从这地方来找到我们的部署目录进来以后呢,你往上翻啊,我们得去往这个WTP外b abbs这一层路径下面,你看啊TEMP0来到这个位置理解吧,来到这个位置以后,你看是不是也有个work呀,对吧,我们就是找个work work里面来看Lia local ho,你看是不是有个WEB02啊,对吧,在WEB02里面大家注意了,有一个org阿帕奇JSP里面,你看一下有一个index jsp.Java这不是我们写的吧,这就是那个index页面转成的那个Java代码,来吧,打开看一眼啊,啊,这是家帮你转好的,那那么其实它本质上的你看了哈,本质上它就是一个我们的solve,明白吧,它本质上就是一个solve啊,只不过呢,呃,我们它这个名字什么的呢,跟我们想的是不一样的啊,但是他们都是一个体系理念的那。
22:40
再往下看哈,我们主要是看谁啊,看我们的相关的东西,你看这里面也有什么service方法,对吧?你看好了哈,我在所有的那个就是在我的这里面写好的HTML相关的东西,大家注意像这些这些这些这些这些是都是HTML相关的,那么你能看到的是它都通过out right,你看是不是往出写啊,看到没有,而这个out right跟我们用的那个out.print LN道理是一样的,都是往出写流的一个方法吗?能听懂吧,那么就相当于这些东西将来是不是就会被写到这个客户端了呀,对吧?而我们写的Java代码呢,你看是不是给你照搬到这了,看到了吧,你怎么写的,我就给你照搬过来,听懂这个意思了吗?OK,另外呢,你看一下像我们这个表达式,你看是不是也是通过这个硫的方式往出写的,看到了吗?对吧,这就是一个三步运算,可能也是通过硫的方式往出写的,然后呢,像我们写的这些注式什么的。
23:40
你看到没有,都是通过流的方式给你往图写的,明白了吧,OK,好,那看完这个以后呢,我来问大家一个问题。你说这个JSP到底有啥用?它解决了我们的非常痛苦的一个问题,你来想想,能不能想得到解决了一个什么问题,是不是帮你把那个HTM页面的东西写出去了,对不对?比如说我现在还想给客户端写出一个登录页面去,我还需要自己通过up这些project LV网速写这一类东西吗?需要吗?不需要吧,我是不是只需要把我的原来的那个HTML页面给它换成JSP页面,然后呢,再把那个登录页面里面的东西通通的都给它放到那个JSP里面,它是不是就能帮我自动的把这些东西写出去了,能明白了吗?能听懂这个意思了吧?哎,这就是我们JSP的一个作用,所以说它本质上是一个solid,但是呢,它更加适合于页面显示,原因是什么呢?
24:58
原因就是它能帮我们自动往出写东西,你看一下嘛,你人家写的这个东西跟我们第一天写的那个,我再让你去瞅一瞅哈,你来对比一下有区别吗?你看看就这些,它是一行一行写的,我只是因为麻烦,我就把它统一拼成了一个字母串,统一写出去了,那你把它换成一行一行写,跟那个一样吗?一样的,听懂了吧,所以说这个GSP到底有什么实质性的作用呢?大家注意了啊,我们使用GSP的作用啊,就是什么呀,它有这么几个作用,第一个作用呢,就是什么呀,哎,可以什么呀,自动的将我们的HTML相关的这个代码,通过什么浏的,通过流什么写到我们的浏览器端,这样的话呢,就我们不需要再那么麻烦了,明明白了吧,另外一个就是什么呀,支持写什么呀,诶支持写Java代码,我们就。
25:58
会做一些什么啦,业务处理了吧,哎,支持写Java代码,那就什么可以啊,哎,灵活的做出一些什么呀,做出一些啊这个这个处理明白了吧,所以说这才是我们GSP它真正的一个作用,明白了吗?以及它怎么执行的,你现在能理解了吗?怎么执行的呀,不就是先转化成一个点加va,再转编译成一个点class文件吗?然后本质上它就是一个solve程。
26:28
听懂了吗?同学们,OK,好,那这就是对我们JSB的一个简单介绍。
我来说两句