1.web服务器
学习web开发,需要先安装一台web服务器(在某机器上运行web服务程序【软件】,我们把这台机器称为web服务器)。然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
自己写一个小型服务器:
运行后在浏览器中输入:localhost:9999就可以将D盘下的hello.html显示到页面中
2.常见的web服务器(针对java的)
(1)JBoss:(2)WebLogic;(3)Tomcat【官网:jakarta.apache.org】;(4)WebSphere
3.安装tomcat服务器
采取压缩包解压方式。
然后进行配置。在环境变量中添加JAVA_HOME=指向你的JDK的主目录
进入tomcat目录的bin目录下双击startup.bat就可以启动tomcat了
分析tomcat无法启动的原因:
TomCat在启动时,会读取环境变量的信息,需要CATALINA_HOME和JAVA_HOME的信息
CATALINA_HOME是TOMCAT的主目录
JAVA_HOME是JDK的主目录
JDK配置以下环境变量:
JAVA_HOME:配置时不要加分号
Path:%JAVA_HOME%\bin;
ClassPath:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
配置成功后在CMD命令行窗口输入java -version 如果显示版本信息,则说明安装和配置成功
如果配置完成后运行startup.bat仍然是一闪而过,可以在该文件的文本最后输入pause,保存后运行startup.bat,就可以进行调试,此时如果有错误信息就会显示出来
一、 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。
给setclasspath.bat的开头添加红色标记部分,如下:
rem ---------------------------------------------------------------------------
rem Set CLASSPATH and Java options
rem
rem $Id: setclasspath.bat 505241 2007-02-09 10:22:58Z jfclere $
rem ---------------------------------------------------------------------------
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20
set JRE_HOME=C:\Program Files\Java\jre6
rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo At least one of these environment variable is needed to run this program
goto exit
这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。
运行startup.bat,提示“信息:Server startup in xxxxx ms” OK 大功告成。
二、Cannot find ""d:\apache-tomcat-6.0.32"\bin\setclasspath.bat"
这个时候,可能是CATALINA_HOME的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了CATALINA_HOME的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。
这种情况,可以去看catalina.bat中的配置,
(1)JAVA_HOME没有配置,或者配置错误。
注意JAVA_HOME环境变量的值后面不要加分号
(2)如果你的机器已经占用了8080端口,则无法启动
netstat -an查看哪些端口被占用
netstat -anb查看端口被哪个进程占用
主动改变tomcat的端口:到conf目录下server.xml文件中修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
(3)能正常启动,但是导航到另外一个页面:修改浏览器中的管理加载项,把默认的导航禁用
还有一个很重要的问题是项目开发后,将tomcat远程传送到他人服务器,不可能去修改别人服务器的JAVA_HOME
我们也可以在startup.bat文件中设置JAVA_HOME
在文件中rem Guess CATALINA_HOME if not defined后添加代码:
set JAVA_HOME=JDK主目录
4.tomcat目录结构
work工作目录:该目录用于存放jsp被访问后,生成的对应的server文件 .class文件
5.如何去访问一个web应用的文件
6.在web服务器中安装web应用
(1)什么是web应用:web应用时多个web资源的集合。简单地说,可以把web应用理解为硬盘上的一个目录,这个目录用于管理多个web资源。web应用通常也称之为web应用程序,或web工程
(2)一个web应用由多个web资源或者其他文件组成,包括html文件,css文件,js文件,动态web页面,java程序,支持jar包,配置文件等。开发人员在开发web应用时,应该按照下图所示的目录结构存放这些文件。否则,在把web应用交给web服务器管理时,不仅可能会使web应用无法访问,还会导致web服务器启动报错。