首页 > 代码库 > Tomcat
Tomcat
编程语言介绍 系统级 C C++ go erlang 应用级 C# Java Python Perl Ruby php 虚拟机 pvm jvm 提供运行环境 动态网站 asp .net jsp 面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 JAVA变成语言的特性 面向对象、多线程、结构化错误处理 垃圾收集、动态链接、动态扩展 POSIX: 可移植操作系统接口 jvm将java字节码解释为具体平台的具体指令.做到跨平台 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在jvm上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。jvm在执行字节码时,把字节码解释成具体平台上的机器指令执行 1996 JDK(Java Development Kit),包含一个JVM JDK1.0 JVM Applet AWT 1997 JDK 1.1 JAR文档格式:JDBC JavaBean 1998 JDK1.2 Sun把Java技术分为 J2SE ==> Java 2 SE J2EE ==> Java 2 EE J2ME ==> Java 2 ME 代表性技术:EJB Java Plug-in Swing Jit编译器 三个技术流派(重新命名) J2SE ==> Java 2 SE 【java 核心API+JDK(JRE+工具及工具集API)】 J2EE ==> Java 2 EE 【Java 2 EE 核心API + Java 2 SE 】 J2ME ==> Java 2 ME
2000 JDK1.3 2002 JDK1.4 2006 Sun开源Java技术,遵循GPL,并建立OpenJDK组织管理这些代码 2009 Oracle收购Sun Java体系结构 Java编程语言 Java Class文件格式 Java API Java VM
java的执行
.java==>javac complier==>.class ==>jvm
jvm核心组成部分
class loader: 装载java程序类文件及java API类文件(可以调用OS native API(DSO),但是不能跨平台,应该避免 )
执行引擎
java runtime data areas
方法区 Method Area 用于存储jvm加载的类、常量、静态变量等,永久代。也是线程共享
堆 Heap 是jvm所管理的内存中最大的一部分,线程共享,也是GC管理的主要区域,主流的算法基于分代方式进行,新生代、老年代。
Java栈 java Stack 线程私有,存放线程自己的局部变量等信息
指令计数器Program Counter Register 线程独占的内存空间
本地方法栈Native Method Stack
configuring the heap and garbage collector
Sun公司创建了第一个Servlet容器,即Java Web Server,但是JWS只是为了演示Servlet的相应功能,所以很不稳定,
于此同时,ASF创建了JServ项目,一个能与apache整合起来的servlet容器
1999年,Sun将JWS捐给了ASF,于是两个项目合二为一,即Tomcat前身,第一个tomcat版本是Tomcat3.0系列,
而发布于2001年的Tomcat4.0是在此基础上进行了重新设计和实现,其代码项目命名为catalina
JavaApplet
是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果。
Java Servlet
是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。广义的Servlet是指任何实现了这个Servlet接口的类
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP的执行过程主要可以分为以下几点:
客户端发出请求。
Web JSP Container(jasper)将JSP转译成Servlet源代码。
Web容器将产生的Serverlet源代码进行编译成.calss
Web JVM容器加载编译后的.class代码并执行
Web服务将结果返回给客户端
==>当JSP网页在执行时,JSP Container 会做检查工作,如果发现JSP网页有更新修改时,JSP Container 才会再次编译JSP成 Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet.
JAVA 2 EE: 包含的技术
JAVA 2 SE: JNDI JAXP
Servlet,JSP,EJB,JMS,JMX,JTA,JavaMAil
==>而tomcat则是j2EE部分功能即j2se和 Servlet和JSP是实现
Web Container: JDK + Servlet+ JSP
商业实现:
WebSphere(IBM)
Weblogic(BEA--ORACLE)
Occupati
Oc4j
Glassfish
JBoss
开源实现:
Tomcat(官方实现)
jetty(轻量级)
resin(商用收费)
Tomcat安装# rpm -ivh jdk-8u111-linux-x64.rpm
部署前提:
jdk:
Oracle JDK
或OpenJDK (java-1.8.0-openjdk)
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
#. /etc/profile.d/java.sh
#tar -xf apache-tomcat-8.0.39.tar.gz -C /usr/local/
#cd /usr/local/
#ln -s apache-tomcat-8.0.39/ tomcat
#vi /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
#. /etc/profile.d/tomcat.sh
# catalina.sh version
# catalina.sh configtest 检查语法
# catalina.sh --help
..................
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result
version What version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined
# catalina.sh start 启动tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
Tomcat