设为首页 收藏本站
查看: 3029|回复: 0

[经验分享] Web服务器之Tomcat的相关说明

[复制链接]

尚未签到

发表于 2018-12-1 09:57:42 | 显示全部楼层 |阅读模式
  1、C/S架构和B/S架构的概念:
  a、C/S架构:
  -  C/S,Client/Server,客户端/服务器,客户端需要安装专用的客户端软件。客户端是针对某以具体业务专门开发的软件。
  -  由于客户端是专用的软件,所以客户端程序一般也具有对具体业务进行处理的能力。从而减轻对服务端的处理压力,使得服务端的运算速度更快,对客户端的响应更快。
  -  也正是由于客户端是需要专门安装的专用软件,所以导致C/S架构的系统也出现了致命的问题:版本升级成本异常地高。无论是由于客户端软件本身功能的升级,或者是由于服务端的升级导致客户端也必须进行升级,无论什么原因导致客户端需要升级,每一个客户端机器上都必须先获取到新版本软件,再将老版本进行卸载替换。C/S架构系统的每一次客户端升级,都需要企业为之付出人力、物力和财力上的成本代价。
  b、B/S架构:
  -  B/S,Browser/Server,浏览器/服务器。B/S架构,其实也是一种特殊的C/S架构,只不过,这个Client特指的是浏览器。
  -  对于B/S架构的系统,需要客户端安装有浏览器,那么客户端就可以访问服务器。而整个系统的升级,只需要升级服务器端程序即可。所以,B/S架构的系统最大的优点就是不存在客户端升级问题。
  -  由于客户端不是专门针对某一具体业务而设计,是一个通用的客户端,所以客户端几乎没有任何对具体业务进行处理运算的能力。而对于具体业务的处理压力,全部加在了服务端,从而导致服务器程序运算速度降低,对客户端的响应速度降低,影响了客户体验。
  -  另外,B/S架构系统还存在一个问题:浏览器兼容问题。虽然客户端只需要一个浏览器即可访问服务端,但由于现在浏览器品牌、版本很多,而其实现技术千差万别,所以导致服务端需要想办法兼容各种浏览器版本。这无形中又增加了服务器端的压力。
  2、Web访问中的角色与协议:
  -  Web访问中的角色与协议示意图:(角色有4个,浏览器,Web服务器,服务器端程序和DB;协议有3个,HTTP协议,Servlet协议,JDBC协议。)

  -  所谓协议,即是规范、规则,是通信双方事先的约定。
  -  HTTP协议要求,通行双方,即浏览器与服务器双方,都需要按照指定的格式发出请求与响应。对方按照协议,即事先的约定,对对方发送来的信息进行解析。
  -  Servlet协议要求,若程序员要开发完成某一个具体业务的服务端程序,则必须实现Servlet接口,使用ServletAPI进行数据传递。
  -  JDBC协议要求,服务器端程序若要连接并操作数据库,则需要按照JDBC协议中的规定的方式(接口方法)获取DB连接,进行SQL的执行、进行结果的获取。而JDBC协议(接口)的实现,均由数据库厂商来完成。放于数据库厂商提供的数据库驱动jar包即可。所以,我们连接不同的数据库,就需要导入不同的数据库驱动jar包。
  -  此外,还有JavaEE协议:Servlet协议是JavaEE协议里的一部分。JavaEE协议即进行JavaWeb开发的一套API,除了包含Servlet协议外,JSTL协议、JPA协议等。目前使用较多的版本是JavaEE5.0。JavaEE5.0包含的是Servlet2.5协议。JavaEE6.0包含的是Servlet3.0协议。而Servlet2.5与Servlet3.0版本的一个很大的区别在于:Servlet3.0支持对Servlet、Filter、Listener类的注解式开发。
  3、Web服务器之Tomcat的相关说明:
  a、Tomcat的简单认识:
  -  实际应用中实现了JavaEE规范的Web服务器有很多,如Oracle的WebLogic(需购买)、IBM的WebSphere(需购买)、RedHat公司的JBoss(不支持Servlet规范,开源免费)等,这些都称为重量级服务器。
  -  Apache的Tomcat(Apache软件基金会的一个开源项目,可以在其官网http://www.apache.org/中下载),只是JavaEE规范中Servlet/JSP规范的实现者(也包括EL和WebSocket协议 ),所以其实是一个轻量级的服务器,它是开源免费的。Tomcat也称之为Web容器,或者是Servlet容器,但是不能够称之为JavaEE容器。
  -  官网中的Tomcat9.0安装包和源码包下载图片截取:


  -  引申出的一个概念:JCP(官网为http://jcp.org),Java Community Process,Java审核社区,是一个开放的国际组织,主要负责规范、监督Java的发展,其他个人、企业、机构等制定的Java规范,必须通过JCP审核后,才能够被认定为Java规范,JCP的创始者为SUN公司。
  b、Tomcat的安装与目录结构:
  -  Tomcat的安装,即将其解压缩包即可,无需向导式的安装过程。解压缩后可以对Tomcat的根目录更名。
  c、Tomcat的运行环境配置:
  -  Tomcat安装完毕后,需要安装JDK或者JRE。对于Tomcat5以及以前版本,要求必须安装JDK,而对于Tomcat6及其之后版本可以只安装JRE而不需要安装JDK。
  -  在安装JDK时配置系统环境变量JAVA_HOME,将其bin目录添加到path变量即可。(Tomcat不需要其他配置)


  -  如果没有配置系统环境变量,则在命令行中会显示如下错误:

  d、Tomcat的启动和访问:
  -  在设置完前面的环境变量之后,Tomcat即可进行启动。
  -  进入命令行窗口的Tomcat目录的bin目录下,执行startup.bat命令,即可看到Tomcat的启动过程。当然,也可以在Window窗口中,找到Tomcat目录的bin目录,直接双击startup.bat文件启动Tomcat。(shutdown.bat文件为关闭Tomcat)
  -  可以通过在浏览器地址栏上键入localhost:8080来访问Tomcat。



  4、JavaEE规范要求JavaWeb项目的程序结构是:
  -  在当前应用所在目录中可以直接存放资源文件,如.html、.jpg等,也可以将其放入到子目录中访问。
  -  若Web项目中包含Serlvet代码,则Servlet的字节码文件必须存放在当前应用所在子目录/WEB-INF/classes中。
  -  在/WEB-INF/下可以包含web.xml配置文件,定义请求URI与所要访问的Serlvet间的映射关系、指定欢迎页面等。
  -  在/WEB-INF下可以包含子目录lib,用于存放当前Web应用所使用的外部jar包。
  -  在/WEB-INF/目录中的资源不能被浏览器直接访问。
  -  如下所示:

--- 项目根目录
   ---html、jsp、js、css、jpg等资源文件
   ---子目录
       ---相关资源文件
   ---WEB-INF
       ---classes
       ---lib
       ---web.xml
       ---html、jsp等资源文件
  5、解读server.xml文件:

  6、Tomcat中的context.xml说明、Context标签讲解:
  a、在tomcat5.5之前:Context体现在/conf/server.xml中的Host里的元素中,它由Context接口定义。每个元素代表了运行在虚拟主机上的单个Web应用。
  -  server.xml文件,如 。
  -  path表示要创建的虚拟目录,它指定访问Web应用的上下文根,如http://localhost:8080/kaka/...;docBase:为应用程序的路径或者WAR文件存放的路径,可以是绝对路径,也可以是相对路径(相对路径是相对于)。

  -  reloadable:如果这个属性设置为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录class文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web引用,这样我们可以在不重启tomcat的情况下改变应用程序。

  -  一个Host元素中嵌套任意多个的Context元素。每个Context的路径必须是唯一的,由path属性定义。另外,你必须定义一个path=""的Context,这个Context称之为该虚拟主机的缺省web应用,用来处理那些不能够匹配任何Context的Context路径的请求。
  b、在tomcat5.5之后:
  -  不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动以后,要修改这个文件,就得重新启动服务器才能够重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变),就会自动重新加载这个文件,而不需要重启服务器。
  -  如下所示:

     
    WEB-INF/web.xml
    WEB-INF/kaka.xml 监控资源文件,如果web.xml || kaka.xml改变了,则自动重新加载该应用。
     表示数据库URL地址
      c、附录:context.xml的三个作用范围:
  -  tomcat server级别:在/conf/context.xml里配置。
  -  Host级别:在/conf/Catalina/${webAppName}.xml,继而进行配置。
  -  web app级别:在/conf/Catalina/$(hostName}里添加${webAppName}.xml,继而进行配置。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641852-1-1.html 上篇帖子: Tomcat启动权限 下篇帖子: 在action里得到tomcat路径
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表