從運(yùn)維角度看JAVA技術(shù)

1. JAVA 技術(shù)

1.1. JAVA 技術(shù)的組成

Java 是一個(gè)面向?qū)ο蟮木幊陶Z(yǔ)言, 由 sun 公司所研發(fā), 是目前世界上使用最廣泛的編程語(yǔ)言之一

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的阿拉爾網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Java 技術(shù)的組成:

  • JVM: Java 虛擬機(jī), 提供 Java 的運(yùn)行環(huán)境
  • JAVA 編程語(yǔ)言: 提供給程序員編寫(xiě)代碼
  • JAVA Class: Java 的類(lèi)文件格式, 決定 Java 程序編譯出的字節(jié)碼應(yīng)該遵循的規(guī)范, 用于兼容不同的 JVM
  • JAVA API: 提供 JavaAPI 接口, 縮短應(yīng)用程序的開(kāi)發(fā)周期
1.2. JVM

JVMJava 的核心和基礎(chǔ), 是 Java 解釋器和 OS 平臺(tái)之間的虛擬處理器(中間層), 它是一種基于操作系統(tǒng)和硬件平臺(tái)利用軟件方法抽象出的計(jì)算機(jī)
引入 Java 虛擬機(jī)后, 使得 Java 語(yǔ)言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編; 使得 Java 程序員在開(kāi)發(fā) Java 程序時(shí)只需要面對(duì) JVM 編寫(xiě)代碼即可, 不用關(guān)心底層的操作系統(tǒng)和硬件平臺(tái)
Java 語(yǔ)言使用 Java 虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息, 使得 Java 語(yǔ)言編譯程序只需生成在 Java 虛擬機(jī)上運(yùn)行的目標(biāo)字節(jié)碼, 就可以在多種平臺(tái)上不加修改地運(yùn)行

1.3. JDK

JDKJava 語(yǔ)言的軟件開(kāi)發(fā)工具包, 是整個(gè) Java 的核心, 它包含了 Java 的運(yùn)行環(huán)境和 Java 工具
簡(jiǎn)單來(lái)說(shuō) JDK = JAVA 編程語(yǔ)言 + JAVA API + 編譯器 + JVM
JDK 的分類(lèi)

  • Java SE: 標(biāo)準(zhǔn)版, 是我們通常用的一個(gè)版本
  • Java EE: 企業(yè)版, 使用這種 JDK 開(kāi)發(fā) J2EE 應(yīng)用程序
  • Java ME: 主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的 Java 應(yīng)用程序

2. JAVA WEB 程序的實(shí)現(xiàn)

2.1. applet 類(lèi)

applet 是采用 Java 編程語(yǔ)言編寫(xiě)的, 經(jīng)過(guò)編譯后 applet 程序可以嵌到 HTML 中去, 然后將 applet 程序發(fā)送到客戶(hù)端, 客戶(hù)端的瀏覽器只要安裝有 JDK 插件就能執(zhí)行這個(gè) applet 程序, 并將結(jié)果通過(guò)瀏覽器顯示在客戶(hù)端上, 這便是客戶(hù)端動(dòng)態(tài)網(wǎng)站

客戶(hù)端動(dòng)態(tài)網(wǎng)站的缺點(diǎn):

  1. 需要客戶(hù)端安裝 JDK 插件
  2. 如果 applet 帶有病毒如果這個(gè)程序在客戶(hù)端運(yùn)行就可能會(huì)對(duì)客戶(hù)端主機(jī)造成巨大的危害

因?yàn)檫@些缺點(diǎn)所以后來(lái)出現(xiàn)了服務(wù)器端動(dòng)態(tài)的概念

2.2. servlet 類(lèi)

Servlet 是用 Java 編寫(xiě)的服務(wù)器端程序, 其主要功能為交互式的瀏覽和修改數(shù)據(jù), 生成動(dòng)態(tài) WEB 資源
Servlet 可以讓 Java 語(yǔ)言根據(jù) CGI 技術(shù)開(kāi)發(fā)運(yùn)行在服務(wù)器端的動(dòng)態(tài) WEB 程序, 但在通信量大的服務(wù)器上 Java Servlet 的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于 CGI 程序
Servlet 各個(gè)用戶(hù)請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程, 而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程, 這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開(kāi)銷(xiāo)將明顯降低

Servlet 處理請(qǐng)求的過(guò)程:

  1. 客戶(hù)端發(fā)送請(qǐng)求至服務(wù)器端
  2. 服務(wù)器將請(qǐng)求信息發(fā)送至 Servlet
  3. Servlet 生成響應(yīng)內(nèi)容并將其傳給服務(wù)器
  4. 服務(wù)器將響應(yīng)返回給客戶(hù)端
2.3. JSP

JSPJava 的服務(wù)器頁(yè)面,它是 Servlet 的一個(gè)特殊類(lèi), 在根本上是一個(gè)簡(jiǎn)化的 Servlet 設(shè)計(jì)
JSP 是在傳統(tǒng)的 HTML 文件中插入 Java 的程序段, 從而形成了 JSP 文件
開(kāi)發(fā) JSP 程序的一個(gè)著名框架就是 SSH(Structs, Spring, Hebernate)
JSP 實(shí)現(xiàn)了 HTML 語(yǔ)法中的 Java 擴(kuò)展, 通過(guò)在服務(wù)器端執(zhí)行 Java 代碼然后將執(zhí)行結(jié)果嵌入到 HTML 中返回給客戶(hù)端
Servlet 主要是實(shí)現(xiàn)了用 Java 語(yǔ)言開(kāi)發(fā)運(yùn)行在 server 端的 WEB 動(dòng)態(tài)資源
而這些依據(jù) Java 語(yǔ)言開(kāi)發(fā)的 WEB 動(dòng)態(tài)資源大多數(shù)都是 .jsp 資源

2.4. servlet container 和 web container

Servlet Container 包含 JDK 以及 JDK 所不具備的功能, 可以讓一個(gè) Servlet 運(yùn)行起來(lái), 有相應(yīng)的 Servlet 進(jìn)程
Servlet 進(jìn)程負(fù)責(zé)接收前端 CGI 傳遞過(guò)來(lái)的請(qǐng)求, 并在本地的 JVM 上進(jìn)行處理
Servlet 同時(shí)還負(fù)責(zé)監(jiān)控本地的 .java 程序是否發(fā)生了修改, 一旦發(fā)生修改則重新讓編譯器編譯成 .class 文件

Web Container 是一個(gè)包含 JasperServlet 相關(guān)的技術(shù)的框架, 其中 Jasper 負(fù)責(zé)監(jiān)控本地的 .jsp 程序是否發(fā)生修改, 一旦修改就根據(jù)需求將其替換為 .java 源代碼, 而 .java 就交給 Servlet 進(jìn)行處理

Web Container 的商業(yè)實(shí)現(xiàn): websphere, weblogic
Web Container 的開(kāi)源實(shí)現(xiàn): tomcat, jetty

分享名稱(chēng):從運(yùn)維角度看JAVA技術(shù)
分享鏈接:http://bm7419.com/article4/jdciie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)