Java
是一個面向對象的編程語言, 由 sun
公司所研發, 是目前世界上使用最普遍的編程語言之一前端
Java
技術的組成:java
JVM
: Java
虛擬機, 提供 Java
的運行環境JAVA 編程語言
: 提供給程序員編寫代碼JAVA Class
: Java 的類文件格式, 決定 Java
程序編譯出的字節碼應該遵循的規範, 用於兼容不一樣的 JVM
JAVA API
: 提供 Java
的 API
接口, 縮短應用程序的開發週期JVM
是 Java
的核心和基礎, 是 Java
解釋器和 OS
平臺之間的虛擬處理器(中間層), 它是一種基於操做系統和硬件平臺利用軟件方法抽象出的計算機
引入 Java
虛擬機後, 使得 Java
語言在不一樣平臺上運行時不須要從新編; 使得 Java
程序員在開發 Java
程序時只須要面對 JVM
編寫代碼便可, 不用關心底層的操做系統和硬件平臺 Java
語言使用 Java
虛擬機屏蔽了與具體平臺相關的信息, 使得 Java
語言編譯程序只需生成在 Java
虛擬機上運行的目標字節碼, 就能夠在多種平臺上不加修改地運行程序員
JDK
是 Java
語言的軟件開發工具包, 是整個 Java
的核心, 它包含了 Java
的運行環境和 Java
工具
簡單來講 JDK = JAVA 編程語言 + JAVA API + 編譯器 + JVM
JDK 的分類web
JDK
開發 J2EE
應用程序Java
應用程序applet
是採用 Java
編程語言編寫的, 通過編譯後 applet
程序能夠嵌到 HTML
中去, 而後將 applet
程序發送到客戶端, 客戶端的瀏覽器只要安裝有 JDK
插件就能執行這個 applet
程序, 並將結果經過瀏覽器顯示在客戶端上, 這即是客戶端動態網站編程
客戶端動態網站的缺點:瀏覽器
JDK
插件applet
帶有病毒若是這個程序在客戶端運行就可能會對客戶端主機形成巨大的危害由於這些缺點因此後來出現了服務器端動態的概念 tomcat
Servlet
是用 Java
編寫的服務器端程序, 其主要功能爲交互式的瀏覽和修改數據, 生成動態 WEB 資源 Servlet
可讓 Java
語言根據 CGI
技術開發運行在服務器端的動態 WEB
程序, 但在通訊量大的服務器上 Java Servlet
的優勢在於它們的執行速度更快於 CGI
程序Servlet
各個用戶請求被激活成單個程序中的一個線程, 而無需建立單獨的進程, 這意味着服務器端處理請求的系統開銷將明顯下降服務器
Servlet
處理請求的過程:app
Servlet
Servlet
生成響應內容並將其傳給服務器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
資源框架
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