• 03.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/就可以访问网易体育新闻页面。

    实现这样的需求,只需要修改\conf目录下的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浏览器为默认浏览器,浏览

  • 相关阅读:
    开发进度1
    人月神话阅读笔记(1)
    仓库管理系统
    课程管理系统教程
    流与文件课后作业2加解密工作
    流与文件课后作业3
    今日学习时间记录
    Java字符串切片
    java_ 集合
    json基础教程|理解Json
  • 原文地址:https://www.cnblogs.com/lihuawei/p/16641105.html
Copyright © 2020-2023  润新知