从运维角度看 JAVA 技术
作者:互联网
1. JAVA 技术
1.1. JAVA 技术的组成
Java
是一个面向对象的编程语言, 由 sun
公司所研发, 是目前世界上使用最广泛的编程语言之一
Java
技术的组成:
JVM
:Java
虚拟机, 提供Java
的运行环境JAVA 编程语言
: 提供给程序员编写代码JAVA Class
: Java 的类文件格式, 决定Java
程序编译出的字节码应该遵循的规范, 用于兼容不同的JVM
JAVA API
: 提供Java
的API
接口, 缩短应用程序的开发周期
1.2. JVM
JVM
是 Java
的核心和基础, 是 Java
解释器和 OS
平台之间的虚拟处理器(中间层), 它是一种基于操作系统和硬件平台利用软件方法抽象出的计算机
引入 Java
虚拟机后, 使得 Java
语言在不同平台上运行时不需要重新编; 使得 Java
程序员在开发 Java
程序时只需要面对 JVM
编写代码即可, 不用关心底层的操作系统和硬件平台 Java
语言使用 Java
虚拟机屏蔽了与具体平台相关的信息, 使得 Java
语言编译程序只需生成在 Java
虚拟机上运行的目标字节码, 就可以在多种平台上不加修改地运行
1.3. JDK
JDK
是 Java
语言的软件开发工具包, 是整个 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
程序, 并将结果通过浏览器显示在客户端上, 这便是客户端动态网站
客户端动态网站的缺点:
- 需要客户端安装
JDK
插件 - 如果
applet
带有病毒如果这个程序在客户端运行就可能会对客户端主机造成巨大的危害
因为这些缺点所以后来出现了服务器端动态的概念
2.2. servlet 类
Servlet
是用 Java
编写的服务器端程序, 其主要功能为交互式的浏览和修改数据, 生成动态 WEB 资源 Servlet
可以让 Java
语言根据 CGI
技术开发运行在服务器端的动态 WEB
程序, 但在通信量大的服务器上 Java Servlet
的优点在于它们的执行速度更快于 CGI
程序Servlet
各个用户请求被激活成单个程序中的一个线程, 而无需创建单独的进程, 这意味着服务器端处理请求的系统开销将明显降低
Servlet
处理请求的过程:
- 客户端发送请求至服务器端
- 服务器将请求信息发送至
Servlet
Servlet
生成响应内容并将其传给服务器- 服务器将响应返回给客户端
2.3. JSP
JSP
是 Java
的服务器页面,它是 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
是一个包含 Jasper
和 Servlet
相关的技术的框架, 其中 Jasper
负责监控本地的 .jsp
程序是否发生修改, 一旦修改就根据需求将其替换为 .java
源代码, 而 .java
就交给 Servlet
进行处理
Web Container
的商业实现: websphere
, weblogic
Web Container
的开源实现: tomcat
, jetty
标签:Java,JDK,程序,角度看,从运维,Servlet,JAVA,客户端 来源: https://blog.51cto.com/hongchen99/2435821