00:00
现在我们已经可以在任意目录下,这个任意目录指的是任意命令行目录啊,通过cat run来启动服务器,现在我们可以在任意目录下通过cat run启动服务器,好了,好,那下面的话呢,我们接着来看。这刚才已经说过了啊,看tomcat的管理程序说,Tomcat提供了一个管理程序叫manager,用于查看部署到外部服务器里边的外部应用,谁呢?这不对,都跑哪去了,这是跑阿帕奇这个官网上去了,8989。OK,这是我们的猫,好了,下面的话呢,我们看到那个comca manager叫comca管理打开现在时候是不需要输入个密封密码啊,登录登录登录,反正我们没输过取消吧,你取消之后的话,他说什么了,他说你需要在这个添加这样的一个配置信息到tomca users里边,我写一个吧,叫tomca user里边复制过来。
01:31
根目录can找到tomca noodles。To yo。湖南。好了,这个信息呢,在这里。诶,肯定是加速不开U到里边哈,然后是。呃,Name角色的名字叫manager,用户名空。
02:05
密码空啊,它就是一个慢的,OK,写完了说是空了,重新启动服务器。再来。好,也可以看comca manager都是空吧,登录可以进来,可以看见什么呀,可以看到当前已经部署到服务器上有哪些应用,目前就是系统自带的,回头我们自己部署的这块也会有呈现,我们就可以通过点击某一个的形式,然后进到我们的那个应用里边,比方说examples进来,你看有两个,一个是GSP example,还有一个是service,一个example。好了,我们写完之后的程序呢,也可以通过这样的方式作为一个入口,嗯,进到我们的那个应用里面。
03:03
好,这个是配置,呃,Tomca的管理程序要访问manager web应用程序必须要添加有管理员权限的账号,我们通过编辑con下com user添加完的用户名密码就可以了,这个语法是固定的,如果我们要是不知道的话,怎么写,像我刚才那样是吧,一点点不进来,连一个取消,它就会给你一个提示,然后呢,把那个提示信息复制到toca。优点这个下面就可以了,我现在双击一下能看到。OK,不就长成这样吗?在他们看user下面来填这样的两行代码就可以了,大家看这是不是一个XML啊,哎,这用XXML来作为来作为一个配置文件好了。
04:04
就是,呃,管理程序,管理程序写完了,下面我们迫不及待想干什么呢?想写一个应用,然后部署到他们cat上边,好让他能够跑起来,部署完之后的话,大家可以通过IP互相访问,比方说通过幺九二幺六八四零点一百,哎,你去访问那个同学写的应用程序就可以了,那下面我们该怎么写吧?说一个外部应用程序啊,是由一种sol HTML页面类以及其他资源组成的,运行在外B服务器上的完整应用,它是有一个目录结构,这个目录啊,不是随便写的,有一个目录结构,这个目录结构长成啥样呢?长成这样。先看啊,这是so的规范,定义了外部应用的一个目录层次,其中最顶上的叫根目录,根目录下边必须有一个目录,叫web INF for web INF for web的信息,其中web INF for必须是大写,中间用横线连接,然后这个下边还需要有一个classes classes什么意思啊,叫类,我们编译好之后的类放到这个下边,然后底下是,这还是我以前写的哈,这底下是什么?这底下是嗯,所对应的class,然后是一个lib lib下边放的是什么呢?放的是一些下包,如果要是需要的话,放在这个下边,然后是一个web X方,Web X方文件,然后的话呢,我们跟web info一齐的,可以放一些JSP,也可以放一些HTML啊,包括这个呃,文。
05:50
档啊,图片啊都可以,这就是service规范定义的外部应用的目录层次,必须这样,好,那我们说必须这样的话,他看的服务器里边也有咋样的,看他documentation打开有一个first。
06:11
Application点开,我们看它有一些什么呀,它有一些介绍,我们上这个,我们想看木结构到底是啥样的,不是这个。这个。Install,不是这个。Deployment,好,这个deployment的话呢,这里边就给我们这个标识了一个说什么标准的目录结构,你看可以放HTMLJSP等等等,然后的话呢,一定要有一个web INF符啊,有一个web XL件,Web INF符一定要有classes web INF符后边有一个lib,这就是整个这个目录结构,目录结构就长成跟我这个一模一样,那写一个吗?老师你确定是在。
07:02
Eclips里边就这么写啊,那我们后边我们会讲直接用Java e来写,但即便是一个标准的经典版的eclipse,它也能写外部应用,我写一个,你看哈,建一个Java工程,哎,First APP。好了说呀,有一个指定的一个目录结构,我们这个呢,称之为根目录,比方说这个根目录叫。外OK,外部信息,下面这个是根目录哈,必须有一个什么呀,必须有一个文件夹叫web,好了这价格必须有两个文件夹,分别是classes编译好之后的放这个价格还有一个。
08:03
啊好里在这个下格错了,这这不应该是在外部音下边,外部还得有个什么,还得有一个web X方文件去哪找啊,去comca哪找,Comcad这个web web web applications是它内置的一些应用,我们找到一个比方说找到DOS啊。有没有也有web音符,然后呢,Web m文件打开看它长成啥样。协助。基本上是空的,我们可以放心的给它复制过来,复制到这个价格。好,打开长成这样,你可以把这些都清掉,这是啥呀,出事故一行情况行,这个我们也可以不要,这就是一个什么呀,一个空的外部X,外部X文件,我们回头对于当前外部用的一些配置都放在这个下面。
09:07
我再说一遍我们对于web的一些配置信息,比方说配一个啦,配一个listener,配一个filter,都放在这个下面好了,还可以写什么呢?我还可以写HTML,我来写一个。比方说other找到web,我这样吧,我直接写一个JSP,这个JSP我们会写的非常简单哈。啊hello啊GP,这个GP呢,大家一点也不用紧张,就是一个GP,但G跟你长得就很像,就HTML啊,JSP就是我在页面上可以写Java代码,而且它可以运行在JSP容器里边,我写我写一行J代码看着。说你该干嘛,怎么写好呢,最好是跟我这个类啊连起来,我在创建一个类,看着胖点,哎,归谷。
10:11
第二好一块写一个类哈,一个person好,然后的话呢,破在里面我写个方法。比方说public吧。什么呢的信息,随便写了一个,那我这个里边可以写账号代码,我说一下账号代码写在账代码。在吗?写在什么里边呢?到这个里面。
11:08
这里。叫电工号,排分号,百分号,监号里边写。如下这个,嗯。站在里边吧,这OK。可以OK出个事,出个啥事啊,我这个编码是不是行吧,这这边太多了,我不跟大家说了,在这那这块的话,我来写个杠,这不直接给你进来看了吧。等于new person,然后呢,我来把一句话out点点。
12:03
Get音符,如果控制台里边把这句话打出的话,我是不是成功了,好了,但是啊,你成功差的还挺远的,我们说我们要求呢,这个person编译好之后,那个class放在这个下边吧,好了,现在放哪了?嗯。CTRLC现在放的肯定不是这个下格,是这个B目录下,这现在放的啊,我现在的话呢,我需要让它放到这个下边怎么改呢?可以说不需要这么改,我直接把这个复制过去不就完了吗?是吧,我一复制。嗯,外部content meaning for class放这个上面吧,放好了好了,这个放好之后的话呢,我们整个这个部署就完成了,下边怎么办呢?下边要是想直接用的话,正常的方式应该是就是最直接的方式哈,应该是把这个就根录嘛,Copy直接copy到。com那个。
13:17
Web application过来这个下边好了,我。粘贴这个名字,把它改一个来,Hello。写完好吧,我们看如何进行启动,他们看到服务梯是启着的,过来我点到头好了,刚开manager可以进来,我们看是不是有个hello word再点开,点开之后的话呢,这个下面有个什么呢,叫hello JSP版。焊件对焊对好了吗?我再跑一遍。
14:06
看看每次是不是都会打啊,我没打那个LN哎,这样的话呢,我们第一个应用程序就写完了。好了,我们第一个应用程序,我们主要讲的是什么呢?我们主要讲的就是啊,整个外部应用这个目录结构,以及如何把它部署到康泰的服务器下,当然目前的话呢,还有很多很麻烦的地方啊,我们会慢慢的让它变得很简单,但目前这个还是挺麻烦的,我们说一下怎么做呢,这儿。T1稿外发应用程序,我们程我们需要的是两个是吧,第一个呃开发,然后的话呢,并部署好。com服务器下。
15:13
地行好了,第一个骤,第一个步骤在eclipse,你就说老师为什么是eclips,你是一个你不是ecls不行吗?那也行,这个相片简位不是方便新建一个,新建一个什么呢?一个Java project。二好,拼建好之后呢,哎,我们就要注意哈,光这个张up的这真不行,因为我们怎么了,因为我们需要一个呃,严谨的一个目录结构,必须必须是这个目录结构,于是第二步,第二步说。
16:02
在。Java向下放电外网。开发的目录结构,这个目录结构本身呢,我们就不说了啊,这目录结构本身应该是啥样式的,一开始是一个根目录web content,然后呢,这个下边一定会有一个web。盖这个盖这个下边。这下边会有一个拉,还会有一个力,还会有一个外B点,诶这么近。外部点XQ硬件后退好了,跟他在一起的可以有一些比如TML页面啊,DSP啊等好,我们后面不一个一个写了啊,图片啊。
17:01
好。这个然后的话呢,我们要保证。编译之后的class class文件放到这个下边,注意哈,编译之后的class文件必须放在这个下边,编译后的class文件必须放在该目录下,就这样好,那这个写完之后的话呢,再往下来吧。三写完了,写完之后的话呢,我们希望什么了?我们希望就是写一个类,那我就在src下,Src下新建一个类。这没有什么讲的哈,就转成这样,呃,这样。CRC过来,对好进来,然后的话干什么呢?然后我们手工的把。
18:08
Person类对应的。Class文件。文件需要注意啥呀?叫含包,不是那个裸的那个class啊,含包么复制啊复制啊。复制到复制到哪呢?复制到目录下,目录下目。路下,然后五还没完,我又在我的这个外方。录像。这块我们要说一下啊,这个文件夹的名随便你写个ABC也行,因为它的内容嘛,所以说我就写了这样的一个名,目录下新建了,新建一个JSP文件,这个JSP文件啊,我们不用管,回头我们会讲这个JSP是打回字直接拿过来相当简单是吧,Co里面写这么一句话。
19:25
实际上不止这一句哈,还有它添加如下内容,大家看我怎么写的,看着pro哦,斜杠是不是可以找出来。这很重要啊,如果你要不倒的话就行啊,实际上添加的内容的话,我们就这么多。今天内容就这么多,那我把这个这写删掉。我们要不懂为什么的话呢,你可以直接把这个,直接把这个复制过去没问题。See why?
20:02
就长成这样好吧,题写完的话呢,我们整个这个应用就写完了。还差哪儿啊,还差一个地儿,差一个地儿差个啥嘞,差一个他这玩意儿怎么办呢?我是从这上面复制的,你可以一点不改,这个下面不是application dog。从这个下复制过来,从这个中复制出来,然后可以可以不做修改,没问题好了。完事之后的话呢,我们还有一步是什么呢,六六啊。Web content目录复制到把登录外方目录下并改名。
21:09
你随便改啊,你也可以不改并改名,喂喂,我这个的话叫hello。However,然后。七在我的这个浏览器,浏览器的命地址栏吧,地址栏中输入,输入什么呢?从这么一个信息,我是这么输的啊,CTRLCCTRL为即可看到,即可看到命令行的。打印信息行了,这就是我们整个的这个流程,这个流程的目的是为了让大家知道,哦,我这个Java web的这个目录结构是。
22:04
这样。当然我们后边的话,我们还会做一些自动的工作,但暂时这个作为一个hello word还是不错的,像我这样搞一下继续,那刚才的话呢,我们写完了这个应用之后,虽然能跑起来啊,但感觉很麻烦,麻烦在几个地方啊,大家说刚才这个过程有几个环节比较麻烦,复制粘贴很麻烦吧,有两处复制粘贴吧,第一个我得把我得把这个编译好之后,那个class文件复制到这个下边吧,这个比较麻烦,怎么复制的呢?怎么复制的说呀看。找到它的根目录复制,我需要这么整啊,我需要把这个B里边的come come开始包了吧,把这个复制到这个class下面吧,这个比较。
23:19
比较麻烦,第二处就是我都弄好之后的话,我需要把整个这个复制到comca那个webdk上面模板,呃也比较麻烦,如果这两步都是自动的,那该多好,那我们看一看能不能是能不能是自动的呢?那首先呢,我们看关于这一步,这一步就是说class文件复制这个怎么办,右键。Build pass,嗯,配置build pass点过来我们看source,大家看默认的输出目录是不是这个B目录啊,看见了吧,我可以修改,修改成谁呢?Web content web for。
24:06
Classes OK OK,好了,Yes,点完之后,那class是不是没有了呀?再看并没有了吧,进来在这个包是自动的。进来了,我们现在我们再建一个类,大家看一下就知道了,来。随便建一个test就可以哈,看一下效果,嗯,等着是不有了。哎,通过这样的方式的话呢,我们可以把这一步变为主动的我来写。可以通过修改默认的,默认的什么,就默认的一个输出。
25:00
叫什么叫default啊,默认的输出录,默认的输出目录输输进度打到这个自动卡编译。好的。Class放到classes目录下。啊,两边是吧,Class class对好了,怎么做呢?具体是看右键。Build pass,然后配置build pass,然后south直接点这个B就可以了啊,这样的话呢,就可以到这个模下,这是第一个第二个,第二个我们看到个什么呀,第二个的话呢,我需要把这个整个复制到D盘的根部下地盘根目录这个下面我不想复制这个复制了太麻烦干掉。
26:22
看到好了,嗯,能不复制吗?当然可以是吧,不复制的话呢,我们需要看那tomcad给我们提供了哪些手段是吧,让我们能够把那个路径给他映射过来,我再说一遍啊,看他K给提供了哪些方案,可以把那个目录结构给我映射过来,我们直接看,呃,To盖documentation,然后翻上面有一个叫compation配置,配置我们找。Context OK往前翻,我们有这样的几种方式都可以来进行配置,OK,那这几种方式的话呢,我们用其中一个最酷的方式,最酷的方式呢是这样。
27:10
是,是这样的。我们可以在。Con目录下来用这个,呃,Engine name叫什么?N name应该翻译过来叫引擎的名字,然后呢,Host nameme后面还有一个director hostname,就是比方说我现在就local host,然后呢,Director,我们这个下边我们可以来建一个文件,在这个文件下边来写一些基本的配置。这种。你看配置任意目录下外部的应用程序有几种方案啊,其中最酷的方案是最后一个,这也不是,是这个可以在目录下一来建个目录,然后在这目录下来建一个什么什么点XL件,编辑了一个文件,写什么呢?写context pass。
28:10
呃,Dog base reloadable就可以,其中pass指的是我们访问时候那个虚拟路径,就你看我访问的时候,我这块刚才访问的时候,我这块是不是写的一个color word虚拟路径,而这个dog指的是实际上我那个路径所在的物理。物理目录reliable是不是可以来进行重载?我们先写一下,看一下这个情况,我们首先找到con目录,然后新建一个cat,再建一个括号。嗯。再建一个。什么什么点X文件。这这这我我一个。
29:16
你不可能孩子都先写吧?刚写个什么呢?写个pass等于这写个dog is等于这有个reliable。漏O是不是可以承载的,等于可以承载,诶,我写一个这个pass呢,比方说我写的taste图,我就写了一个啊base是谁呢?是他所在的目路啊,是这个目C。后来边上需要注意这个下边是个什么呀,这是一个反斜杠,我可以转移。
30:13
写好写好之后呢,把这个CTRLX复制到我的log号这个目录下,可能不行啊,好陪吧。粘贴,然后呢,我把这个就删掉不要了哈,用不着OK,然后我们打开他们开的服务器。8989回来,我们注意看ID manager。哎,这块有个to啊,看见了吗。我那个,我那个叫hello。一就这我看哈,我修改这个什么呀,我修改这个GP,我直接这样就可以看看他还能成功吗。
31:18
来,再看。是不是带上这个了,这还不算,我reliable指的是什么呢?Reliable指的是对于Java文件是不是可以进行重新加载Java文件我改一下改成什么呢?呃,这个,呃,这个person info来这个12345,好,你看这儿,这个我保存。好看它它会不会重新是不是loading呢,重新加载这个上下文,然后的话呢,启动了好再进行打印再看。是是12345了,哎,这就是配置任意目录下的外部用录,那刚才的话呢,我们实际上解决了两个问题,就是刚才说的比较麻烦的问题,我们都给予了解决,第一个解决方案是这样的,第一个解决一点看啊,第一个解决可以通过修改。
32:16
默认输出目录的情况下,把编译好的class直接放到class目录,这个演示过程呢是这样,右键pass,点击它。然后在这个位置填classic就可以了,注意web in for classic这个单词啊,一个也不能错,错一个的话就不行,好第一个第二个啊,我不需要把这个目录复制过来,然后的话呢,我在这个web application目录下的话呢,也没有这个目录确实是没有啊,原生的几个我怎么办呢?我通过一一些配置来完成这个配置是这么配的,我们有几种配置方式哈,我们用了其中的一种方式,直接在con目录下新建了一个catin,再建了一个low host,然后呢,来建一个什么什么点XML文件,注意这个XL文件呢,挺有讲究的,先上来吧,这个目录结构是这样的。
33:22
考过来。对。这个哈,首先呢,我们要注意什么呢?首先我们要注意这个目录结构,目录结构是这样。他一定是这样来写。填什颜色,OK这块是这个什么呀,叫cat local hot个建好之后呢,这个建好之后呢,然后我们看有一个什么呀,有一个hellowork code开文件,我把这个文件打开。
34:08
文件右键。打开。记事本吧,好了,打开之后呢,长成这样,我给他汇聚一下啊。这是可以的,好了,写完这个之后的话呢,我们看这里面都写什么呢啊,写了这么一些东西给他。截个图。截个图。后来在这。好了,然后的话呢,我们发现我实现访问,我是怎么访问的,我是这么访问往上点吧。放这行,我使用访问的话,我是这么访问,我是使用这个这个访问的,注意看这个啊local house这样的话呢,访问就没有问题,我复制这个访问是有讲究的。
35:11
其中啊,其中。大一点大一点,我们看有一部分是不是固定的呀,8989这之前是固定的吧,这部分是定的,所以说这部分的话呢,我们就不说了,我们直接一个体固定的一个体,就这样好了,看这个hello to,这不是固定的吧,你看这个跟谁一样。看他跟谁一样,是不是跟那个文件名一样,没有没没跟这个店铺一样吧,这个跟文件名是一致的,好,那我也。换一个,后来他跟这个文件名哈,就跟这个名一致,跟后边那S文件这个没关系,他俩是一致,后来你看我访问的话呢,我通过这个来进行好了,这是一处,这是一处,第二处的话呢,我们看这个pass啊,实际上没起到作用,我们还有一个什么,还有一个dog base,这个dog base指指的应该是什么呀?指的应该是我实际上那个物理物理路径吧。
36:27
Po。好,我拉出来。哎,这个实际上指的是我那个物理路径,好吧,物理物理在哪呢,于是我们看。美如就应该是在这儿右键它CTRLC。来这个是那个物理物理路径,看着啊,这个是物理路径,物理路径。
37:04
它是什么呀,这个是我所谓的那个叫根目录。哎,这个是我们所谓的真正的那个叫目录。然后这个下面会有什么呀,这个下面是不是会有什么web iner下面是不是有什么这个Le啊,你看下面是不是有什么Le啊,Classes啊是吧啊这么一个东西,所以说这个指的是实际的物理路径,翻过来,哎,这是物理路径,这往哪放往哪放,往这放好了,这个的话呢,指的是它。这个就是它,而这个reliable干什么用的?就是当当,我要是修改了那个class文件的话,它会把当前那个外部应用重新加载吧,Relo reloable是干这个用的,这个的话呢,我就直接写了哈,我们刚才已经看到了说reloable。
38:12
比如说什么可可被加载,说刚刚修改了。被子下的。Glass目录目录下的glass文件时说,CA服务器是否会重新加载?它不应用太方应用,我们刚才是不是看到了这个是数的话,它会重新加载啊,我们看一看它是false的情况是啥样的,它是false的话就不会加载吗。
39:03
后来OK,回到我的这个下边,呃,计算机一盘这个conig目录下,我找到catalina localt,我打开。好了,注意,我把这个改为false。保存存了哈,保存再看,重新加来了,然后的话呢,我们看看效果,我发一下还是有反应的,好了,现在的话呢,我来改它person,我把这个12345去掉,保存再看。都是没有重下载那个事啊,重下载哪行啊,是不是有一个re loading啊没有,于是你再访再访问的话,还是这样好了,我现在的话呢,把这个再改回去,我让他怎么样,我让他是。
40:01
哦,这是以前的,这是以前的,我让他改回来,让他是处。保存保存啊。关掉好了,关掉之后的话呢,我们再看。这不是吗?再看看这个时候,还是这个时候没有12345哈,我加上来12345保存,你看这个样子就知道了。需要一点时间。是不是好了,这就是reloadable的作用,那整个这个图的话呢,我们就画了一个什么呢,我们就说明了我如何去映射任意目录下的外部应用,需要说明的是这个pass吧,没啥用。
41:06
就是说我们实际上访问这个这个虚拟路径是靠的是谁呀?是不是这个文件名呢?而不是这个pass。这个pass没啥用,说没啥用,删掉他了呗,删掉大家看。嗯。看到了啊,保存好一小块啊,我们再看。干掉说不是什么名字啊,这已经重新部署了啊,这是没问题的,行,这就是我们刚才解决的这。两个问题,那过来第二个问题,第二个问题我们说映射任意目录下的,那这个的话呢,我们直接看那个图就可以了,我们说看这个吧,这边也有写。
42:03
说在这个下边新建一个它。说C来在这个目录下一次新建这样的一个目录。然后呢,在这个目录下,我们新建一个什么什么的外,新建指定的一个这个文件就可以,文件内容的话呢,是这样的。没有。关了,对。打开。具体具体细节的话,我就不再说了啊,因为具体细节的话,大家看那个图,那个图上说的是挺清楚的,用这种方式的话呢,我们就做了一个什么呀,我可以在任意目录下来这个映射被访问的镜,叫配置任意目录下载应用。
43:04
有几种方式,我们只是讲了其中比较的,一,所有的这些开发的时候都不怎么常用,实开发的时候怎么了,我们可以直接把eclips切换到。障碍E选项,然后直接在这个下边,大家看是不是有个server啊,我可以直接来建服务器,我把我应用直接发布到服务器上,Eclips给我们提供了非常便捷的开发方式,但是刚才那个是基础,我们起码需要了解。
我来说两句