iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
1
自我挑戰組

30 days JSP & Servlet學習紀錄 系列 第 3

[Day 3 ] Servlet & JSP簡介(part 1)

前言

今天先來簡單整理一下深入淺出Servlet & JSP的前面1~3張的內容
從HTTP到後面的servlet,JSP的簡單介紹
以及對應昨天所練習的例子


Java web的世界

  • 先從HTTP談起
    HTTP = HyperText Transfer P Protocal(超文字傳輸協定)
    執行在TCP/IP上

    TCP = 負責每個節點間傳送完整的檔案
    IP = 傳送封包的底層協定

  • 傳送流程:
    client > HTTP request >server >HTTP response > client

  • Post & Get
    這兩種都是傳送請求的方法
    也是在一些面試有時候會考的基本題目

    Post優於Get的原因為:

    • Get傳送的參數有限制,當需要的參數內容較多,server不見得可以有效使用
    • GET傳送的資料會直接在url上看到,會有安全性的部分需考慮
    • POST傳送方式不能將FORM加入我的最愛(除了上面兩點本來就知道,但此點是看到書才知道的XD)

    基於上述的部分
    一般若和資料有關係的傳送(即修改刪除),基本上都會是用Post
    GET只會在處理頁面的載入,即檢視的部分

  • 為什麼需要servlet?
    由於web需要能夠即時的處理動態網頁,以及需要作和資料庫的連結
    Servlet就如同一個輔助程式,將web傳送進來的請求再做處理,去跟server做溝通再一層一層的丟回client

  • Servlet的優點

    • servlet的執行效率較好,每個reques經由同一個servlet由多個執行緒處理,對JVM來說servlet只需載入一次

    • servlet 屬於J2EE的架構,能夠直接在web container使用

  • Container
    因為servlet本身沒有main()的方法
    需要利用一個叫做container的應用程式去執行處理它
    Container接受了web application傳送進來的request,再去呼叫servlet
    於是剛剛的流程變成:

client --> web application(Apache) --> web container(Tomcat) --> servlet --> DB(處理資料邏輯)

  • container的優點
    • 溝通支援
      提供簡單的機制,處理servlet和web server之間的運作(ServerSocket,通訊協定)

    • 生命週期管理
      控制servlet的生命週期,包含init()初始化到最後的Garbage Collection(垃圾回收機制)

    • 多執行緒支援
      每一個servlet就會執行java的執行緒(thread),而container也負責建立及管理多的執行緒的問題,以解決synchronization(同步)的狀況

    • 宣告式的權限管理
      透過XML設定檔,來管理或改變權限機制

    • 支援JSP頁面
      將JSP轉換成java的程式碼


今天先簡單整理從HTTP到container的部分
明日會再繼續servlet和JSP的部分


上一篇
[Day 2 ] step by step in Hello Servlet
下一篇
[Day 4 ] Servlet & JSP簡介(part 2)
系列文
30 days JSP & Servlet學習紀錄 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言