文档章节

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

_-Leon-_
 _-Leon-_
发布于 2014/06/13 17:12
字数 2318
阅读 306
收藏 18

#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

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

© 著作权归作者所有

共有 人打赏支持
_-Leon-_
粉丝 11
博文 17
码字总数 34045
作品 0
朝阳
部门经理
私信 提问
加载中

评论(3)

王爵nice
王爵nice
讲解的比较详细,顶一个0
许雷神
许雷神
厉害,支持
湖心亭看雪
湖心亭看雪
大神啊,我是菜鸟,求带啊
【整理】WEB 容器、WEB服务和应用服务器的区别与联系

对于一个不了解 WEB 开发的人来说,下面的概念是为了免于被别人鄙视和忽悠的~~ 【web 容器】 何为容器: 容器是一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用...

摩云飞
2013/11/22
0
3
Tomcat,JBoss与JBoss Web

最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考。 一、Tomcat Tomcat 服务器是免费开源的Web 应用服务器。支持最新的Servlet 和J...

thinkyoung
2014/11/16
0
0
Apache与Tomcat有什么关系和区别

经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结...

天下杰论
2015/06/03
0
1
apache和tomcat区别

经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结...

Yamazaki
2012/09/26
0
0
六、JSP的由来以及与Servlet的关系

JavaWeb在有了Servlet这项技术以后,就可以编写动态网页了。在动态网页中,一般来说样式是不变的,变化的是数据。如果程序员在Servlet类中写了大量的静态代码,例如out.println("<html>");这...

Wakeeee_
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql load data 批量导入使用

最近在研究使用mycat,其中有使用批量数据导入,简单记录一下使用方式。 查看系统属性 mysql>show variables like '%secure%'+--------------------------+-----------------------+| Vari...

FansinZhao
10分钟前
0
0
浅谈React的最大亮点——虚拟DOM

在Web开发中,需要将数据的变化实时反映到UI上,这时就需要对DOM进行操作,但是复杂或频繁的DOM操作通常是性能瓶颈产生的原因,为此,React引入了虚拟DOM(Virtual DOM)的机制。 一、什么是...

peakedness丶
14分钟前
0
0
下一代大数据处理引擎,阿里云实时计算独享模式重磅发布

摘要: 11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/CPU/内存等资源上跟其他用户完全独立,是实时计算在原有共享模式基础上的重大升级。...

阿里云官方博客
18分钟前
0
0
Spring MVC 测试样例

1、需要javax.servlet-api V3.0以上支持 <!--3.0以上版本--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-......

jcc_codingBoy
20分钟前
2
0
kettle增量同步oracle数据到mysql

kettle增量同步oracle数据到mysql 适合表中有更新时间的字段 kettle安装 绿色,下载后解压即可(略), -> Download 连接数据库 需要导入jdbc相关驱动jar包到lib目录(oracle、mysql对应jar...

o00o
25分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部