首页 > 其他分享 >03.Tomcat

03.Tomcat

时间:2022-08-30 22:55:33浏览次数:77  
标签:xml 03 Web Tomcat 文件 服务器 目录

一、Tomcat安装

1、Tomcat

Tomcat是Apache基金会(http://www.apache.org/)开发的一个 Servlet 容器,由Apache、Sun和其他一些公司及个人共同开发而成,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。Tomcat包含了一个配置管理工具,可以通过编辑XML格式的配置文件来进行配置。目前最新版本是10.0。

Tomcat 6.0 支持Servlet 2.5,JSP 2.1

Tomcat 7.0 支持Servlet 3.0,JSP 2.2

Tomcat 8.0 支持Servlet 3.1,JSP 2.3

Tomcat 9.0 支持Servlet 4.0,JSP 2.4

Tomcat 10.0 支持Servlet 5.0,JSP 3.0

下载地址:http://tomcat.apache.org/

 

 

 下载Tomcat时,这里提供了压缩版和安装版,还区分32位和64位系统版。大家可以下载压缩版,直接解压使用。

2、Tomcat的目录结构

解压后,如下图所示

 

  • bin:存放启动和关闭Tomcat的脚本文件。*.sh文件用于Unix系统;*.bat文件用于Windows系统。
  • conf:存放Tomcat服务器的各种配置文件。
  • lib:存放Tomcat服务器支撑的jar包
  • logs:存放Tomcat的日志文件
  • temp:存放Tomcat运行时产生的临时文件
  • webapps:web应用存放目录,即供外界访问的web资源的存放目录
  • work:Tomcat的工作目录

3、Tomcat配置

(1)添加环境变量CATALINA_HOME,值为Tomcat的安装路径。例如:D:\server\apache-tomcat-8.5.13

(2)修改环境变量Path,增加“%CATALINA_HOME%\bin”

以上两步为环境变量的配置,以前的版本都需要配置环境变量。

不过Tomcat7.0后都不需要配置了(不论是解压版,还是安装版都不需要配置环境变量了),用EditPlus打开bin目录下的startup.bat,可以看到如下原因 if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome,意思是bin目录下存在catalina.bat文件就可以访问Tomcat页面了,代表着安装成功了。

 

我们来运行测试一下,到Tomcat的安装路径的bin文件夹下,双击运行startup.bat。

 

 打开IE浏览器,地址栏里输入http://localhost:8080/,见到如下界面说明Tomcat启动成功。

 

 关闭Tomcat的方法,不能简单的关闭Tomcat窗口,而是需要执行shutdown.bat命令。

 

 首次登录Tomcat管理平台,并不知道用户名和密码,因此,单击取消按钮,此时,浏览器会跳转到另一个页面。

 

 

 根据提示信息,要访问管理平台,需要在conf\tomcat-users.xml文件中,添加具有管理权限的账号。

 在<tomcat-users>节点内增加 <user username="admin" password="1234" roles="manager-gui"/> ,如下图所示。

 

 

 

 Tomcat定义了4个不同的角色:

① manager-gui:允许访问HTML图形管理控制台与状态页面。

② manager-script:允许访问文本接口和状态页面。

③ manager-jmx:允许访问JMX代理和状态页面。

④ manager-status:只允许访问状态页面。

再次重启Tomcat,点击“manager webapp”,在弹出窗口上输入正确的用户名和密码。即可进入“Tomcat Web Application Manager”界面。

 

 

这样你的Tomacat就配置好了。

二、Tomcat的使用

这部分会有几个很重要的xml文件和目录,大家要记好,区分好!!!

1、更改端口

Tomcat默认的服务端口是8080,我们可以通过Tomcat的配置文件对其进行修改。前面讲过Tomcat安装目录中有一个conf文件夹是用于存放各种配置文件的,其中server.xml文件就是Tomcat主要的配置文件,端口号就是在这个文件中配置的。

(1)进入Tomcat安装目录,编辑文件“安装目录\conf\server.xml”(用记事本工具打开)

(2)在server.xml找到以下代码:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 

(3)修改代码中的port="8080",可以将"8080"修改为"8081"。最大到65535。

(4)修改后,为了是新配置的端口生效,还需要重启Tomcat服务器。

2、部署Web应用

(1)复制到Tomcat目录中

我们将之前编写的静态Web页面部署到Tomcat中看看。之前的hello.html代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>标题</title>
    <meta charset="UTF-8"> 
</head>
<body>
    这是我的第1个HTML页面
</body>
</html>

将hello.html拷贝至Tomcat安装目录下的\webapps\ROOT\目录下,打开浏览器,输入http://服务器IP地址:8080/hello.html,就可以看到之前制作的HTML。

(2)在server.xml中配置虚拟目录

但是我们不能把以后开发的所有页面文件都拷贝到\webapps\ROOT\目录下,这样会很混乱。那我们怎么办呢?

我们可以通过在server.xml中配置虚拟目录来实现Web页面的部署。

在<Host>元素中,添加一个<Context>元素,具体代码如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
      <Context path="/chapter02" docBase="D:\project_javaweb\Chapter02\"/>
</Host>

重启Tomcat,打开浏览器,输入http://服务器IP地址:8080/chapter02/hello.html,可以看到HTML网页。

<Context>元素的属性:

  • path:指定访问该Web应用的URL路径,虚拟目录。可以为空字符串,为空时表示该Web应用为Tomcat默认的项目,没有子路径。
  • docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径。如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。
  • reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。(目前静态HTML网页用不到这个属性)

(3)在自定义xml文件中配置虚拟目录

在实际开发中,如果经常在server.xml文件中配置虚拟目录会有一个弊端,就是每次修改server.xml文件后,想要使文件生效,必须重启Tomcat服务器。我们可以采用另外一种配置虚拟目录的方式,在自定义的xml文件中配置虚拟目录。

首先,进入Tomcat安装目录下的\conf\Catalina\localhost目录

在该目录中,创建一个名为chapter02.xml的配置文件,文件名任意,文件类型必须是xml文件,这个xml文件名将作为网址中的虚拟目录名,一般来说要和<Context>中的path属性值一致(此时path属性值已失去意义)。

然后,将server.xml文件中配置好的<Context>元素(只能有一个<Context>元素),复制到该文件中。

<Context path="/chapter02" docBase="D:\project_javaweb\Chapter02\"/> 

 

 重新启动Tomcat服务器,这次重启Tomcat服务器,是因为修改了server.xml文件(在<Host>元素中删除了之前添加的那个<Context>元素),让之前的配置失效。

打开浏览器,输入http://服务器IP地址:8080/chapter02/hello.html,可以看到HTML网页。说明,使用自定义的xml文件,也可以配置虚拟目录。

另外,在自定义的xml文件中,不仅可以配置虚拟目录,还可以配置默认的Web应用。

配置方式很简单,只需要将chapter02.xml文件重命名为ROOT.xml即可。

不需要启动Tomcat服务器,在浏览器中输入http://服务器IP地址:8080/hello.html,也可以打开网页。你会发现,自定义xml文件中<Context>元素中的path属性好像没有什么作用,虚拟路径取决于自定义的xml文件名,但是建议大家为了阅读代码方便,还是在<Context>元素中保留path属性,并且让它和xml文件同名。

(4)配置Web应用的默认页面

当访问一个Web应用时,通常需要指定访问的资源名称,如果没有指定资源名称,则会访问默认的页面。

例如,在访问网易体育的新闻页面时,需要输入http://sports.163.com/index.html,有的时候,希望只输入http://sports.163.com/就可以访问网易体育新闻页面。

实现这样的需求,只需要修改WEB-INF目录下的web.xml文件的配置即可。

首先,查看Tomcat服务器安装目录下\conf目录下的web.xml文件的配置,打开Tomcat安装目录\conf目录下的web.xml文件,用鼠标将滚动条拖到最下端。

代码如下:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

上述代码,<welcom-file-list>元素,用于配置默认页面列表,它包含多个<welcome-file>子元素,每个<welcome-file>子元素,都可以指定一个页面文件。

当用户访问Web应用时,如果没有指定具体要访问的页面资源,Tomcat会按照<welcome-file-list>元素,指定默认页面的顺序,依次查找这些默认页面,如果找到,将其返回给用户,并停止查找后面的默认页面,如果没有找到,则返回访问资源不存在的错误提示页面。

我们可以直接在\conf目录下的web.xml文件的<welcom-file-list>元素中增加一个<welcome-file>子元素,代码如下:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>hello.html</welcome-file>
</welcome-file-list>

我们重启Tomcat服务器,再在地址栏里输入http://服务器IP地址:8080/chapter02,就可以查看页面了。这样hello.html就是默认页面了。

但是这样还是需要每次重启Tomcat服务器。

我们还可以自己像之前一样配置自定义xml文件。

我们在D:\project_17javaweb\Chapter02应用程序目录中创建WEB-INF目录,并在此目录下,创建一个web.xml文件,将hello.html设置为默认页面。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <welcome-file-list>
        <welcome-file>hello.html</welcome-file>
    </welcome-file-list>
</web-app>

在地址栏里输入http://服务器IP地址:8080/chapter02,也能打开我们的默认页面hello.html了。

3、配置虚拟主机

Tomcat服务器允许用户在同一台计算机上,配置多个Web站点,在这种情况下,需要为每个Web站点,配置不同的主机名,即配置虚拟主机。现实生活中,为了提高硬件资源的利用率,有很多网站通过配置虚拟主机的方式,实现服务器的共享。

在Tomcat服务器中,配置虚拟主机,需要使用<Host>元素,打开Tomcat安装目录下,conf文件夹中的server.xml文件,发现有如下所示的代码:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
</Host>

<Host>元素,表示一个虚拟主机,它的属性name表示虚拟主机的名称,属性appBase表示虚拟主机的路径。这里的虚拟主机名称为localhost,路径为Tomcat安装目录下的webapps目录。

如果希望添加一个虚拟主机,只需要在server.xml的<Engine>元素中,增加一个<Host>元素,我们可以在这个<Host>元素中配置虚拟目录<Context>,重启Tomcat服务器。

在conf\Catalina\目录下会多一个主机名的目录,我们也可以在这里自定义xml配置文件。

 

比如,将D:\project_javaweb\Chapter02目录,配置成一个名为sdbi的虚拟主机。

<Engine defaultHost="localhost" name="Catalina">
    <Host appBase="webapps" autoDeploy="true" name="sdbi" unpackWARs="true">
        <Context path="/chapter02" docBase="D:\project_javaweb\Chapter02"/>
</Host>
……
</Engine>

配置好的虚拟主机,想要被外界访问,还必须在DNS(Domain Name System,域名系统服务器)或Windows系统中注册,因为,通过浏览器访问一个URL地址时,需要明确该主机对应的IP地址,由这个IP去连接Web服务器,所以,当虚拟主机配置完成后,还需要在hosts文件中,配置虚拟主机与IP地址的映射关系。通常情况下,hosts文件位于操作系统根目录下,一般在C:\Windows\system32\drivers\etc目录中。

 

 打开hosts文件,发现如下所示的一行文本:

127.0.0.1 localhost

这行文本的作用,就是建立IP地址,127.0.0.1本机与主机名localhost直接的映射关系,这是,在IE浏览器地址栏中,可以直接使用localhost访问本地Web服务器的原因。如果,要增加更多的主机名,与IP地址的映射关系,只需要在这个hosts文件中,进行配置即可。

例如将D:\project_javaweb\Chapter02目录,配置成一个名为sdbi的虚拟主机,配置如下:

127.0.0.1       sdbi

 

三、Eclipse中配置Tomcat

1、配置服务器运行时环境

打开Eclipse,单击“Window”菜单,选择下方的“Preferences”,看是否存在“Server”选项。如果没有Server选项,则需要安装Server插件。

  

点击“Add”的添加按钮,弹出“New Server Runtime Environment”对话框,选择对应的Tomcat版本,点击Next,选择Tomcat的路径,以及JRE(也可使用工作平台默认的),点击“Finish”,完成配置。再点击“OK”按钮,完成Tomcat运行时环境配置。

  

2、创建Tomcat服务器

我们切换到JavaEE视图,选择下方控制台的Servers选项卡,点击“No servers are available. Click this link to create a new server…”链接。如果控制台中没有Servers选项卡,我们可以打开Window菜单 à Show View选项 à Servers命令。

 

根据情况自己定义主机名和服务器名称。点击“Next”进入下一个页面。

 

由于我们目前还没有发布Web应用程序,所以这个页面我们直接点击“Finish”按钮完成即可。

这时在我们的Servers选项卡中就会出现刚刚配置的Tomcat服务器。

 

我们双击,即可进入配置页面

 

在这上面点右键,选择“Start”即可运行Tomcat服务器。

 

看到如下信息,说明Tomcat启动完成。

 

我们打开浏览器,输入网址http://localhost:8080/

 

出现404错误,请按下图修改Tomcat配置。

 

解释:

Use workspace metadata (does not modify Tomcat installation)。

Use Tomcat installation (takes control of Tomcat Installation)。

第一个选项表示使用当前workspace的metadata路径,它一般会将输出文件保存至workspace目录下;第二个表示输出文件保存至Tomcat安装目录下。

Deploy Path:表示发布项目的目录:改为webapps。

四、使用Eclipse开发Web应用

1、创建项目

在Eclipse中创建一个项目名为HelloTomcat的项目,过程如下:

菜单栏File > New > Dynamic Web Project(动态Web项目),出现新建向导。

Target runtime选择之前配置好的Apache Tomcat v7.0,点击Next。

 

单击Finish,完成项目的创建,可以在Eclipse平台左侧的资源管理器中看到如下的项目结构。

 

2、创建JSP文件

在WebContent节点上点击右键,选择New à JSP File,弹出New JSP File对话框。在File name输入框中输入文件名index.jsp。其他采用默认值。点击Next按钮,打开选择JSP模板的对话框。采用默认值,点击Finish按钮,完成JSP文件创建。

 

此时,在资源管理器的WebContent节点下,会自动创建一个名称为index.jsp的文件。

在index.jsp文件中编写如下代码。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一个JavaWeb应用</title>
</head>
<body>
<center>你好,Tomcat</center>
</body>
</html>

将编辑好的文件保存。

在默认情况下,Eclipse自建的JSP文件采用的是ISO-8859-1编码,不支持中文,为了让Eclipse自动创建的文件支持中文,我们可以选择Eclips菜单的Windows à Preferences打开首选项,在左侧Web节点下的JSP Files子节点,Encoding选择“ISO 10646/Unicode(UTF-8)”选项。

 

3、发布项目到Tomcat并运行

在项目名上点右键,选择Run as à Run on server,选中Always use this server when running this proje选项,将服务器设置为默认值。

 

我们选择了Run on server后,Eclipse会将我们编译好的项目自动复制部署到Tomcat安装目录下的webapps下,并且会将WebContent文件夹重命名为项目名称。因为我们在之前的Eclipse中配置好了Tomcat服务器。

 

我们可以设置使用IE浏览器为默认浏览器,浏览

标签:xml,03,Web,Tomcat,文件,服务器,目录
From: https://www.cnblogs.com/lihuawei/p/16641105.html

相关文章

  • React报错之Property does not exist on type 'JSX.IntrinsicElements'
    正文从这开始~总览当组件名称以小写字母开头时,会导致"Propertydoesnotexistontype'JSX.IntrinsicElements'"错误。为了解决该错误,确保组件名称总是以大写字母开头,......
  • [Bug0047] Access denied for user '-root'@'localhost' (using password: YES)
    1、问题Accessdeniedforuser'-root'@'localhost'(usingpassword:YES)2、场景低级失误,密码错误3、原因密码错误4、解决方案根据网上资料,出现Accessdenied的......
  • 【django学习-03】URLS(路由系统)
    一:URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对......
  • NC21303 删括号 问删除括号对,能否将s转变成 t 线性DP 栈
     链接:https://ac.nowcoder.com/acm/problem/21303来源:牛客网题目描述给你一个合法的括号序列s1,每次你可以删除一个"()"你可以删除0个或者多个......
  • CF1603D Artistic Partition
    这是道有趣的观察性质题,可惜我没有脑子。看到这个dp形式就非常整体二分,所以它就是整体二分(雾我们先令\(c(i,j)\)表示\(i\lex<y\lej,\gcd(x,y)\gei\)的数量,输出......
  • 【django学习-03】Django的配置文件(settings)
    Django的配置文件setting.py用于配置整个网站的环境和功能,核心配置必须有项目路径、秘钥配置、域名访问权限、APP列表、中间件、资源文件、模板配置、数据库的链接方式等......
  • CCPC Qinhuangdao 2020 K, Kingdom's Power做题思路
    首先,对于一个子树,我们显然只有两种去让军队走过他的办法,一种是从兄弟节点调一些军队来,另一种是从根节点推过来。感觉有一个结论,就是我这个位置如果用兄弟节点推过来的只是......
  • PAT Advanced 1030 Travel Plan(30)
    题目描述:Atraveler'smapgivesthedistancesbetweencitiesalongthehighways,togetherwiththecostofeachhighway.Nowyouaresupposedtowriteaprogra......
  • gym-101667F Philosopher's Walk
    Philosopher'sWalk递归分治判断一下当前走的位置是属于\(4\)个块中的第几个块,然后递归计算一下在边长变小一倍后,他应该所处的位置,然后再对原位置进行旋转或平移的操作......
  • CF603E Pastoral Oddities
    CF603EPastoralOddities给定一张\(n\)个点的无向图,初始没有边。依次加入\(m\)条带权的边,每次加入后询问是否存在一个边集,满足每个点的度数均为奇数。若存在,则还......