(JavaEE-02)Web服务器---Tomcat

Web开发

从今天开始,我们学习JavaWeb开发,那么什么是JavaWeb开发,就目前来看,JavaWeb涵盖的内容和所涉及的领域已经非常广阔了,简单来说,Web技术基本都是用来开发网站的,但是网站与网站的区别是非常大的。
JavaWeb技术应用:

  • 电子商务平台

  • 各种社区

  • 银行、电信领域以及各类金融行业的应用系统

  • 企业内部大型应用系统(ERP、CRM、OA等)

  • 大数据(以Hadoop为中心的技术群)

  • 搜索引擎(Nutch、Lucene、Solr等)

  • 云计算、云服务等

Web开发已经是未来的大势所趋(WebQQ,ChromeOS,强悍的HTML5),不论现在是否进入到移动时代,但是未来必然是网络时代,所有的任何形式的客户端,都需要网络服务端来提供服务。所以学好Web开发,对未来非常有好处,发展前景非常好!

Web资源

Web,它用于表示Internet主机上供外界访问的资源。Web资源分为两类:

  • 静态Web资源,比如HTML,一张图片等。指得是web页面中供人们浏览的始终不变的数据

  • 动态Web资源,指Web页面中供人们浏览的数据是由程序产生的,不同动作访问web页面看到的内容是不同的

  • 静态Web资源开发技术:HTML、CSS、Javascript

  • 动态Web资源常用开发技术:Servlet/JSP、ASP(ASPX)、PHP、Ruby、Python等等

在Java中,动态Web资源开发技术统称为JavaWeb技术体系(使用JavaWeb技术开发动态Web资源)

Web服务器

要学习Web开发,需要拥有一个台Web服务器,然后在Web服务器中开发Web资源,供别人浏览和使用。(服务器的概念)

一个Web资源(HTML),想让用户通过Internet来访问,就需要我们编写一些基于Internet传输规则的程序(这样的程序就是 Web服务器),比如,通过使用Java网络编程的相关技术(网络套接字)就可以编写一个支持网络访问的程序,但是功能比较有限。Tomcat就是一个写 好的支持网络访问的,功能强大的程序,它能对外提供Web资源的访问,所以它就是一个Web服务器,而它使用Java编写的,所以Tomcat就是一个 JavaWeb服务器。

Tomcat

Tomcat是一个JavaWeb服务器,也称之为Web容器。
一个示例,启动tomcat,将一个Web资源放入Tomcat服务器,通过网络客户端,就可以直接访问该资源了。

常见的Web服务器

  • WebLogic,它是Oracle公司的产品(收费),是使用非常广泛的Web服务器,支持JavaEE规范。

  • WebSphere,它是IBM公司的产品(收费,但是只要不商用,可以免费使用),支持JavaEE规范。

  • Tomcat,Apache公司产品(开源免费),支持全部的Servlet和JSP规范。

安装Tomcat

  • 首先下载Tomcat,选择正确的版本,推荐使用绿色安装版,也就是zip包版本

  • 绿色版无需安装,解压后就直接可以使用(切记不要将其放入到带有中文或空格的目录中!!!)

  • 进入tomcat解压包的 bin 目录,双击 startup.bat 如果能正常启动并且正常访问出现tomcat首页,就说明服务器安装成功了

Tomcat安装常见问题

如果启动Tomcat出现报错,或者直接一闪而过,就说明Tomcat启动不了,环境有问题,常见问题有:

  • JAVA_HOME环境变量

  • 端口占用(netstat -ano),http协议工作默认端口:80

  • Catalina_home 环境变量,该变量告诉启动程序Tomcat在哪里,如果配置了该变量,那么启动的tomcat就以配置的为准,如果没有配置,启动程序会寻找自己所在的tomcat程序

Tomcat的端口是可以修改的,通过conf文件夹中的server.xml文件第70行(不同版本位置不 太一样,但是差不多)就可以修改。如果机器上还装有别的web服务器,很有可能会占用端口。要么修改别的web服务器的端口,要么直接将别的服务器关闭, 如果进程关闭不了,那肯定是该进程是由某个服务在后台管理,那么就要先关闭该进程对应的服务,然后再关闭进程!
Tomcat可以安装成系统的服务,随着开机启动(真正上线以后的操作)

Tomcat目录

Web应用程序

Web应用程序是指浏览器访问的程序,通常也称为Web应用。Web应用通常是由多个静态web资源和动态web资源组成:

  • html、js、css

  • Jsp、Java程序、Jar包

  • 配置文件等

虚拟目录映射

将上述这些web资源统一使用一个目录组织起来,这么目录就称为Web应用所在目录,Web应用开发完后,如果想提供外界访问,需要把web应用所在目录交给web服务器来管理,这个过程称之为虚拟目录映射

虚拟目录映射有三种方式:

  1. 在server.xml文件的host元素中设置,

<Context path="/xinsiku" docBase="D:\\xinsiku" />,注意在配置在host元素体中。

path用来指定虚拟目录名称,docBase用来指定Web应用所在目录

如果将path配置成 ""空的字符串,那么该应用就是默认web应用。一个Context代表一个web应用,Context元素还可以用来配置一些别的资源(数据库连接池等)。

  1. 在conf文件夹中的Catalina文件夹中的localhost文件夹下,建立xml来配置(查看文档)

在这个文件夹中建立一个xml,该xml的名字就是虚拟目录名称,在该xml中只要配置docBase就可以了,这样配置的好处是不需要重启服务器就可以映射。

  • 这种配置方式还可以使用多级访问路径的配置方法来实现多级访问(foo#bar.xml)

  • 默认的应用使用 ROOT.xml 来配置

  1. 自动映射:Tomcat服务器会自动管理webapps目录下的所有web应用,无需配置,可以直接访问

Web应用的组织结构

在JavaEE规范中,不同类型的web资源是有严格存放规则的,不能乱放,否则会无法访问或启动失败。

在这些资源中,web.xml是非常重要的一个文件,我们使用它来管理整个web应用的相关配置,用它可以配置网站的首页、映射servlet、配置应用的监听器、过滤器等等。

配置虚拟主机

在一个tomcat中可以放置多个网站,配置虚拟主机,就是配置多个网站。配置虚拟主机,使用host元素来配置:

1 <Host name="www.newthinkingcool.com" appBase="D:\ thinking" >
2     <Context path="/mail" docBase="D:\thinking\mail"/>
3 </Host>

可以配置多个虚拟主机
配置默认的虚拟主机,在host的父元素 元素的属性中配置: defaultHost="localhost"

Tomcat体系结构图:

其它问题

  • 画图演示web资源的访问过程

  • 将web应用发成war包:jar -cvf warname.war web应用所在目录

  • tomcat的reloadable配置(不推荐)

Tomcat的加密配置

  • 密码学

  • 对称加密

  • 不对称加密

  • base64与MD5

对称加密与不对称加密

对称加密也成为单密钥加密,用的是同一个密钥,在传输中,信息被拦截,容易被破解。


不对称加密,拥有两把密钥。

  • 使用了不对称加密,数据依然会被拦截,但是几乎是无法破解的,只能用对应的私钥才能解密

  • 第三方可以拦截公钥的获取,将自己的公钥发送给接收方,这样接收方拿到非法公钥,编写密文,然后第三方再次拦截密文,用自己的私钥解密来窃取信息,为了解决这个问题,就出现了CA组织,数字证书。

  • 浏览器会去验证这个公钥(数字证书)是不是权威组织颁发的,如果不是,则会提示危险警告

  • 即便有了CA,但是第三方任然能截取数字证书信息,然后伪装成发送者给接收方发送信息,为了解决这个问题,就要使用双向密钥验证,也叫双向证书。

双向证书

Tomcat的加密连接

Tomcat的加密连接需要使用一个口令:keytool -genkey -alias tomcat -keyalg RSA

  • 使用keytool工具生成密钥库

  • 将密钥库放入conf文件夹

  • 修改server.xml,启动安全连接

    • 找到8443端口的连接器,去掉注释

    • 如果是tomcat7,修改 protocol="org.apache.coyote.http11.Http11Protocol" ,因为tomcat7默认使用的是APR,APR是SSL的实现,还有一种实现是JSSE,这里改成JSSE,因为APR需要一些别的配置

    • 给连接器添加两个属性:keystoreFile,指定密钥库的存放地址, keystorePass,指定密钥库的密码。

Tomcat服务器的管理平台

  • 用于远程管理tomcat下的web应用

  • tomcat-users.xml


你可能感兴趣的:((JavaEE-02)Web服务器---Tomcat)