00:00
我们来学习GSP剩下的几部分内容,第一个JSP指令。什么是JP指令呢?新建一个动态的外部工程。对,31吧,Next next。好了,我们来建一个JP。a.T。来看这第一行和第二行必须照GSP指令,那其中怎么样是以这个百分号,呃,监控号百分号X,然后在这个里边呢,我们打一下啊,大家可以看一下。
01:04
Out,斜杠你看一共是有三个指令,分别是include,配置跟packable,我们就来学习这三个指令,其中最后一个指令呢,是需要导入标签库,这个我们来学习自定义标签或者是GSTL的时候再详细讲述,所以说今天讲的呢,只有配置跟include。好了,有一个直播印象啊,这就叫JSP指令。JSP指令是为JSP引擎而设计的,它并不直接产生任何可见的输出,而是告诉JSP引擎如何来处理JSP页面的相关部分。相当于怎么样我向引擎发了一个命令一样,基本语法的话呢,就是百分号at就是指令,刚才我们看到的配置,然后是属性名等于值,我们看是什么,比如language,这是一个属性语言,是Java content type,内容类型是什么?是这个text HTML,然后呢,叉set编码是UTL8配0CODING页面的编码也是UTL8,这就是一个典型的配置指令。
02:27
呃,属性部分是属性名,部分是大小写敏感的,在目前GST2.0里边的话呢,有这个配置include table这三种指令,每种指令都定义了一些各自的属性。如果在一个G的界面中设置同一条指令的多个属性,可以使用多条指令单独设置每个属性,也可以用一条指令。设置多个属性啥意思呀?
03:01
看这个吧,这个是什么呀?这个的话呢,我们是配置指令来设了两个属性,这是不是分了两个配置语句啊,这个就是一个配置语句,所以说我这个的话呢,我也可以分开,就是这个意思。如果你这个要是很长的话,你就可以分开,不是特别长的话,你就可以不分开配。刚才那个叫coding。UTF杠八,哎,这是两条配置指令来定义了三个属性,你也可以像刚才那样,一条配置指令来定义三个属性。好吧,先来看一下这个配置指令,配置指令。用于定义JSP页面的各种属性,无论配置指令出现在GP的什么地方,作用的都是整个的GP页面。
04:05
为了保持程序的可读性和良好的编程习惯,我们建议把配置指令放在整个GDP页面的起始位置,就最开始你放那个配置,通常情况下的话都这么卖。啊,完整语法,那配置指令里边的话呢,有很多很多属性,但是有一部分属性几乎都用不到,我们只是做一个了解就可以了,看第一个language Java。什么语言是Java?这个特别可恶哈,为什么呀?Language是Java?叫当前页面可以使用的语言是Java,那感觉上是不还可以用其他语言呀?但是Java是唯一的合法值。所以说这个属性几乎起码到目前没有任何价值。
05:01
你就像以前那个伊拉克是吧,说哎,我们是民主的,我们这个总统啊,是选举产生的,后边有一行小字是吧,但是唯一的合法,合法候选人就是萨达姆。我们这个里边说,我们这个J面可以使用很多语言,Language等于多少,但是唯一的这个合法值就是Java。一个意思啊,第二个extend extend啥意思呢?就是说我当前的这个JSP翻译之后那个so可以继承哪些类。我再说一遍啊,当前的这个。So。啊,当前这个JSP被翻译成service原文件之后,那个service service类要继承哪一个类没有没有任何意义,所以说平常我们也不用它import,需要说一下import是什么呀,我需要导入哪些包。
06:04
看import简单的说一下。比方说我们前面说的,哎,Import加va,点点eight,我这样导完之后我怎么了,我就可以在这个里边来使用这个it类了,否则是用不了的,Date等于new date就是这个意思。导入哪些类,那我再写一个。比方说data for match off,斜杠啊回车,你看它自动的给我们导进来,就这么导的。好了,那有一些包的话呢,是不用倒的,哪些不用倒啊哦,我这先写上吧,虽然说我不用了啊,哪些不用倒啊,比方说我想用这个http request。
07:03
哎,我们发现。这个就没用到,那这个为什么没用到呢。因为大型的JSP会自动的导入一些包,导入一些类,哪些类哪些包呢,怎么看呢。直接run run server。打开。跑起来,我们去看什么,我们去看当前JSP对应的那个so就知道了。好找到当前JSP对应的地盘,CA work catalina of host。找到DAY31。哇,G阿帕奇JP对稿打开。嗯。
08:03
大家看它导了什么呀,是不是自动的导了这些包啊,什么Java X JA X http Java X serve.jp这些包是自动导的,这两个是我们自个导的吧,所以说这些包里边的类不用再手工导入了。我们不用去记它,你只需要知道有这回事就可以,什么叫不用记它,你在用一个类的时候,如果这个类它不识别,你就导一下呗,如果识别的话,是不是不用倒了,所以说你不用去记它倒了哪些东西,没倒哪些东西,只不过我们说一下。过来。Session是true或者是false,它指的是。当前的JSP是否允许使用session?我打红线的部分都是比较经常使用的,就使用的频率呢要高一些。session是true还是false?表示当前页面是否允许使用session?
09:10
看,看来我目前这个隐含对象3.getid,这肯定是可以用的来。嗯,我们去表达是吧。当前绘画的ID号,这个具体含义的话呢,我们后面会讲为什么会有这个ID,先看一下效果。哦,能搞到好了,我这么写说我不让你用session了,不让你用三了,配置section是看着啊Bo。保存出来。看,这个时候说将不再让你使用三身这个隐含对象,就是这个意思。
10:04
这个嗯,意味着如果要是加上这个指令的话,不再让你使用当前。页面里边的session这个隐含对象。好了,后边我们也重要的说了啊。Error page error page的话呢,这个我们说需要说一下这个它对应的是什么呀,那对应的是is error page。这两个,那我们这前面什么时候提到过这件事啊在讲。九个隐含对象,其中有一个叫exception,我们说exception的话呢,放到后边来讲,就这个时候说说一下这个error page跟is error page。看一下error page跟is error page,那我写一个。嗯,这是a.JSP这也可以哈,我在这个页面的话呢,我来写一个inch I等于十除以零好了,我这样写,写完之后我刷新的时候它会怎么样,是不是给我出了一个错误页面啊。
11:17
叫500内部错误,什么错误呢?能看到是吧?是不是抛了一个数学异常啊,原因是因为by zero除以零了,那如果我们给客户这样一个页面的话,那客户一定会非常非常不爽,哪怕你给他一个页面是一个友好的告诉他出错了,那也比比也比给给这个页面强,给这个页面的话,比方说经常出现这样页面的话,人家是会弹的是吧,你们水平行不行?好了,那如何避免这个问题呢?当然我们可以在写程序的时候避免这个问题,那还有的时候啊,有一些像网络方面的问题,不是我们自己能够主导的。
12:01
比方说当时网络中断了,我去这个连数据库服务器连不上了,怎么办呢?哎,我想说呀,我这个页面出错的时候呢,我不想直接给你这个不礼貌的响应页面怎么响应呢,我想。我想给你一个礼貌的错误页面,我就告诉他一声,错误页面是什么?Error配置,比方说是根目录下的errorl.JSP,好了,我写一个CTRLC保存。过来。H4。诶,这是那个错误页面好。再刷新,大家看是不是在这个页面了,诶,这就是error page的作用。
13:12
这个就是配置的作用,看到什么呀,我指定了一个错误页面,如果当前页面要是出错的话。GI引擎会自动的把这个页面来作为响应页面,那好了,既然说这是一个错误页面啊,那这个页面里边我可以写一些信息,同时呢,这个页面里边我想知道那个错误是什么呢。哎,这个时候我就需要使用一个隐含对象叫exception,既然我是错误页面的话,我就说吧,我是错误页面。It's our page等于to,这个时候我们就可以来用exception这个隐含对象了。点GA来error。
14:07
保存再看。不高啊,By zero啊,哎,这就是error配置跟e error配置我们也看到一个特点,什么特点呢?我显示了一个页面是f.GP吧,但我这个地表是谁呀?是不是还是a.GP啊,所以说它内部是一个。转发的机制。是一个转发的机制,那好了,那为什么是个转发的机制呢?你想是吧,如果我真的直接反问艾GST了,它会怎么样?我要回收会怎么样?是会出现一个异常,什么异常。是不是控制针异常,能理解吧?虽然说我这个页面呢,Except可以用了,但我现在那个except是不是空啊,所以说。
15:06
你这么一搞,这个家伙是闹,你再看。这个家伙是no no好了,但是我要是访问a.GP的话,你跑你看这是不是就是正儿八经的一个数据异常啊,哎,所以说这块是个什么呢?这块是一个实际上内部用的是一个转发。好了,这个是我们说的error配置跟E配置,我们来做一个笔记。no.TXT,刚才我们讲了一个叫配置。实际上整个的话呢,我们讲的GP指令哈,GP指令来。我回翻一下,看一看,JSP指令指的是什么?JSP指令呢?是为GSP引擎而设计的,它并不直接产生任何结果,而是告诉引擎如何来处理GP页面的相关部分。
16:11
这就叫GP指令,我们这个概念呢,了解一下就可以,我不用去记它。知道这个就可以,然后我们重点需要知道的是什么呢?重点需要知道的就是我们有,嗯,当前情况下有三种指令,分别是配置include跟T。CTRLCT,这是我们目前需要知道的,还有page include跟panic。而我们目前学的是。治病。配置。指令好了,关于配置指令第一个。咱需要知道的是配置指令呢,用于定义JSP页面的各种属性,无论这个指令出现在哪,作用范围都是整个的GSP页面,我们通常情况下建议把这个指令放在GSP页面的开始位置,哎,这个还是需要知道的。
17:23
无论在哪作用的都是整个的GI的页面,那建议大家把这个放在GI值页面的起始位置,这就是配置指令。好了,那配置指令。常用的属性,我们说几稿一稿。第一个我们拿过来看啊,刚才我们看到呢,哎,我们刚才讲了一个import,这个需要说一下。Import指令import的属性啊,指定当前JP页面对应的导入。
18:11
需要保张类,这就可以了。那这个基本用法呢,在这块我们已经写了,这就是这就是一种用法,CTRLC过来。就这么用来二。又指定了一个什么呀,Session属性说一下取值是true或false,取值为处或或什么指定。当前,当前页面的。Session隐行。
19:03
变量是否可用,后边的话呢,我们还会再说一种说法,也说明什么呀,也可以说明,也可以这么说,也可以说,也可以说访问当前页面时是否一定要生成HTTP。单身对象。哎,这个的话呢,我们在后边还会来讲这个事儿,就是有的时候啊,我访问这个页面的话,我不一定让服务器一定给我创建一个session对象,因为创建的这个session对象的话呢,是要耗资源的,那我要是一下子100万并发的话,这个session是会非常非常大的。这个在后面三的时候呢,我们还会提及一个常用的。
20:04
就是这个叫什么来,就是一对啊三。Error page和is error page,诶这两个的话呢,我们刚才都用到了刘云考一下啊。C、拿过来。好,L配置跟E配置有什么用呢?说呀落配置。I指定。RA。当前页面出现错误。的实际响应页面是什么?就就这么用,其中里边有一个。
21:09
斜杠表示的是当前web应用的根目录,OK,写法的话呢,这么写。嗯。嗯。是啥意思啊,指定当前页面是当前页面,要是出错的话,我就直接去那个给你响应那个根目录下的error.gp。这样就可以了,那好了,那还有一个呢,还有一个叫is our page is our。指定当前页面是否为错误处理页面。实际上。
22:02
是不是错误处理页面,这个不是主要的,主要的在后边。可以说明当前。页面是否可以使用conception隐含变量,这个是主要的好了,但是呢,有一个需要注意的是,需要注意的是需要注意什么呀,说若指定。Is error page等于true,然后的话呢,你也使用它,使用并。使用方法一般。
23:00
不建议不建议啥呀。吴建。能够直接访问。该页面为啥不能,为啥不用不不能直接访问呢?这是不是一个错误页面啊,你直接访问的话,比方说我这个里边最大的问题就是你直接访问的话,刚才我这块1.getmessage是不是出异常了。这个不好,另外的话呢,错误页面也只有在出错的情况下才让看。好了,看到这块的话,我们是这样一个建议,那同学说我怎么样才能够不直接访问这个页面。多学点哈,看下一个说那我怎么样。才能让用户不直接访问这个页面来。如何使。
24:01
客户不能直接访问。某一个页面呢。好了,那我正常情况下的话,我只要放在这个web count的下边,我是不是都可以直接访问呢?能理解吧,那我现在的话呢,我给它放到了。外部下。好了,我放了,大家看一看,先写一下啊。下边的。Error加JP是访问不了啊,是告诉404可没没发生这控制异常啊,四乘四这个页面不能够直接访问,所以说我们说一般情况下。对于comp派吧,对于方派服务器而言,外部。
25:00
下的文件是不能通过。浏览器在。浏览器中直接输入地址的方式来访问的。为啥嘞,为啥嘞,因为我们讲了说呀,这个页面上面放的是不是都是我的一些隐私文件,比方说web XL,比方说lib,你外边直接访问的话就乱套了,所以说这个页面的内容通常情况下是不让直接访问的,你也不能直接访问。那我要正常访问怎么办呢?我们说通过转发是可以,但。通过请求的转发是可。
26:00
是可以的诶。好说通过请求的转发是可以的,于是的话呢,A出错那个页面在这。外b info。斜杠再看我来访问A点刷一下是不是来了呀,为了看的确是这个页面,我来加个标记。保存。这是可以访问的,这没问题哈,嗯,这样可以,当然我们这块笔记里边的话呢,我还需要来记一个点。说。别着急吧。怎么记呢,说哎,我这个时候的话呢,我会响应这个f.GXT,然后呢,在。为什么呀?在响应error.jp时,GMP引擎。
27:09
就是他们看的服务器吧,Service容器吧,使用的是。请求。转发的方式是这样吧。什么叫请转换方式啊,你看我来这块的话呢,我访问的是不是A呀,给我来的是这个吧,所以说它是请求转发的方式,然后的话,我们说这个页面上的文件不能够直接访问,但通过转发可以吧,于是的话呢,这两个怎么样就放在一起就就顺畅了,所以说通常情况下的话呢,我们把一些隐私文件。或者说一些不让你直接访问的文件。放在外部音。不让你直接访问的,放在这个下面,然后我通过转发过来就可以了,这就是诶我们这块要讲的几个基本特征。
28:01
好了,我们讲了跟is。再来。后边还常用的话,我就直接说了。这个需要说一下。Content type指定的是当前页面的响应内容,而且还可以指定这个字符编码。三四。是下一个叫指定。当前GSP吧,GSP页面的响应卫星那会比较奇怪是吧,诶你怎么gfp页面不就这个页面,它怎么会有响应类型呢?啊,咱看这个他咋写的啊,看content type翻译一下,大家看它实际上调的是不是这个方法。
29:03
它实际上是调了response set content方法,实际上我指定我想要的类型是什么,实际调用的是。实际调用的是什么呢?哎,是它。那那好了,那我前面我们讲过一个说呀,我如果进行响应的时候,我告诉你啊,诶,我想应的是一个,比方说我想想要的是一个这个,嗯,Do一个word文档,我就可以来指定写一个。Application啊。是这么想。记不住的话怎么办呢?去看comca服务器,Comca的服务器con公路下有一个web X文件,把这个文件打开。
30:07
好,CTRLF去找。F3。啊,过了啊,微软的MS。CTRLC。不来。注意哈,我指定了想要的方式呢,是这个word文档的方式,然后呢。我用IE给他打开。大家看是不是让我打开一个a.do呀。那我们前面我们用Chrome的时候,你发现怎么了,直接就下载了吧,哎,这就是我指定这个,那这个的话呢,通常情况下我们必须说一下啊,通常情况下。
31:13
通常情况下,因为我们毕竟JP嘛,是吧,对于GP页面而言,其取值均为。这个XHTML分差就够了,通常情况下我们都这么写。那同学说我这是一个JP,你看我想的是不是HTML啊,这意味着我这个JSP被service引擎所这个呃,编译之后响应的实际上是一个HTML,所以说的话呢,虽然说你通过这样的方式访问的是一个点GSP哈,但是你在客户端能看到的。就是一个。
32:00
标准的HTM,从这里边你看不见那些账号零代码吧,也看不见那个配置指令吧,哎,这就是content type的作用,而这个的话呢,是指定你返回那个页面的字符编码是什么。你看你返回这个页面的思维码是什么,来写一个set指定返回的页面的字符编码。是什么通常取值?目前通常取值为优先杠吧。好,五。常属性,再来一个。差不多了啊,这个配顶扣顶。
33:02
什么指定就是指定。当前JP页面的字符对吗?然后呢?通常情况下该值和和什么呀?和content type中的那伽一致。基本上就是一致哈,你有什么情况下说当前这个页面的编码跟前的那个编码不一致的,所以说这两个通常通常都是一致的,好了最后一个六。六还有一个意思。E ignore指定当前页面是不是可以使用表达式?指定当前JSP页面是否可以使用EL表达式,这个呢?在我们后边学EL的时候,我们也会来演示通常取值,通常取值为处一定是可以使用的。
34:18
好了,我们归结一下还有哪些,第一个import,那我当前这个GP有的时候可能需要用到一些类,这个时候我可以使用这种方式导入我需要的类。Session指定当前页面是不是可以使用session,即我在访问这个页面的时候,是不是要产生那个session对象,通常情况下为true,也有的时候呢,False这个的话呢,我们讲section的时候,函数应该说。Error page跟is error page error page指定当前页面,如果要是出错的话,我用哪个页面来进行响应,其中这个斜杠代表的是当前外部应用的根目录。
35:04
然后的话呢,我要是去想要那个error配置的话,JSP引擎采用的是请求转发的方式。就是说哎,我这块的话呢,我想要的是这个,嗯,a.JSP但是我这块地址栏是不是还是a.JXP啊,我只发了一个请求内部进行转发,我们不知道,反正就是我还真以为我想应的就是a.PP然后这个页这个页面的话,你给我进行处理了,实际上想应的已经是。I点这样的屏。好了,EL配置指定当前页面是否为错误处理页面,实际上的话呢,更重要的是我要指定这个为true的话,我在当前页面可以使用。Exception隐含变量。但是我们通常情况下不建议直接访问这个is error page等于true的页面,因为这是一个错误页面,你直接访问的话。
36:04
嗯,没有这个必要是吧,而你,而且你直接访问的话,也有可能会出现一些比方说控制人异常。所以说呢,我们往往希望把这个页面给隐藏起来,不希望用户直接访问怎么办呢?诶,对于淘开的服务器或有些服务器而言哈,Web iner上的文件并不是可以直接进行访问的,但通过转发可以,然后的话呢,我就把这个is our page置等于处的这个页面直接放到web INF下,我error page置直接去访问就可以了。这块再说一个,还有还有一个还可以再。b.XL文件中配置错误页面,它可以这么配,怎么配呢?看着哈,这个我不指定了。
37:02
所以这我不指定,然后呢,这个还打开直接问怎么样出错出错了,好了我来配置一下说呀,在这里边我可以配置。I can。第一个our code出现那个错误,我的错误是几啊?是不是500呀。500,凡是出500的话呢,我就去。Location,我就去web INF目录下的error点点P保存服务器重启一下。再看。初就好了,这也是可以的,那这块的话呢,它会提示我们出这个错,这个不要紧啊,这也是可以的,那好了再回来再看,我除了能这么配,我还能怎么配啊,还有一种配的方法,看这个。
38:10
Error来,Error error exception time可指定一个什么出的异常是什么,CTRLC过来来。访问一个location。Y方in方下的a.DSP这块的话呢,我指定一个404说我如果要是没找着这个页面的话,我去一个。Hello,点编P吧。Hello,点来。H4 hello。Hey,保存。再来。
39:03
服务器重启一下。来,我接着访问这个A,还是这样好了,那我现在的话呢,我访问一个B。妈说没有啊。啊,告诉我404这个不理想啊,我希望的是404的话呢,给我想用的是hello.jp这个页面我们看一下。哦,写错了,404这么写。写的是根目录下的点再看。嗯。嗯。咋了啊在这呢,哎,这是什么呢?我直接访问这B点加B次数数没有啊,这个时候他找的是它。
40:03
直接访问的是hello.jsp。同学说,老师,你刚才这么写为啥不行呢?直接访问这个页面呗。你看一遍。啊。等一下子。大家看是不是告诉我。没有,这个页面有改错了吗?看404啊l.GSP然后这块想的是什么呀,高考是不是没有啊。而而我这块要是直接指定这个是比方说哈就可以。这样就可以好了,再看一遍。
41:05
这个可以,好了再回来。这样就不行,这样确实是不行还是咋的呢。再看一下。你看一看,实际上这块是不是出控制异常了呀,看见了吧,实际上我确实是尝试着给你这个页面了吧,只不过这个页面是出错了呀,那我这个页面我这样写。我不让他出错,Exception,再看是不是给你了,刚才出错没出错,没办法。所以说我这块的话呢,我也可以通过这样的方式来配,这个是没问题的,我们有这样的几种配法,这个是指定什么呢?指定客户的代码。指定出初二的,初二的代码,我们说几个哈,404啊,没有指定的页面,指定的资源。
42:10
指定的资源,再比方说500表示内部错误。内部错误OK,回头的话呢,我们这个学习的话,我们还会看到exception,这个比较简单了哈,指定。异常的卫星呢,指定响应页面的位置。指定响应页面的位置保存。放在这里,在这儿呢。
43:00
看一个。好了,这是我们说的这个在web s软件里边如何来配置错误页面,然后我们学习了content type,这个实际上是说我当前JSP页面的详类型是什么,注意我访问这个JSP的话,我想的是不是什么,想是不是一个HTML啊,而不是JSP,所以说的话呢,这块那个JSP也可以给我回馈一个word文档啊,因为MP3呢都是可以的,实际上这个JSP的本质上是一个。所以说这里边我们怎么样,我们可以实际上它叫的是response set content。那这边这个取值通常情况下取的就是text HTML叉set utm8这个叉set指定的是我响应那个页面的编码是什么?配coding指的指的是当前JSP页面。
44:01
思维表达是什么?这两个呀,通常情况下取值都是一致的,Is EL ignore,指定是否可以使用EL表达式,哦,说错了啊,通常取值为。False。不忽略。不忽略看一下。EEL。不忽略刚才说差了啊,好了,这就是我们讲到的这个配置指令。
我来说两句