1)没有配置JAVA_HOME
解决:在环境变量中设置JAVA_HOME
2)端口占用
解决:Tomcat一般使用的是8080端口,如有别的程序占用了端口,可以使用Fport.exe工具查看占用端口的程序,然后结束该进程
3)Catalina_home环境变量问题设置问题
Catalina_home主要是用来告诉程序,Tomcat在哪里,如果有机器上有多台tomcat服务器,那就需要配置Catalina_home来决定启动那台服务器。若没有配置,则默认启动和startup.bat同目录对应的那台
2.例如 http://www.sina.com
告诉浏览器,以http协议访问互联网上www.sina.com这台机器,这台机器有可能有多种服务器,而在访问时没有指定端口,所以使用的是默认端口80
要以http://www.sian.com这种方式访问,则该web应用应该要运行在80端口上。
3.Tomcat的目录结构
bin:存放启动和关闭Tomcat的脚本文件
conf:存放Tomcat服务器的各种配置文件
lib:存放Tomcat服务器的支撑jar包
logs:存放Tomcat的日志文件
temp:存放Tomcat运行时产生的临时文件
webapps:web应用所在目录,即供外界访问的web资源的存放目录
work:Tomcat的工作目录
4.server.xml
server.xml中的元素大体可分为4大类
顶层类元素
连接器类元素:它是客户和服务(容器类元素)间的通信接口,负责接受客户请求与向客户返回的响应结果,主要有<Connector>元素
容器类元素:负责处理客户请求并且生成响应结果,主要有<Engine>元素、<Host>元素与<Context>元素
嵌套类元素
server.xml的基本元素层级关系
<Server> //Server元素是根元素,它可以包含一个或者多个service实例
<Service> //Service元素由一个或者多个Connector与Engine组成
<Connector /> //Connector就是一个Tomcat与客户端的连接
<Engine> //Engine下可以配置多个虚拟主机Host,并将请求匹配到具体的Host上
<Host> //Host代表一个虚拟主机,其下可以配置多个Web应用
<Context /> //Context代表一个Web应用
</Host>
</Engine>
</Service>
</Server>
Host的属性
name:设定虚拟主机名
appBase:设定存放应用程序的基本目录
unpackWARs:当设置为true时,Tomcat自动解压WAR文件,当设置为false时,直接从WAR文件中运行程序
Context的属性
docBase:设定Web应用或者WAR文件的存放路径
path:设定访问Web应用的入口URL
5.WEB应用程序
1)WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
2)组成web应用的文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录。
3)Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
6.虚拟目录的三种映射方式
1)在server.xml文件的host元素中配置(现在一般不建议这样配置,因为这样每次配置文件改变了,都需要重启Tomcat服务器)
<Context path="/lsl" docBase="c:\news" />
(在C盘下有个news应用,访问路径:http://localhost:8080/lsl/a.html)
配置成缺省
<Context path="" docBase="c:\news" />
访问路径:http://localhost:8080/a.html
注意:一个Context即代表一个web应用,context元素在配置文件中除用于映射虚似目录外,它还可用于为web应用配置一些资源,
例如:配置web应用使用的数据库连接池,javamail session等
2)在C:\apache-tomcat-7.0.40\conf\Catalina\localhost目录下新建.xml文件。xml文件的文件名就是对外访问路径
在a.xml中<Context docBase="c:\news"/> (这种方式不需要重启tomcat)
访问路径:http://localhost:8080/a/a.html
配置成缺省(需要重启服务器):当文件名为ROOT.xml的时候,就可以配置成缺省
访问路径:http://localhost:8080/a.html
3)让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
7.web应用的组成结构
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
8.配置虚拟主机
1)在一个tomcat服务器中可以放置多个网站,所谓配置虚似主机,就是在tomcat服务器中配置一个网站。
2)http://localhost:8080/mail/1.html
localhost:主机名
作用:(1)告诉浏览器去访问互联网上名为一台localhost的主机
(2)告诉web服务器要访问你这里面一台名为localhost的主机
(一个是给浏览器用的,一个是给服务器用的)
3)配置虚拟主机
(1)在server.xml中配置
<Host name="www.sian.com" appBase="c:\sian">
<Context path="/mail" docBase="c:\sian\mail"/>
</Host>
(2)DNS服务器或windows系统中注册。
在windows系统中注册的方法:在hosts中添加
格式:192.168.1.228 www.sian.com
4)配置缺省虚拟主机
<Engine name="Catalina" defaultHost="localhost">
7>配context元素的reloadable元素,让tomcat自动加载更新后的web应用(但是此技术一般不用,更新频繁加载会导致服务器压力大)
<Context path="" docBase="c:\sian\mail" reloadable="true"/>
9.web.xml配置详解
<?xml version="1.0" encoding="utf-8"?>
<web-app.......>
<servlet> //配置一个servlet
<servlet-name>xxx</servlet-name> //设定该servlet的实例名
<servlet-class>xxx</servlet-class> //设定该servlet的类名
<init-param> //设定该servlet的初始化参数
<param-name>xxx</param-name> //设定参数名
<param-value>xxx</param-value> //设定参数值
</init-param>
<load-on-startup>0</load-on-startup> //设置该servlet在web应用启动时被加载的次序。
//数值越小就先加载,如果为负或没有设置就在首次
//访问该servlet时才被加载。
</servlet>
<servlet-mapping> //配置一个servlet映射
<servlet-name>xxx</servlet-name> //引用前面设定的servlet实例名
<url-pattern>/xxx</url-pattern> //设定该访问servlet的URL
</servlet-mapping>
<filter> //配置一个过滤器
<filter-name>xxx</filter-name> //设定该过滤器的实例名
<filter-class>xxx</filter-class> //设置该过滤器的类名
<init-param> //设定该过滤器的初始化参数
<param-name>xxx</param-name> //设定参数名
<param-value>xxx</param-value> //设定参数值
</init-param>
</filter>
<filter-mapping> //配置一个过滤器映射
<filter-name>xxx</filter-name> //引用前面设定的过滤器实例名
<url-pattern>/*</url-pattern> //设定需要过滤的URL
</filter-mapping>
<listener> //配置一个监听器
<listener-class>xxx</listener-class> //设定该监听器的类名
</listener>
<jsp-config> //设置JSP的配置信息
<taglib> //定位一个标签库
<taglib-uri>/xxx</taglib-uri> //设定该标签库的引用URL
<taglib-location>xxx</taglib-location> //设定标签库文件的存放路径
</taglib>
</jsp-config>
<welcome-file-list> //设置欢迎文件清单
<welcome-file>xxx</welcome-file> //设置一个具体的欢迎文件名
</welcome-file-list>
<error-page> //设置一个处理错误码的页面
<error-code>xxx</error-code> //设定一个具体的错误代码,如404
<location>/xxx</location> //设定一个处理该错误的页面
</error-page>
<session-config> //设置session的会话闲置时间
<session-timeout>xxx</session-timeout> //设定一个具体的分钟数,如60
</session-config>
</web-app>
在web.xml中,servlet、servlet-mapping、filter、filter-mapping、init-param、listener、taglib、welcome-file、error-page元素可以出现一次或多次而像web-app、jsp-config、welcome-file-list与session-config元素通常最多只出现一次