转自javaresearch.com由timgball 整理
Tomcat是一个免费的开源Web服务器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常适合初学者学习Java Web开发。下面是一个简单的Tutorial:[安装Tomcat],在安装Tomcat之前,必须首先安装JDK1.4,因为Tomcat本身是纯Java程序,需要JVM运行,此外JSP页面需要javac来编译运行,因此必须安装JDK(单装JRE不行)。然后从Tomcat官方站点下载最新版的Tomcat:Windows版本:http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.5.1/bin/jakarta-tomcat-5.5.1.zip ,Linux版本:http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.5.1/bin/jakarta-tomcat-5.5.1.tar.gz
Tomcat不需安装,直接解压到某个目录即可(请注意整个路径不要有中文名)。
[配置Tomcat]
先设置如下环境变量:
JAVA_HOME = <JDK安装目录>
TOMCAT_HOME = <Tomcat根目录>
在Path最后附加:
Path = ......;%JAVA_HOME%/bin
如果使用linux,请用export设置环境变量。
然后打开控制台窗口,输入javac,如果能够运行,说明能找到JDK的编译器,输入java -version,如果显示1.4.x_xx则配置正确,否则检查是否安装了低版本的JDK(比如1.3版本),如果有低版本的JDK,把它从Path中移除即可。
[启动和关闭Tomcat]
打开目录%TOMCAT_HOME%/bin,运行startup.bat(linux下是startup.sh),稍等片刻,直到出现信息: Server startup in XXXXX ms表示启动成功!要关闭Tomcat,最好不要直接关掉控制台窗口,运行%TOMCAT_HOME%/bin/shutdown.bat(linux下是shutdown.sh)。
[第一个JSP程序]
运行在Tomcat的Web程序全部放在%TOMCAT_HOME%/webapps下,每个应用单独一个目录,我们开始写第一个"Hello, world"JSP页面。
首先,我们在%TOMCAT_HOME%/webapps下新建一个hello目录,作为整个Web应用程序的根目录,然后在hello目录下新建hello.jsp,用任何文本编辑器输入以下内容:
<% out.println("Hello, world."); %>
然后启动Tomcat,打开浏览器,输入http://localhost:8080/hello/hello.jsp,稍等片刻,浏览器显示“Hello, world.”我们的第一个JSP运行成功!
[Web开发基础]
J2EE的Web应用程序有标准的格式,我们先创建如下结构的目录(请严格区分大小写):
hello |
+- WEB-INF |
+- classes |
+- lib
+- web.xml
所有需要的class文件均以WEB-INF/classes/为根目录按包名存放,所有的jar文件全部放在WEB-INF/lib下,Web服务器(比如Tomcat)会自动把classes和lib下的所有jar文件动态添加到CLASSPATH中,其中classes目录优先级高,如果classes和lib中某个jar的class全名相同,则只会找到classes下的文件。
WEB-INF/web.xml是标准配置文件,负责注册Servlet,Filter及其它用到的资源。在我们的hello应用中,因为没有web.xml,Tomcat会使用缺省的配置文件(什么也不配置)。
一般说来,自己写的class包括servlets,filter,javaBean等编译后放在classes目录下,用到的第三方jar(如struts.jar)放在lib下。
JSP文件可放在根目录下的任意位置,但是位置不同会影响URL的格式。以上面的hello应用为例,我们指定hello/hello.jsp,则URL为http://localhost:8080/hello/hello.jsp,若是放在hello/admin/hello.jsp,则相应的URL变为http://localhost:8080/hello/admin/hello.jsp,若是放在WEB-INF下,则用户不可直接访问此JSP文件,只能通过RequestDispatch间接访问,此方法可向用户屏蔽真实的URL,在struts等Web框架中被广泛使用。
[发布Web应用程序]
发布Web应用程序非常简单,直接使用jar命令将整个hello目录打包,命名为xxx.war,然后复制到另一台计算机的%TOMCAT_HOME%/webapps/下(或者别的Web服务器如Resin,WebLogic也可),启动服务器,它会自动找到这个war文件并解压安装。
./catalina.sh start 开启tomcat服务
./catalina.sh stop 关闭tomcat服务
Tomcat容器入门介绍
Tomcat环境配置
PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了。
1、配置JDK
在Windows10下,找到环境变量
在环境变量中添加JDK主目录
格式为:JAVA_HOME= 指向你的jdk的主目录(并不是bin文件目录)
在环境变量中添加路径
格式为:path = %JAVA_HOME%\bin;
在环境变量中添加classpath
格式为:classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
至此,JDK就配置完了。
PS:如果在不配置JAVAHOME的前提下可以用如下方法启动tomcat
在startup.bat的第25行中添加set JAVA_HOME=JKD路径
2、启动tomcat
到 tomcat 主目录下的bin/startup.bat点击启动
3、验证是否安装成功
在浏览器中输入http://127.0.0.1:8080(8080是默认端口,如果该端口被占用需要到主目录/conf/server.xml中改端口号)
出现这个界面,就表示tomcat已经配置成功了。
Tomcat配置异常及其解决
1、JAVA_HOME 配置错误,或者没有配置
这时候,可以按照上面的步骤在来一次,在命令行中输入java -version,如果显示
就表示成功了。
2、如果你的机器已经占有了8080 端口,则无法启动
解决方法
(1) 你可以8080 先关闭
netstat –an
netstat –anb 来查看谁占用该8080
(2) 主动改变tomcat的端口.
到 conf/server.xml 文件中修改
3、 能够正常启动,但是会导航到另外一个页面
去修改工具->管理加载项,把默认的导航给禁用即可
4、浏览器显示404 Not Found
在访问 tomcat时候,一定要保证 tomcat 服务器是启动,不然就会出现这种错误。
Tomcat的目录结构文件
bin: 启动和关闭tomcat的bat文件
conf: 配置文件
-->*server.xml *: 该文件用于配置和 server 相关的信息, 比如 tomcat启动端口后,配置Host, 配置Context 即web应用
-->web.xml : 该文件配置与 web应用(web应用就相当于是一个 web站点)
-->tomcat-users.xml: 该文件用户配置tomcat 的用户密码 和 权限
lib 目录: 该目录放置运行tomcat 运行需要的jar包
logs 目录:存放日志, 当我们需要去查看日志的时候,很有用!,当我们启动tomcat错误时候,可以查询信息.
webapps 目录: 该目录下,放置我们的web应用(web 站点), 比如:
建立 web1 目录 下面放置我们的html 文件 jsp 文件..图片... 则 web1就被当做一个web应用管理起来(☞ 特别说明tomcat 6.0 以后支持 tomcat 5 版本 还有别的设置)
work: 工作目录: 该目录用于存放jsp被访问后 生成的对应的 server文件 和.class文件
如何访问一个web应用的某个文件
PS:想要访问一个WEB应用中的某个文件可以采用url(Uniform Resource Locator)统一资源定位符来访问,其格式如上。
Tomcat应用部署目录结构规范
Tomcat管理虚拟目录
需求:当希望将web应用部署到非webapps目录下时,怎么解决这问题。
PS:可以通过虚拟目录配置技术解决。
配置步骤
1、找到server.xml文件
2、编辑host节点,添加Context path
<Context path="/应用名" docBase="web应用所在的绝对路径"/>
例如:要访问该web应用根目录下的hello.html文件
实际访问时输入的地址:http://localhost:8088/应用名/hello.html
3、重启、重新部署生效
context的几个属性的说明
path: 应用名称
docbase: web应用所在的绝对路径
reloadable: 如果设为ture ,表示 tomcat 会自动更新 web应用,但是这个开销大,建议在开发过程中,可以设为true, 但是真的发布了,则应当设为false
upackWAR: 如果设为 ture ,则自动解压,否则不自动解压.
PS:war包的打包和Tomcat怎么部署war包可以使用搜索引擎找到。
配置域名
实现的步骤如下:
(1) 在C:\WINDOWS\system32\drivers\etc 下的host文件 添加127.0.0.1 www.myweb.com
(2) 在tomcat 的server.xml文件添加主机名
<Host name="www.myweb.com" appBase="d:\web3”>
<Context path="/" docBase="d:\web3" /> </Host>
(3) 在d:\web3 加入了一个 /WEB-INF/web.xml 把 hello2.html设为首页面,如果连端口都不希望带,则可以把tomcat的启动端口设为80即可.
(4) 重启生效
Tomcat框架机制
Tomcat配置默认主机
在tomcat/conf/server.xml 文件
<Engine name="Catalina" defaultHost="主机名">
如:<Engine name="Catalina" defaultHost="www.myweb.com">
----------参考《韩顺平.细说Servlet》