1 / 61

Java 簡介

Java 簡介. 什麼是 Java. 1990 年 12 月昇陽公司 (Sun) Green Team 小組,發展出 Oak 語言 Oak( 橡樹 ) 已被註冊使用,故改名為 Java 1995 年 Sun 正式推出 Java 語言 是一種高階的程式語言 Java 程式碼不會因執行環境的改變而重新改寫或重新編譯  Write once, run anywhere 跨平台. 跨平台. ….. …… ….. …. compiler. Interpreter. Bytecode. This is a test …. ACCDEBCC ….

Download Presentation

Java 簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 簡介

  2. 什麼是 Java • 1990年12月昇陽公司(Sun) Green Team小組,發展出Oak語言 • Oak(橡樹) 已被註冊使用,故改名為Java • 1995年Sun正式推出Java語言 • 是一種高階的程式語言 • Java程式碼不會因執行環境的改變而重新改寫或重新編譯  Write once, run anywhere • 跨平台

  3. 跨平台 ….. …… ….. …..

  4. compiler Interpreter Bytecode This is a test … ACCDEBCC… Java • Compiler: 編譯 • 將程式原始碼轉換成位元碼(bytecode) • 利用此中間格式便於在其他平台執行 10101110100.. Interpreter: 解譯 • Java虛擬機器(Java Virtual Machine) • 載入位元碼並轉換成該平台可以執行的程式碼

  5. Java • Compiler: 編譯 • Interpreter: 解譯 Source Code Bytecode

  6. JVM compiler JVM Bytecode JVM ACCDEBCC… JVM JVM JVM JVM Java: 跨平台 ….. …… ….. …..

  7. 安裝 Java Development Kit (JDK) • 第一個版本: JDK 1.0a2版本 • Java 2 SDK • Java的版本 • J2SE (Standard Edition) • 開發工具 (SDK, Development Tools) • 執行環境 JRE (Java Runtime Environment) • Web執行環境 (Java Plug-in) • J2EE (Enterprise Edition) • 開發商業或伺服器應用程式的套件 • J2ME (Micro Edition) • 開發行動電話/無線通訊的套件

  8. 安裝 Java Development Kit (JDK) • 從 java.sun.com 下載 • 安裝 • 設定環境變數

  9. C:\program files\

  10. 控制台  效能及維護  系統

  11. Java “Hello world” • public class hello{ publicstatic void main (String[] argv){ System.out.println("Hello world.."); } } • hello.java為檔名儲存 • javac hello.java (編譯程式)  hello.class • java hello (執行程式)

  12. 按一下視窗做demo

  13. Java Server Page 初步認識

  14. WWW基本觀念 - WWW的誕生 • WWW World Wide Web,全球資訊網,簡稱3W • 發源地:歐洲量子物理實驗室 • 發展目的:透過網路呈現文字、聲音、影像、圖形的分散式多媒體資訊系統 • 不受瀏覽者所使用電腦系統種類的限制,達到跨平台共享資訊的目的。

  15. 我要瀏覽A網頁 給你A網頁 WWW基本觀念 - WWW的架構 • WWW的架構,分為 • 伺服端(Server,或稱遠端),資訊提供者 • 客戶端(Client,或稱近端),資訊的接收者 客戶端 伺服端

  16. ■ 靜態網頁 (客戶端Script) URL Internet 伺服器 HTML URL的全文為Uniform Resource Locator,譯為統一資源定位器。 指定欲取得Internet上資源的位置與方式 http://tw.yahoo.com/index.html

  17. WWW基本觀念 - HTML語言 • 網頁(.htm檔)最基礎技術為HTML語法 • HyperText Makeup Language,譯為超文件標記語言 • HTML描述超文件中資料的呈現方式 • 文字的顏色、大小,標示資料的種類為圖檔或者聲音等。 • 利用一個個的HTML標籤,將欲進行格式控制的資料包夾起來。 • <B></B>標籤,控制『hello world』,以粗體字的方式顯示在瀏覽器內。 <B>hello world</B>

  18. HTML • <HTML> • <Title> 第一個Html程式 </Title> • <Body> • This is a test…… • <B>hello word</B><br> • </Body> • </HTML>

  19. 下載網頁至客戶端 經瀏覽器執行程式 將網頁顯示 在瀏覽器中 ■ 靜態網頁 (客戶端Script)- 執行於客戶端的網頁程式語言 程 式 伺服端 客戶端

  20. 網站程式的發展 靜態HTML網頁 動態HTML網頁

  21. ■ 動態網頁 (客戶端Script) URL 伺服器 JavaScript VBScript Java Applet 動畫、日期顯示、遊戲 JavaScript  Netscape 1995 VBScript  Microsoft

  22. JavaScript • <html> • <body> • <!-------JavaScript收集區 每日一語_開始--------> • <script language="JavaScript"> • <!-- • tips = new Array(4); • tips[0] = "相信明天一定比今天好"; • tips[1] = "相信努力以赴必有收穫"; • tips[2] = "相信面對難關決不低頭"; • tips[3] = "相信風調雨順國泰民安"; • index = Math.floor(Math.random() * tips.length); • document.write("<CENTER><P><FONT SIZE=2 COLOR=DARKBLUE>" + tips[index] + "</CENTER></FONT></P>"); • // --> • </script> • <!-------JavaScript收集區 每日一語_結束--------> • </body> • </html>

  23. 下載網頁至客戶端 經瀏覽器執行程式 將網頁顯示 在瀏覽器中 執行於客戶端的網頁程式語言 JavaScript 程式 程 式 伺服端 客戶端

  24. Java “Hello world” • public class hello{ publicstatic void main (String[] argv){ System.out.println("Hello world.."); } } • hello.java為檔名儲存 • javac hello.java (編譯程式)  hello.class • java hello (執行程式)

  25. 將網頁顯示 在瀏覽器中 Java Applet URL • <html> <body> • <!-------JavaScript收集區 Menu Bar_開始--------> • <applet code=" hello.class" width="360" height="20"> • </applet> • <!-------JavaScript收集區 Menu Bar_結束--------> • </body></html> 伺服器 .class .html

  26. ■ 何謂稿(Script)語言 • 稿語言就是需要附加在網頁中才能執行的語言.也就是無法單獨執行. • 稿語言分為兩大類 • 客戶端稿語言 (JavaScript, Java Applet) • 伺服器端稿語言 (ASP, PHP, JSP) • 採用直譯(interpreter)方式執行,不同的稿語言需要不同的Script引擎來編譯.如:JavaScript在IE有Jscript引擎,VBScript就需要VBScript的引擎等等.

  27. 缺點:伺服器端無法與客戶端網頁互動 ■ JavaScript與Java的比較 • JavaScript與Java語言的共通點為語法類似 • 差異點如下:

  28. 網站程式的發展 靜態HTML網頁 動態HTML網頁 動態CGI程式

  29. submit ■ CGI程式的運作 (伺服器端Script) 行程越多,速度越慢 C G I HTTP Request CGI程式 HTTP Response

  30. 網站程式的發展 靜態HTML網頁 動態HTML網頁 動態CGI程式 伺服器稿語言

  31. ■ 伺服器稿語言的運作 伺服器端 2.網站伺服器找到該網頁 3.網站伺服器的編譯器將稿語言編譯轉成HTML 4.連同產生出來的網頁與客戶端稿語言傳回 5..瀏覽器執行客戶端稿語言後將網頁顯示出來 1.客戶端對伺服器Request讀取某個網頁 客戶端

  32. ■ 微軟的稿語言Active Server Page • <html> • <head><title>ASP程式範例</title></head> • <body> • <% • Response.Write “ Hello! World!<br>” • Response.Write “Welcome !! Your arrival time is “ & Now • %> • </body> • </html>

  33. ■ 昇陽的Java Server Page (JSP) • <%@page contentType=“text/html” import=“java.util.*” %> • <html> • <head><title>JSP程式碼</title></head> • <% • out.write(“Hello World!”); • Date current = new Date(); • out.write(“Welcome !! Your arrival time is “ + current + “<br>”); • %> • <body> • </body> • </html>

  34. ■ 伺服器稿語言的運作 伺服器端 {將.jsp網頁轉成 java servlet網頁 } 將 java servlet 網頁轉成HTML 傳回HTML 瀏覽器執行客戶端稿語言後將網頁顯示出來 讀取 .jsp 檔案 客戶端

  35. ■ 伺服器稿語言的運作 伺服器端 {將.jsp網頁轉成 java servlet網頁 } 將 java servlet 網頁轉成HTML 傳回HTML 瀏覽器執行客戶端稿語言後將網頁顯示出來 讀取 .jsp 檔案 客戶端

  36. ■ JSP與Java Servlet的轉換 • 原始Java程式: • <%@page contentType=“text/html” import=“java.util.*” %> • <html> • <head><title>JSP程式碼</title></head> • <% • out.write(“Hello World!”); • Date current = new Date(); • out.write(“Welcome !! Your arrival time is “ + current + “<br>”); • %> • <body> • </body> • </html>

  37. ■ JSP與Java Servlet的轉換I • 轉換後的Servlet程式: • package org.apache.jsp; • import java.util.*; • import javax.servlet.*; • import javax.servlet.http.*; • import javax.servlet.jsp.*; • import org.apache.jasper.runtime.*; • public class example1$jsp extends HttpJspBase { • static { • } • public example1$jsp( ) { • } • private static boolean _jspx_inited = false; • public final void _jspx_init() throws org.apache.jasper.runtime.JspException { • }

  38. ■ JSP與Java Servlet的轉換II • public void _jspService(HttpServletRequest request, HttpServletResponse response) • throws java.io.IOException, ServletException { • JspFactory _jspxFactory = null; • PageContext pageContext = null; • HttpSession session = null; • ServletContext application = null; • ServletConfig config = null; • JspWriter out = null; • Object page = this; • String _value = null; • try { • if (_jspx_inited == false) { • synchronized (this) { • if (_jspx_inited == false) { • _jspx_init(); • _jspx_inited = true; • }

  39. ■ JSP與Java Servlet的轉換III • } • } • _jspxFactory = JspFactory.getDefaultFactory(); • response.setContentType("text/html"); • pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true); • application = pageContext.getServletContext(); • config = pageContext.getServletConfig(); • session = pageContext.getSession(); • out = pageContext.getOut(); • // HTML // begin [file="/example1.jsp";from=(0,55);to=(3,0)] • out.write("\r\n<html>\r\n<head><title>JSP繕{礎癒翻X</title></head>\r\n"); • // end • // begin [file="/example1.jsp";from=(3,2);to=(7,0)] • out.write("Hello World!");

  40. ■ JSP與Java Servlet的轉換IV • Date current = new Date(); • out.write("Welcome !! Your arrival time is " + current + "<br>"); • // end • // HTML // begin [file="/example1.jsp";from=(7,2);to=(11,0)] • out.write("\r\n<body>\r\n</body>\r\n</html>\r\n"); • // end • } catch (Throwable t) { • if (out != null && out.getBufferSize() != 0) • out.clearBuffer(); • if (pageContext != null) pageContext.handlePageException(t); • } finally { • if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext); • } • } • }

  41. 1-2 JSP的運作原理 1-2-1 JSP與JavaServlet的關係 • JSP的容器會將JSP轉譯成JavaServlet然後再透過Java虛擬機器(Java Virtual Machine,JVM)來執行. • Java語言的一個特色就是所謂的中介碼Bytecode(.class檔名)可以提高可攜性.即是先將程式編譯成一個精簡的語言然後再交給JVM進行直譯. • 因此第一次執行JSP檔案要花比較多的時間.(一般測試的時候就會至少執行一次).後面直接執行bytecode效率很高.

  42. 站 伺 服 器 Servlet引擎 JSP引擎 ■JSP,Java與JavaServlet的關係 HTML網頁 編譯過的Servlet JSP網頁 客戶端 伺服器端 網站應用伺服器

  43. 1-4-3 JSP與ASP及PHP的比較

  44. ■ 伺服器稿語言的運作 伺服器端 {將.jsp網頁轉成 java servlet網頁 } 將 java servlet 網頁轉成HTML 傳回HTML 瀏覽器執行客戶端稿語言後將網頁顯示出來 • Resin • Tomcat 讀取 .jsp 檔案 客戶端

  45. ■ JSP容器 • JSP常用的容器有: • Resin:為Caucho Technology所開發出來的商業軟體,非商業用途用途免費.商用版本要收費,須搭配Windows的IIS或PWS的環境下才能作業.因此在啟動Resin前須先啟動IIS或是PWS. • Tomcat:為Apache所開出來的免費軟體同時也開放原始碼,為一個開放式的軟體. 目前採用Tomcat為開發環境的JSP網站較多.

  46. 2-2-2 Tomcat的下載與安裝 • 可前往Tomcat的官方網站去下載最新版Tomcat(6.0.18版) http://jakarta.apache.org/tomcat/index.html

  47. ■ Tomcat的下載

More Related