轻松掌握Tomcat底层原理

来源:互联网 发布:mac版word删除空白页 编辑:程序博客网 时间:2024/06/15 13:34

程序员在做web开发时都会要用到tomcat的,这里我详细讲解一下tomcat的底层原理。

现在使用的最多的tomcat是6.0和7.0的版本的,都可以在apache官网上下载到。6.0的安装需要像普通的软件安装时候一样按下一步下一步的操作,而7.0是绿色版的,下载下来后直接解压缩就可以使用了,在这里我也就以7.0为模板讲解了。

安装Tomcat的步骤:
1)安装好JDK
2)把tomcat-7.0.30软件解压到本地硬盘
3)设置环境变量:
JAVA_HOME: C:\Program Files\Java\jdk1.7.0_04
Tomcat_Home:  D:\apache-tomcat-7.0.30
※环境变量Tomcat_Home不配没关系,但JAVA_HOME必须配。在dos下直接到tomcat-7.0.30\bin目录下执行startup命令,也可以在你的tomcat的安装目录里面找到bin文件中的startup.bat双击启动,他的旁边有一个startup.sh是lunix环境下使用的,若JAVA_HOME未配则系统会给出该环境变量未设置的出错信息提示。

在启动tomcat服务器之后进入浏览器,输入网址:http://localhost:8080/或者:http://127.0.0.1:8080/即可出现如下界面:


当中有很多的帮助文档,比方说靠上面的Documentation就是其一,其中有很多的使用方法,非常详细,全英文的。

图中绿色区域右侧有三个按钮,中间的Manager App和下面的Host Manager都需要预先设置才能进去,若没有设置则无法进入,如果想知道怎么设置就按下按钮后点击三次确定,便会弹出一个窗口提示你如何设置。

这里的设置需要到你所安装的目录下找到conf文件夹中的tomcat-users.xml文件,打开它,在最后面添加如下图:

红圈中绿色部分对应按钮“Manager App”,蓝色部分对应按钮“Host Manager”,如此设置后便可登录。登陆后看到如下界面:

这里就可以看到你导入到tomcat中的那些项目们了,右侧可以对其进行操作,比方说右侧的Expire sessions是指无操作多少分钟后网页失效。其他操作可根据英文名进行判断。


我们导入的项目都是放在安装目录的apache-tomcat-7.0.30的webapps中的,然后还有一个叫work的文件夹,就相当于java的项目中classpath下存放.class文件的bin文件夹一样,服务器发送的其实相当于都是这些.class文件一样,和java是类似的。

那么如何在tomcat中发布这些项目呢。

我所知道的方法有三种。

方法一:

在Myeclipse中启动服务器,这种相信大家都会的,就不用解释了。

方法二:

这种方法就是方法一的手动版,这种方法不需要使用到Myeclipse也能行,具体方法如下:

1、首先,找到你的web项目拿到WebRoot文件夹,将其复制到你的tomcat安装目录下的webapps文件夹中即可,然后按上文中启动tomcat的方法启动tomcat即可,如果你已经打开了Myeclipse的话在Myeclipse中启动也可以,这种方法就相当于Myeclipse中的发布项目,启动后直接在浏览器中访问即可。

2、不论项目位于电脑内存的哪个位置都能够发布,这种方法在真正做项目的时候会比较实用一些。具体操作如下:

在你的安装目录下找到conf文件夹,其中会有一个名为server.xml的文档,打开它,在末尾处有一对<Host></Host>标签,在其后面按如下添加:

[java] view plain copy
  1. <span style="font-size:14px;"><Host name="www.hncu.cn"  appBase="D:\a"  
  2.             unpackWARs="true" autoDeploy="true"/>  
  3. </span>  
上面代码中的"www.hncu.cn"就相当于是你申请的域名一样,其后的appBase为你的项目所在目录,appBase不改的话默认是webapps,这就是方法1说的那种情况,即项目位于tomcat默认的文件夹中,像上面1方法中就是Host name="localhost"  appBase="webapps",这个是默认的;若项目不是位于默认文件夹中,则需要进行如此操作。当然光是这样还是不能够发布的,因为我这里没有真的域名,这里我们可以做一个假的域名,方法为:去这个目录下C:\Windows\System32\drivers\etc找到一个名为hosts的文件,在文件末尾加上一句:127.0.0.1 www.hncu.cn 即可,如果你已经申请了一个域名的话就不用这样子做了。发布之后,到浏览器中输入www.hncu.cn:8080/项目名 即可浏览。这里的8080是安装目录下的server.xml中的Connector标签中设置的端口号,一般开发的时候我们用8080但是发布的时候要改成默认的80,这样就可以在访问时不用输入端口号了,因为80是默认端口号,
一般做项目的时候我们可以把项目放到安装目录下的webapps文件夹下的ROOT文件夹中,因为服务器启动后会先到ROOT文件夹中去访问的,我们可以先把里面的东西清空然后放进去。

3、若不是将WebRoot拷到webapps中去并且改名字这种上面1中的操作,而是在webapps中建一个文件夹并在里面直接放一些网页并且没有index.jsp的话,这种情况就要在启动服务器之后在浏览器中访问时在http://localhost:8080/后面加上你要访问的网页在webapps文件夹中的绝对路径,比方说有网页webapps//htmls//demo1.html,那么就要这样输:http://localhost:8080/htmls/demo1.html,若后面不这样加的话会自动去访问htmls文件夹下的index.jsp,可是没有这个文件,就会无法访问。

方法三:

这种方法在开发的时候用的很少

这种方法需要在tomcat安装目录下的conf\Catalina文件下操作,根据上文,我已经使用过localhost和www.hncu.cn两个,那么在Catalina文件夹下会有着两个文件夹存在,随便你使用哪一个进行操作都可以,这里我就使用localhost来举例了:

在此文件夹下建立一个.xml文件,名字随意,我这里就取名为abc了,然后再在abc.xml文件中输入如下:

[java] view plain copy
  1. <Context docBase="D:/a"/>  
docBase的地址即为你的项目所在的根目录了。

然后你就可以到浏览器中输入http://localhost:8080/abc/项目名 ,即可访问(若你使用的是www.hncu.cn文件夹则这里要打http://www.hncu.cn:8080/abc/项目名)。这里的abc就是上面提到的在localhost文件夹中加入的.xml文件。

这种方法虽然用的不多,但是作为程序员必须要知道,这种方法可以让菜鸟级别的人找不到你的项目所在目录。

原创粉丝点击