从运维角度看 JAVA 技术

1. JAVA 技术

1.1. JAVA 技术的组成

Java 是一个面向对象的编程语言, 由 sun 公司所研发, 是目前世界上使用最普遍的编程语言之一前端

Java 技术的组成:java

  • JVM: Java 虚拟机, 提供 Java 的运行环境
  • JAVA 编程语言: 提供给程序员编写代码
  • JAVA Class: Java 的类文件格式, 决定 Java 程序编译出的字节码应该遵循的规范, 用于兼容不一样的 JVM
  • JAVA API: 提供 JavaAPI 接口, 缩短应用程序的开发周期

1.2. JVM

JVMJava 的核心和基础, 是 Java 解释器和 OS 平台之间的虚拟处理器(中间层), 它是一种基于操做系统和硬件平台利用软件方法抽象出的计算机
引入 Java 虚拟机后, 使得 Java 语言在不一样平台上运行时不须要从新编; 使得 Java 程序员在开发 Java 程序时只须要面对 JVM 编写代码便可, 不用关心底层的操做系统和硬件平台
Java 语言使用 Java 虚拟机屏蔽了与具体平台相关的信息, 使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标字节码, 就能够在多种平台上不加修改地运行程序员

1.3. JDK

JDKJava 语言的软件开发工具包, 是整个 Java 的核心, 它包含了 Java 的运行环境和 Java 工具
简单来讲 JDK = JAVA 编程语言 + JAVA API + 编译器 + JVM
JDK 的分类web

  • Java SE: 标准版, 是咱们一般用的一个版本
  • Java EE: 企业版, 使用这种 JDK 开发 J2EE 应用程序
  • Java ME: 主要用于移动设备、嵌入式设备上的 Java 应用程序

2. JAVA WEB 程序的实现

2.1. applet 类

applet 是采用 Java 编程语言编写的, 通过编译后 applet 程序能够嵌到 HTML 中去, 而后将 applet 程序发送到客户端, 客户端的浏览器只要安装有 JDK 插件就能执行这个 applet 程序, 并将结果经过浏览器显示在客户端上, 这即是客户端动态网站编程

客户端动态网站的缺点:浏览器

  1. 须要客户端安装 JDK 插件
  2. 若是 applet 带有病毒若是这个程序在客户端运行就可能会对客户端主机形成巨大的危害

由于这些缺点因此后来出现了服务器端动态的概念 tomcat

2.2. servlet 类

Servlet 是用 Java 编写的服务器端程序, 其主要功能为交互式的浏览和修改数据, 生成动态 WEB 资源
Servlet 可让 Java 语言根据 CGI 技术开发运行在服务器端的动态 WEB 程序, 但在通讯量大的服务器上 Java Servlet 的优势在于它们的执行速度更快于 CGI 程序
Servlet 各个用户请求被激活成单个程序中的一个线程, 而无需建立单独的进程, 这意味着服务器端处理请求的系统开销将明显下降服务器

Servlet 处理请求的过程:app

  1. 客户端发送请求至服务器端
  2. 服务器将请求信息发送至 Servlet
  3. Servlet 生成响应内容并将其传给服务器
  4. 服务器将响应返回给客户端

2.3. JSP

JSPJava 的服务器页面,它是 Servlet 的一个特殊类, 在根本上是一个简化的 Servlet 设计
JSP 是在传统的 HTML 文件中插入 Java 的程序段, 从而造成了 JSP 文件
开发 JSP 程序的一个著名框架就是 SSH(Structs, Spring, Hebernate)
JSP 实现了 HTML 语法中的 Java 扩展, 经过在服务器端执行 Java 代码而后将执行结果嵌入到 HTML 中返回给客户端
Servlet 主要是实现了用 Java 语言开发运行在 server 端的 WEB 动态资源
而这些依据 Java 语言开发的 WEB 动态资源大多数都是 .jsp 资源框架

2.4. servlet container 和 web container

Servlet Container 包含 JDK 以及 JDK 所不具有的功能, 可让一个 Servlet 运行起来, 有相应的 Servlet 进程
Servlet 进程负责接收前端 CGI 传递过来的请求, 并在本地的 JVM 上进行处理
Servlet 同时还负责监控本地的 .java 程序是否发生了修改, 一旦发生修改则从新让编译器编译成 .class 文件

Web Container 是一个包含 JasperServlet 相关的技术的框架, 其中 Jasper 负责监控本地的 .jsp 程序是否发生修改, 一旦修改就根据需求将其替换为 .java 源代码, 而 .java 就交给 Servlet 进行处理

Web Container 的商业实现: websphere, weblogic
Web Container 的开源实现: tomcat, jetty

相关文章
相关标签/搜索