学习Tomcat(一)】的更多相关文章

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司的业务是使用tomcat做web容器,为了更有效的利用服务器的性能,我们一般部署多个tomcat做业务的负载均衡. 一.业务需求 目前一台服务器上,部署了4个tomcat,也就相当于4个节点.平时在维护业务时,需要我们一个一个tomcat实例进行单独的维护,感觉很不方便,所以就有了这篇文章. 但是为了更方便的管理这4个tomcat,我这边做了两方面的工作,一是把所有的tomcat工…
tomcat学习(8) 版权声明:本文为博主原创文章,未经博主允许不得转载. 今天学习TOMCAT,主要学习的是Tomcat的目录结构,配置文件! 1:Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求.实际上Tomcat 部分是Apache 服务器…
通过前面的文章我们知道,Tomcat的请求最终都会交给用户配置的servlet实例来处理.Servlet类是配置在配置文件中的,这就需要类加载器对Servlet类进行加载.Tomcat容器自定义了类加载器,有以下特殊功能:1. 在载入类中指定某些规则:2.缓存已经载入的类:3.实现类的预加载. 本文会对Tomcat的类加载器进行详细介绍. Java类加载双亲委派模型 Java类加载器是用户程序和JVM虚拟机之间的桥梁,在Java程序中起了至关重要的作用,关于其详细实现可以参考了java官方文档关…
一.负载均衡的简单配置 1.下载nginx 2.tomcat*2 配置不同的端口用于正常启动,在jsp中<%= session.getId()%>可以查看jSessionId,tomcat自带的root目录的应用是session是false的,内置对象没有seesion可以打开 3.配置nginx.conf upstream myserver{ #nginx代理的路径 可配置权重,长连接等 server 127.0.0.1:8888; server 127.0.0.1:9999; } serv…
一直在使用tomcat,但却不怎么熟悉tomcat的"运作流程",今天就 参照参考文章进行了代码搭建(代码的github在文末),并修改了一些操作.学习下tomcat的"运作流程",后续还会有文章对"运作流程"进行分析. 下载tomcat的源码,配置项目 不是tomcat用于部署项目的那个版本!是源码(本文中用的是tomcat7.0.67), 下载地址 解压tomcat,在根目录下新建一个home目录和一个pom.xml: pom.xml: &l…
打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:…
报错:Artifact FirstWeb:war exploded: Error during artifact deployment. See server log for details. SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframewor…
今天在修改项目一个JSP文件时,突然想到Tomat是怎么实现动态实时加载JSP编译后的class类的? 查了半天资料,看了很多文章,终于明白是怎么回事了:ClassLoader,当tomcat发现jsp改变后,将用新的ClassLoader去加载新的类 具体原理我将单独总结一下,这里简单实现了动态加载类 1.定义服务类 public class Servlet { public void service(){ System.out.println("运行服务方法"); } } 2.定义…
一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64.1782. 客户机 win7 对应主机 ip 为 10.10.64.227 四.环境搭建在java官网下载Linux的java 1.配置Java的变量环境: tar -zxvf jdk-8u11-linux-x64.tar.gz #解压Java的包mv jdk1.8.0_11/ / #把java嗯…
Tomcat是Apache软件基金会的一个顶级项目,由Apache.Sun和其它一些公司及个人共同开发,是目前比较流行的Web服务器之一.Tomcat是一个开源的.小型的轻量级应用服务器,具有占用系统资源少.扩展性好.功能丰富等优点.虽然Tomcat是一个轻量级容器,但是其本身实现还比较复杂,包含很多模块,本文会对Tomcat的基本结构和各个模块进行简单介绍. Servlet容器概念 Servlet容器也叫做Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提…
Tomcat容器的Server模块有管理容器的启动和关闭.管理了容器内的服务组件Service.管理了全局JNDI资源的功能,对Tomcat容器的生命周期管理有重要意义.Tomcat的服务组件则是Tomcat的两个核心组件连接器和servlet容器之间的桥梁.本文会对Tomcat容器的服务器组件Server和服务组件Service进行介绍. 服务器组件Server 我们知道Tomcat容器启动之后就可以一直保持服务,即使请求出现异常也不会退出,只有在收到特定的容器关闭命令时才会退出.Tomcat…
Tomcat最底层使用的是Java标准的SocketServer和Socket接受和处理请求,但是Socket接受到的数据是网络运输层的TCP或UDP协议的数据,需要转为Http或者其它应用层协议的数据.Tomcat中就是通过连接器Connector来管理Socket连接.解析Scoket请求为Request并封装响应数据为Response对象.新版本的Tomcat容器使用的连接器是Coyote框架,本文会详细介绍Connector的Coyote框架原理.本文很多内容参考了这篇博客 什么是Coy…
前面的文章中,我们介绍了Tomcat的Engine和Host容器,我们知道一个Tomcat最多只有一个Engine容器,一个Engine容器可以包含多个Host容器,请求中的不同的Host对应不用的Host容器.本章我们会介绍Tomcat的另外两个容器:Context容器和Wrapper容器.一个Host容器可以包含多个Context容器:同一个Host下面可以包含多个应用,每个应用对应一个Context容器.一个Context容器又可以包含多个Wrapper容器:每个Wrapper容器包含一个…
前面的文章中,我们介绍了Tomcat容器的关键组件和类加载器,但是现在的J2EE开发中更多的是使用SpringBoot内嵌的Tomcat容器,而不是单独安装Tomcat应用.那么Spring是怎么和Tomcat容器进行集成?Spring和Tomcat容器的生命周期是如何同步?本文会详细介绍Spring和Tomcat容器的集成. SpringBoot与Tomcat 使用SpringBoot搭建一个网页,应该是很多Spring学习者入门的案例.我们只需要在pom添加Spring的web-starte…
一.tomcat安装 1.部署java环境 # yum install java-1.8.0 # java -version 2.部署tomcat # mkdir /data/soft -p # cd /data/soft/ # wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.gz # tar zxf apache-tomcat-8.5.53…
一. Java简介 JDK: 面向开发人员使用的SDK,提供Java的开发环境和运行环境 SDK: 软件开发包,包括函数库.编译程序等 JRE: Java的运行环境,面向Java的使用者,不是开发者 二. Tomcat安装 1.软件准备 JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Tomcat下载:http://tomcat.apache.org/ 2.部署ja…
一.jdk和tomcat基础 1.web应用对比 apache: 两种方式运行php,一是用模块,二是用fastcgi nginx: 通过fastcgi处理动态请求,也可转发到tomcat 2.tomcat介绍 tomcat 下载地址: http://tomcat.apache.org/download-80.cgi tomcat 的监控主要是监控JVM 3.Java的版本介绍 J2EE: java企业版和嵌入式 J2SEE: java标准版 JME2: java手机版 jdk: 一个开发工具包…
本文主要讲学习Tomcat需要知道的基础知识. 一 Web服务器 1.1 简介 Web服务器可以解析HTTP协议.当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面. 为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术.无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览…
心得:在写这篇博客之前.我大致阅读一些关于Tomcat的书籍和博客等资料.有些资料由于时间的关系,解说的Tomcat版本号太老.有些资料能够非常好的说明Tomcat整理结构和设计思想可是非常多重要的问题由于篇幅的原因不能非常好的说明.还有写资料非常能够说明一些类和API但不能结合实际问题说明实际执行中的流程和设计思路等等. 当然我并非说它们不好.仅仅是不同的人的看到同一个事物和问题的角度和思路可能不同,出发点不同立意也会不同. 因此我想基于自己使用和学习Tomcat过程的一些问题和想法进行探究,…
Tomcat是J2EE开发人员最常用到的开发工具,在Java Web应用的调试开发和实际部署中,我们都可以看到Tomcat的影子.大多数时候,我们可以将Tomcat当做一个黑盒来看待,只需要将编写的Java Web工程进行部署即可,但是,在遇到一些比较复杂难解决的问题时,如果我们了解了Tomcat的内部实现原理将会处理起来更得心应手更快地定位问题.另外,通过学习Tomcat的源码还可以更加深入地了解JEE规范,学习常见的设计模式.本系列的文章,将会介绍Tomcat的核心功能是如何实现的,一方面作…
Tomcat是一个经典的web server,学习tomcat的源码对于我们是有很大的帮助的.前一段时间了解了tomcat的工作的大致流程,对我的新工作有了很大的帮助.刚学习了ClassLoader(学习classloader的初衷源于公司产品的一个bug),也将我对classloaderp写成了一篇博客.为了对ClassLoader有更多的理解,现在就来看看Tomcat 6 的ClassLoader设计. 之前通过对tomcat的启动过程.tomcat处理request的过程进行简单的了解,了…
说到本篇的tomcat类加载机制,不得不说翻译学习tomcat的初衷. 之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试.后来同事指导,说是直接把java类复制到src下就可以了.很纳闷....为什么会优先加载src下的java文件(编译出的class),而不是jar包中的class呢? 现在了解tomcat的类加载机制,原来一切是这么的简单. 类加载 在JVM中并不是一次性把所有的文件都加载到,而是一步一步的,按照需要来加…
做web项目,最常用的服务器就是Apache的tomcat.虽然一直在用tomcat,但都是仅限在使用的阶段,一直没有深入学习过.想深入学习tomcat,首推的肯定是官网:http://tomcat.apache.org/ (虽然全是英文,看起来比较晦涩,但还是推荐大家在官网学习,一方面权威,另一方面锻炼了自己的英文能力.博主自己英文不好,但仍坚持看官网.) 开始了解一下tomcat的内部结构,博主用的tomcat版本是:apache-tomcat-8.0.3-windows-x86,解压之后打…
Java前辈:学习J2EE流程中的经验和教训   在这里我谈谈我在学习j2ee流程,并谈到在此过程中领会的经验和教训.以便后来者少走弯路. Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE.这三块相互补充,应用范围不同. J2SE就是Java2的标准版,主要用于桌面应用软件的编程: J2ME主要应用于嵌入是系统开发,如手机和PDA的编程: J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统. 先学习j2se 要学习j2ee就要先学习…
本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数据库创建连接的消耗.正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供我们使用.主要有以下三个: DBCP数据库连接池 C3P0 数据库连接池 Tomcat内置的数据库连接池(DBCP) 本篇主要讲述C3P0数据库连接池的使用,关于另外两个数据库连接池的用法请看<开源数据库连…
Tomcat剖析(三):连接器(2) 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4. Tomcat剖析(三):连接器(2) 5. Tomcat剖析(四):Tomcat默认连接器(1) 6. Tomcat剖析(四):Tomcat默认连接器(2) 7. Tomcat剖析(五):容器 第一部分:概述 这一节基于<深度剖析Tomcat>第三章:连接器 总结而成,作为上一节的补充,补充上…
Tomcat剖析(三):连接器(1) 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4. Tomcat剖析(三):连接器(2) 5. Tomcat剖析(四):Tomcat默认连接器(1) 6. Tomcat剖析(四):Tomcat默认连接器(2) 7. Tomcat剖析(五):容器 第一部分:概述 这一节基于<深度剖析Tomcat>第三章:连接器 总结而成. 大家都知道Catali…
Tomcat剖析(五):Tomcat 容器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4. Tomcat剖析(三):连接器(2) 5. Tomcat剖析(四):Tomcat默认连接器(1) 6. Tomcat剖析(四):Tomcat默认连接器(2) 7. Tomcat剖析(五):容器 第一部分:概述 这一节基于<深度剖析Tomcat>第五章:容器 总结而成 一定要先到我的git…
号外:2016 最流行的是哪一种 Java 应用服务器呢? 通过从部署的 1240 个 JVM 中得到的数据,我们能够确定出现了 862 个容器供应商,或者说是占到了运行环境的 70% 左右.这些容器的供应商分布如下: Tomcat 的安装基数已经连续两年超过排行榜的 50%.占到总份额的 58.22% 无疑使其成为赢家. 免费.开源.跨平台的Tomcat无疑是我们开始学习Java EE的第一个服务器,会用对于日常开发完全够用了,但是还是要学一下Tomcat相关的原理和设计思想等,对于以后相关的…
这段时间简单的看了一下Tomcat的源码,在这里做个笔记!   1. tomcat 架构图 Catalina: tomcat的顶级容器,main()方法中就是通过,创建Catalina 对象实例,来启动或者关闭 tomcat: Server: 是管理tomcat所有组件的容器,包含一个或多个的service: Service: Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理: Conn…