【JSP】第一個JSP程序:Hello,JSP

JSP就是Servlet。如果不會Servlet,就無法理解JSP。通過本文,你將學到如何實現第一個JSP程序,以及JSP程序的實現原理。


JSP全稱是Java Server Pages,它和Servlet技術一樣,都是SUN公司定義的一種用於開發動態web資源的技術。

JSP誕生背景

雖然servlet技術能夠開發出動態效果的網頁,但是有一個問題,就是通過servlet開發時很冗雜,例如,下一個如下頁面:
在這裏插入圖片描述

需要在一個Servlet類中寫如此多得輸出語句,使得編寫很繁瑣;尤其是當做一個龐大的網站時,更是顯得無力。
於是,SUN公司推出了一種JSP技術:在JSP頁面寫HTML和Java代碼。JSP自動完成上圖中的轉換。提高了程序員的開發效率。

JSP核心特性:

  1. JSP的核心就是servlet!!!
  2. 寫JSP就像在寫html,但JSP技術允許在頁面中嵌套java代碼,爲用戶提供動態數據。
  3. 相比servlet而言,servlet很難對數據進行排版,而JSP除了可以用java代碼產生動態數據的同時,也很容易對數據進行排版。

第一個JSP程序

創建一個dynamic web project,在【WebContent】的根目錄下利用eclipse的工具模板創建一個jsp文件;

第一個JSP程序

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<font color=red>這是我的第一個JSP頁面。</font>
</body>
</html>

執行結果:
在這裏插入圖片描述

第一行代碼解析:

  1. language指定頁面中使用哪種作爲第二語言;
  2. contentType、charset:告訴瀏覽器我是什麼內容類型,以及使用什麼編碼
  3. pageEncoding:JSP內容編碼;

JSP實現原理

JSP的特點
1)JSP的運行必須交給tomcat服務器!!!!
tomcat的work目錄: tomcat服務器存放JSP運行時的臨時文件
2)JSP頁面既可以寫html代碼,也可以寫java代碼
(html頁面不能寫java代碼 。而JSP頁面可以寫java代碼)

執行過程

問題: 訪問http://localhost:8080/day12/hello.JSP 如何顯示效果?

  1. 訪問到hello.JSP頁面,tomcat掃描到JSP文件,在%tomcat%/work把JSP文件翻譯成java源文件,並存於 ”Tomcat安裝目錄/work/Catalina/localhost/項目名/org/apache/JSP” 裏;
    (hello.JSP -> hello_JSP.java) (翻譯
  2. tomcat服務器把java源文件編譯成class字節碼文件 (編譯
    (hello_JSP.java -> hello_JSP.class)
  3. tomcat服務器構造hello_JSP類對象(反射)
  4. tomcat服務器調用hello_JSP類裏面方法,返回內容顯示到瀏覽器。
    在這裏插入圖片描述

爲什麼JSP就是Servlet

JSP把01.hello.JSP翻譯的java文件:
在這裏插入圖片描述
其中的HttpJSPBase類():
在這裏插入圖片描述

public abstract class org.apache.jasper.runtime.HttpJSPBase 
				extends javax.servlet.http.HttpServlet 
					implements javax.servlet.JSP.HttpJSPPage {
}

結論:

  1. JSP就是一個servlet程序!!!
  2. servlet的技術可以用在JSP程序中!
  3. JSP的技術並不是全部適用於servlet程序!

生命週期

Servlet的生命週期:
1)構造方法(第1次訪問)
2)init方法(第1次訪問)
3)service方法
4)destroy方法

JSP的生命週期

  1. 翻譯: JSP->java文件
  2. 編譯: java文件->class文件(servlet程序)
  3. 走Servlet的生命週期
    1. 構造方法(第1次訪問)
    2. init方法(第1次訪問):在JSP中叫:_JSPInit()
    3. service方法:_JSPService()
    4. destroy方法:_JSPDestroy()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章