从运维角度看JAVA技术

1. JAVA 技术

1.1. JAVA 技术的组成

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

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的阿拉尔网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

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 的分类

  • 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 带有病毒如果这个程序在客户端运行就可能会对客户端主机造成巨大的危害

因为这些缺点所以后来出现了服务器端动态的概念

2.2. servlet 类

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

Servlet 处理请求的过程:

  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


本文题目:从运维角度看JAVA技术
链接分享:http://scyanting.com/article/jdciie.html