這是我今天期末複習Web編程碰到的一個問題和隨之爆炸出來其他問題,自己雖然對這些JAVA,JSP等的語言只是處於瞭解的基礎之上,但提出的問題自己剛好也能夠自圓其說。可能很多不對,時間有限,還要完成實驗報告,先放在這裡一下,過後等找到答案後再來訂正。過路的朋友如有瞭解這些方面知識的朋友不妨支支招,感激不盡!
元問題來自JSP與Servlet的比較。
我們知道Servlet能夠使得JAVA代碼不用像Applet那樣在客戶瀏覽器中運行,它會在你控制的一個應用伺服器上運行。在沒有什麼背景知識的前提下我預設這是一種規則,即Servlet就是這樣發展起來的。在實際應用中當我們請求一個JSP頁面的時候,JSP首先被轉化為Servlet,然後再進行編譯,執行,最後將結果返回給瀏覽器。
問題一: 那麼既然是這樣,也就是說先有JSP後有Servlet,那麼為何要把它們拿到一些來進行比較呢?是我這種"先有JSP後有Servlet"的認為有錯嗎?
自己這樣認為:
不一定是先有JSP後才有Servlet的,因為同是一種語言,JSP只是在HTML中“封裝”了JAVA 語言,JSP 標籤。而Servlet 是在JAVA 中“封裝”了JSP標籤,HTML標籤。因此它們是平等的。我們可以直接編寫Servlet,當然我們也可以直接編寫JSP羅。
問題二:為什麼要把JSP先交給伺服器進行處理?
自己這樣認為:
1.因為JSP是一種伺服器端嵌入了JAVA代碼的指令碼語言因為JAVA代碼是不能沒有JVM的條件下編譯,執行,再啟動並執行。所以要將處理JAVA代碼的這一步交給能夠處理JAVA代碼的伺服器來進行處理。
2.因為JSP頁面中包含有JSP標籤,JAVA代碼,HTML代碼。其中JSP標籤,JAVA代碼是不能夠被瀏覽器解釋執行的。因此必須通過某種手段將它轉變成瀏覽器能夠理解的代碼。
問題三:將JSP頁面交給伺服器進行處理也就罷了,但為什麼不是直接進行處理而是先將其轉為Servlet呢?
自己這樣認為:
因為JSP頁面中包含有JSP標籤,JAVA代碼,HTML代碼。我們的目的是要得到瀏覽器能夠理解的代碼,所以為了把它們進行統一處理必須把它們變成一致的格式,即另外一種語言---Servlet。
引出的一個新問題:
那到底瀏覽器能夠理解哪些代碼呢?我又作如下想法:
最開始的時候,瀏覽器是只能夠理解HTML的,隨著時間的推移人們對WEB頁面的要求逐漸層高,以往的靜態頁面慢慢的過渡到動態網頁面。因此瀏覽器不得不努力健身以承擔更為艱巨的翻譯任務。所以慢慢的就開始支援 VBscript,Javascript等指令碼語言了。並且又因為要常常支援一下動態頁面效果如FLASH等,所以就必須得需要一些額外的控制項了。