常见的web服务器
1. WebLogic是BEA公司的产品,是目前应用最广泛的web服务器,支持J2EE规范(J2EE里有13种技术),商业产品,收费的。银行,证券等对并发,安全要求高的时候用,一般公司不用该服务器。
2. WebSphere IBM公司开发的,支持J2EE规范。收费的,不过可以下载做学习用,不做商业用途时是不收费的。
3.Tomcat,apache,免费的,只支持J2EE规范的JSP以及Servlet规范,其他11种规范不支持。
tomcat启动常见问题:
1.闪退,tomcat是用java开发的,需要jvm的支持,如果系统环境变量没有配置java_home,就启不起来tomcat,会闪退
2.端口占用问题。tomcat默认是用8080端口的,如果8080端口已经被另外一个程序占用了,tomcat就启动不起来。所以如果启动了一个tomcat,就不能再开启另外一个tomcat,会出现端口占用问题。
此时需要找出哪个应用程序占用了8080端口,可以使用Fport.exe小程序来查看或者使用360软件来查看。会列出所有程序的端口占用情况。然后再任务管理器中结束进程。
http协议的默认端口是80端口,开发中tomcat一般运行在8080上,发布时tomcat要运行在80端口上。可以在conf文件夹下的server.xml文件来修改默认的端口。网站发布时,要把tomcat的端口改为80 端口,这时启动tomcat会报错,因为Windows会启动iis服务,iis就占用80端口,此时如果在任务管理器中结束inetinfo进程,是结束不掉的。Windows服务会再次开启,此时该如何做呢???
我的电脑--右键---管理---服务和应用程序---把IIS Admin停止即可。启动类型改为手动,否则开机后又启动了。
这时候启动tomcat服务器就可以启动了。
注意:开发时不要改端口,上线部署的时候要改端口为80,不然浏览器访问的时候,都要加上端口号,80端口是http协议默认端口,访问的时候不用指定端口。
3.Catalina_home环境变量的设置问题
此环境变量用来告诉tomcat的启动程序要启动的tomcat在哪里。类比:java_home是告诉java在哪里
在环境变量里新建Catalina_home,值为tomcat的目录。一般不设置此环境变量。如果配置了此环境变量,就会启动catalina_home指定的那个tomcat。如果不配置此环境变量,点击哪个tomcat文件夹下的startup.bat就启动哪台服务器。
Tomcat的目录结构:
bin目录:存放启动和关闭tomcat的脚本文件
conf目录:存放tomcat服务器的各种配置文件。
lib目录:存放的是tomcat服务器的支撑jar包
logs目录:存放的是tomcat的日志文件,记录tomcat的运行信息,如果tomcat启动时候闪退,可以在日志里查看出问题的原因。
temp目录:存放tomcat运行时产生的临时文件
webapps目录:web应用所在的目录,即供外界访问的web资源存放的目录。
work目录:tomcat的工作目录。jsp翻译生成的servlet就放在这里。
web应用程序:指供浏览器访问的程序,也称为web应用。
web应用程序开发完后,要想被外界访问,需要把其web应用所在目录交给web服务器管理,称为虚拟目录的映射。
虚拟目录映射的三种方式:
1.在server.xml文件的host元素中配置。
<Host ... >
<Context path="/aa" docBase="c:\app">
</Host>
path是对外访问路径,docBase指定该应用所在的路径
path称为虚拟目录。
配置完要重启tomcat,浏览器访问:http://localhost:8080/aa/1.html
映射缺省的web应用
<Host ... >
<Context path="" docBase="c:\app">
</Host>
配置完要重启tomcat,浏览器访问:http://localhost:8080/1.html
缺省的web应用只能有一个。
每个Context对应一个web应用,Context除了配置web应用,还可以配置其他一些资源,如数据库连接池,javamail等。
2.tomcat6中,不再建议在server.xml中对Context配置,因为每次配置都要重新启动tomcat服务器。
查看tomcat配置文档说明,Context有五种配置方式。