Web服务器是运行及发布Web应用的大容器,只有将开发的Web项目放到该容器中,才能使网络中的所有用户通过浏览器进行访问。常用的有BEA WebLogic服务器、IBM WebSphere应用服务器、Tomcat服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Nginx等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
右击【计算机】,选择“【属性】——【高级系统设置】——【高级】——【环境变量】”进行环境变量的配置
Catalina_Home
,【变量值】为Tomcat解压后的目录,例如【E:\apache-tomcat-9.0.22】
的环境变量即可① 打开Tomcat解压目录中的bin目录\apache-tomcat-9.0.22\bin
,双击打开startup.bat
② 弹出Tomcat命令行窗口,执行打开Tomcat命令,若出现【Catalina.start Server startup in [xxxx] milliseconds】,则表示打开成功。
① 在Tomcat解压目录中的bin目录下单击【右键】,选择【在此处打开命令窗口】
或者
使用快捷键【Windows+R】,在运行界面中输入【cmd】打开命令行,然后输入以下命令,定位到Tomcat的解压目录中的bin目录。以【E:\apache-tomcat-9.0.22\bin】为例。
E:
cd apache-tomcat-9.0.22\bin
② 输入命令startup
(另开一个Tomcat窗口打开Tomcat,相当于双击startup或者运行catalina start
)或catalina run
(直接在windows命令行中运行打开Tomcat),打开Tomcat
或者
或者
ipconfig
补充:
bin目录:存放的是Tomcat的命令。主要分为Linux命令(以.sh结尾的)和Windows命令(以.bat结尾的),常用命令为shutdown.bat与startup.bat,分别用于关闭的服务器和启动服务器。
conf目录:主要是用来存放Tomcat 的配置文件。比如server.xml用于设置端口号、设置域名或者是IP,web.xml可以设置Tomcat支持的文件类型,context.xml可以设置数据源等信息。
logs目录与temp目录:清空不会对Tomcat造成任何影响。
webspps目录:存放的是web应用程序。当Tomcat启动后就会去加载该目录下的应用程序,Web项目必须直接或间接(配置虚拟路径)的发布到webapps目录中来,才能被访问。
work目录:用来存放Tomcat运行时编译后的文件。清空work目录并重启Tomcat可以达到清空缓存的作用。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
常见状态码:
200:一切正常(看不到)
3xx:页面重定向(跳转)
404:资源不存在
403:权限不足(如访问a目录,但a目录设置不可见)
500:服务器内部错误(一般都是代码写错了)
通过复制Web应用到Tomcat中实现时,首先需要将Web应用的文件夹复制到Tomcat安装目录下的webapps文件夹下,然后启动Tomcat服务器,然后打开浏览器在地址栏中输入“http://主机本地IP(或网络IP):端口号/应用程序名称”形式的URL地址(如http://127.0.0.1:8888/firstProject),即可运行Java Web应用程序。
*特殊:当端口号为80时,访问Tomcat运行JavaWeb程序可省略端口号。
如若要访问的项目中有多个jsp文件,则会默认优先访问index.jsp,如有多个html、htm、jsp文件,则会默认优先级为:html>htm>jsp。若想自己控制访问优先级,可以直接指定某个文件(如:http://localhost:8888/firstProject/index.jsp),也可在本项目的WEB-INF/web.xml
中的
标签中插入如下代码:
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
<welcome-file>index.htmwelcome-file>
<welcome-file>index.htmlwelcome-file>
welcome-file-list>
当项目文件位置为E:\MyProject\JspProject1时
1)通过在【conf】文件夹下server.xml
文件中配置
元素实现
通过在server.xml
文件中配置
元素实现时,首先打开Tomcat安装路径下【conf】文件中的server.xml
文件然后在
与元素中间插入
元素。例如,要配置【E:\MyProject\文件夹下的Web应用JspProject1】可以在
标签中加入以下代码:
<Context path="/JspProject" docBase="E:\MyProject\JspProject1" />
即可通过http://服务端IP:端口号/path(虚拟路径)运行Java Web应用程序。
(这种方法的弊端就是每次执行操作之后都得重启Tomcat)
*注意:path:虚拟路径(可以为绝对路径,也可以为相对路径【相对于webapps的路径】)docBase:实际路径
2)通过在【conf】文件夹下【Catalina】文件中的【localhost】文件中新建文件“项目名(虚拟路径名).xml
”,然后在其中插入
元素。例如,要配置【E:\MyProject\文件夹下的Web应用JspProject1】,可以在JspProject.xml
文件中加入以下代码:
<Context path="/JspProject" docBase="E:\MyProject\JspProject1" />
(*注意:此处的path名存实亡)
此时要运行Java Web应用程序需要在浏览器地址栏中输入“http://服务端IP:端口号/xml文件的文件名”
(执行完操作不需要重启Tomcat)
*特殊:方法1中让path=”/”(“”亦可)或者方法2中xml的文件名为ROOT都可以使得http://127.0.0.1:端口号(或http://localhost:端口号或http://服务端IP地址:端口号)直接访问docBase里面的地址中的Web应用
通过配置虚拟主机使得以http://新域名(除localhost以外的域名)的方式访问Web应用(如http://www.abc.com)时,首先需要打开conf/server.xml
,然后在
元素中插入
和
元素,接着把
标签中的defaultHost属性修改为新域名,最后打开本机【windows/system32/drivers/etc/hosts】,加入IP与域名的对应(可加到IP与localhost对应的下面)。
例如要将本机IP对应的域名设置为 www.abc.com,首先在
标签中加入以下代码:
<Host name="www.abc.com" appBase="E:\MyProject\JspProject1">
<Context path="/" docBase="E:/MyProject/JspProject1" />
Host>
然后把
标签改为如下:
<Engine name="Catalina" defaultHost="www.abc.com">
最后往hosts中加入以下代码:
127.0.0.1 www.abc.com
然后将server中的端口号改为80。即可通过访问"www.abc.com"访问Web项目JspProject1。
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>