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

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

  • 电子商务平台
  • 各类社区
  • 银行、电信领域以及各种金融行业的应用系统
  • 企业内部大型应用系统(ERP、CRM、OA等)
  • 大数据(以Hadoop为中心的技术群)
  • 搜索引擎(Nutch、Lucene、Solr等)
  • 云计算、云服务等

Web开发已是将来的大势所趋(WebQQ,ChromeOS,强悍的HTML5),不论如今是否进入到移动时代,可是将来必然是网络时代,全部的任何形式的客户端,都须要网络服务端来提供服务。因此学好Web开发,对将来很是有好处,发展前景很是好!html

##Web资源 Web,它用于表示Internet主机上供外界访问的资源。Web资源分为两类: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资源,供别人浏览和使用。(服务器的概念)apache

一个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

##安装Tomcattomcat

  • 首先下载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目录

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目录结构 在这些资源中,web.xml是很是重要的一个文件,咱们使用它来管理整个web应用的相关配置,用它能够配置网站的首页、映射servlet、配置应用的监听器、过滤器等等。

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

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

能够配置多个虚拟主机 配置默认的虚拟主机,在host的父元素<Engine>元素的属性中配置: defaultHost="localhost"

Tomcat体系结构图: 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
相关文章
相关标签/搜索