分类: Java
2018-02-02 14:33:36
1、 技术体系:
我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
2、 JVM的架构:
JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。
3、 在JSEE中的两个重要规范:JSP、Serverlet
Servlet:
a) 目的:客户发出一个http请求时,serlvet可以解析http语句,接着调用jdk完成代码执行,然后返回一个html格式数据
b) 实现过程:编码是需要将html标签硬编码在应用程序中
JSP:
a) 目的:解决Servlet硬编码html标签的问题,可理解是servlet的前端
b) 实现过程:翻译内嵌于html中的代码
JDK +Servlet是servlet容器,JDK + Servlet + JSP是Web 容器。
4、 SUN把Servlet和JSP称之为一种规范。商业公司提供了实现这些规范的类库和API,比如weblogic
商业实现:Weblogic、Websphere、Jboss、Oc4j、Glassfish、JOnAs
开源实现:Tomcat、jetty、Resin。其编译速度分别是:8秒、13秒、7秒
5、 Tomcat架构简介:
a) Server:实例(一个单独的java进程)。通常一个JVM只能包含一个tomcat实例。一台物理服务器可以在启动多个JVM的情况下启动多个tomcat实例
b) Engine:用于运行JSP或Servlet代码
c) Connector:接收用户请求并分发给引擎,将运行结果构建成相应报文。不能属于多个引擎。相当于webserver
d) Service:把连接器和引擎关联起来,让双方理解对方的格式,一个Service内部只能有一个Engine。一个Server内部可以有多个Service,通常情况下一个Server内部只有一个Service
e) Virtualhost:类似于apache中的虚拟主机,一个Engine中必须要包含至少一个虚拟主机。定义了应用存放的根路径。虚拟主机可以用“alias”来定义别名。
f) Context:各个应用程序相关参数的定义
6、 Tomcat中的重要配置文件:
a) Server.xml:主配置文件
b) Context.xml :每个webapp都可以有专用的配置文件,位于webapp应用程序目录下的WEB-INF下,用于定义会话管理器、JDBC等。应用可以没有此文件,使用默认的conf/下的context.xml
c) Web.xml :webapp部署描述符,为所有app提供默认的部署相关配置。
d) Tomcat-users.xml 用户认证的账号和密码配置文件
e) Catalina.policy:tomcat安全运行策略
f) Catalina.properties:Java属性文件,定义相关的性能参数等
7、 Server.xml的文件对Server、service、connector、host的定义方式:
…
…
…