Tomcat简单介绍(配置)

Tomcat

Tomcat简介前驱

通过Socket,在浏览器上显示本地的xx.html

  • 编码:
public class MyServer {

    public static void main(String[] args) throws Exception {

        ServerSocket ss = new ServerSocket(9999);
        Socket s = ss.accept();
        OutputStream os = s.getOutputStream();
        InputStream is = new FileInputStream("D:/hello.html");
        byte[] buffer = new byte[1024];
        int len = -1;
        while ((len = is.read(buffer)) != -1) {
            os.write(buffer, 0, len);
        }
        s.close();
        ss.close();

    }
}
  • 在浏览器上的访问地址:http://localhost:9999/,在页面上就会显示hello.html里面的内容

常见的服务器

  • WebLogic BEA
  • WebSphereAS IBM
  • Jboss 开源组织->红帽
  • Tomcat Apache

基本概念及常识

  • 服务器:提供网络访问的程序。
  • 容器:支持什么技术的服务器就叫做什么容器,比如Tomcat支持Servlet/JSP技术,又称为Servlet容器。
  • 端口:服务器上的每个网络服务程序都对应一个端口。Tomcat默认对应的端口号是8080,web应用的默认端口号是80。
  • 查看端口是否被占用:cmd下netstat -a

Tomcat简介

Tomcat目录

  • bin:运行Tomcat的相关命令
  • conf:配置文件所在的目录
  • lib:Tomcat服务器运行依赖的jar包
  • logs:存放启动和运行日志
  • webapps:存放要运行的web应用,该目录中的每一个文件夹都是独立的web应用

Tomcat类加载器要加载一个MyClass的类的先后顺序

  1. 在JavaWeb应用的WEB-INF/classes中查找MyClass.class文件。
  2. 在JavaWeb应用的WEB-INF/lib目录下的JAR文件中查找MyClass.Class文件。
  3. 在Tomcat的lib子目录下直接查找MyClass.class文件。
  4. 在Tomcat的lib子目录下JAR的文件中查找MyClass.class文件。

从上面得知:Tomcat目录中lib中的jar为Tomcat和其管理的所有JavaWeb应用服务,每个应用中的lib中的jar只为当前web应用服务。

发布JavaWeb应用

  1. 开发式目录:直接将应用拷贝到webapps目录下。
  2. war包:进入到web应用目录,执行jar -cvf hsxWeb.war .命令,在将hsxWeb.war放到webapps目录下。

Tomcat的组成结构

  • Tomcat本身由一系列可配置的组件构成,其中核心组件是Servlet容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下用XML的形式展示了各种Tomcat组件之间的关系:
<Server> 代表整个Servlet容器组件,是最顶层元素,可以包含一个或多个<Service>元素。
    <Service> 包含一个<Engine>元素一级一个或者多个<Connector>元素,这些<Connector>共享同一个<Engine><Connector/> 代表和客户程序实际及交互的组件,负责接收客户请求,以及向客户返回响应。
        <Engine> 每个<Service>元素只能包含一个<Engine>元素,它处理在同一个<Service>中所有<Connector>接收到的客户请求。
            <Host> 在一个<Engine>中可以包含多个<Host>,它代表一个虚拟主机(网站),它可以包含一个或者多个web应用。
                <Context/> 使用最频繁的元素,代表了运行在虚拟主机上的单个Web应用。
            </Host>
        </Engine>
    </Service>
</Server>    
  • Tomcat组件结构图
    这里写图片描述

配置虚拟目录元素

  • Context元素:配置单个web元素
  • 示例:<Context path="/web2" docBase="F:\Learn"/>
  • Context元素中的属性值:
    • path:URL访问的入口
    • docBase:web应用的存放路径(开放式目录结构或者war文件的路径)
    • className:指定实现Context组件的Java类的名字,这个类必须实现org.apache.catalina.Context接口,该属性的默认值是org.apache.catalina.core.StandardContext。(不建议改动)
    • reloadable:
      web应用中的资源改动后,是否自动加载。默认值为FALSE。
  • 配置方式:
    • 在conf/server.xml中经行配置,在元素中增加元素:<Context path="/web2" docBase="F:\Learn"/>,不建议使用,因为配置后,每次都要重启。
    • 在conf/Catalina/localhost中增加需要的xml文件,比如:appname.xml,appname就是访问路径,在该xml文件中增加以下内容:

      <?xml version="1.0" encoding="UTF-8"?>
      <Context docBase="D:\Learn"/>

      浏览器访问的URL是http://localhost:8080/appname/xx.html
      这是建议使用的方式。
  • 当加载一个web应用时,会依次按照以下五种法师尝试查找web应用的元素,直到查到为止:

    1. 到Tomcat安装目录/conf/context.xml文件中查找元素。适用于所有的web元素。
    2. 到Tomcat安装目录/conf/Enging[默认的是Catalina]/localhost[或者其他]/context.xml文件中查找元素,适用于所有的web应用。
    3. 到Tomcat安装目录/conf/Enging[默认的是Catalina]/localhost[或者其他]/contextpath.xml文件中查找元素,适用于单个web应用。
    4. 到web应用的META-INF/context.xml文件中查找元素,只适用于当前的web应用。
    5. 到Tomcat安装目录/conf/server.xml文件中查找元素。适用于单个web元素。

    注:如果仅仅是为了单个web应用配置元素,可以优先采用第三种配置方式。

配置虚拟主机,即配置一个网站

配置虚拟主机步骤:
1. 打开conf/server.xml文件,增加元素:<Host name="www.hsx.com" appBase="D:\hsxapps"></Host>,其中相关的属性说明:
- name:主机域名。
- appBase:该主机下的所有应用所在的文件目录。
- unpackWARs:war包是否解压。
2. 在C:\Windows\System32\drivers\etc中的hosts文件增加127.0.0.1 www.hsx.com

注:当然可以在这个虚拟主机中配置虚拟目录。

Tomcat配置用户名与密码

  • 在conf/tomcat-users.xml中配置,如下:
<tomcat-users>
    <role rolename="manager-gui"/>
    <user username="hsxsssss" password="hsxsssss" roles="manager-gui"/>
</tomcat-users>

在Tomcat中配置SSL(Server Socket Layer)

  • 在网络上,信息在由源主机到目标主机的传输过程中会经过其他计算机,网络上的信息有可能被非法分子监听,从而导致个人隐私泄露。
  • Netspace公司提出了SSL(Server Socket Layer)协议,旨在达到在开放网络上安全、保密第传输信息的目的。
  • SSL是一种保证网络上的两个节点进行安全通信的协议,建立在SSL协议上HTTP被称为HTTPS协议,保证通信数据的保密性和完整性,并且验证通信双方验证对方的身份。
  • 加密技术的原理:数据从一端发送到另一端,发送者先对数据加密,然后再把它发送给接受者。这样,在网络上传输的是经过加密的数据,如果有人非法截获了这些书籍,由于没有解密的秘钥,就无法获得真正的原始数据;接受者受到加密的数据后,先对数据解密,然后再处理。
  • SSL通过安全证书证明客户端或服务器的身份。当客户端通过安全的连接和服务器通信时,服务器会先向客户端出示它的安全证书,而每一个证书在世界范围内都是唯一的。
  • 创建安全证书的两种方式:
    1. 从权威机构中获得证书,Certificate Authority[CA]、VeriSign、Thawte,这些需要付费。
    2. 创建自己的签名的证书。
创建自己的签名的证书
  1. 准备安全证书
  2. 配置Tomcat的SSL连接器(Connector)

具体步骤:
1.准备安全证书 keytool -genkey -alias tomcat - keyalg RSA -keystore d:\keystore简要说明:
- SUN公司提供了制作证书的工具keytool。在JDK1.4以上版本中都包含了这一工具
- -genkey:生成一对非对称秘钥。
- -alias:指定秘钥的别名,该别名是公开的。
- -keyalg:指定加密算法,此处采用通用的RSA算法。
- -keystone:希望生成的keystore文件存放在其他目录中
2. 配置Tomcat的SSL连接器(Connector)简要说明:
- 在Tomcat的/conf/server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把注释去掉即可

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
  • keystoreFile:指定keystore文件的存放位置,可以指定绝对路径。如果此项没有设定,在默认情况下,Tomcat将从当前操作系统用户的用户名目录下读取名为”.keystore”的文件。
  • keystorePass:指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用”changeit”密码。
  • 注: 在配置tomcat的SSL双向握手时,由于6.0.33中默认启用了APR(APR是通过JNI访问的可移植库,可以提高Tomcat的性能和伸缩性),所以采用传统的配置方式会报异常,需要把protocol="HTTP/1.1"改为protocol="org.apache.coyote.http11.Http11Protocol
  • 示例:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="c:\.keystore" keystorePass="123456"/>
  • 浏览器访问的URL地址:https://localhost:84443/

Tomcat的环境变量设置

这里不介绍,其他博客非常多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼王呵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值