在編寫servlet過程中我們可以感覺到servlet對界面的輸出等確實很麻煩,而在html界面中,我們很難控制數據的動態處理,那麼我們可以試試jsp,它就可以很好的解決這個問題
JSP 頁面混合了 HTML 和 JSP 獨有的語法,是java代碼和html代碼的混合體。一個 .jsp 文件被動態地編譯成一個 servlet 然後被執行。所以我們既能夠有html界面編寫的可視化的視野,又可以使用java語言動態生成頁面內容,並且動態生成數據,還不用servlet去繁瑣的輸出
jsp事實上就是一種特殊的servlet
它起先也是先轉換,如果讀取驗證後jsp頁面是沒有錯誤的,那麼將自動創建一個包含servlet類的java文件
在這之後這個java的文件要被編譯,成爲一個類文件
在編譯成功之後,servlet就會加載到內存中,實例化
接下來就是servlet初始化
然後jsp收到請求的時候,就會調用方法去執行
最後當然是刪除了,當jsp不使用的時候它將自動刪除,釋放內存
JSP使用方法:
我們在eclipse中會創建一個html頁面,那麼我們也用同樣的方法創建jsp頁面,不同的地方在於在頁面中起先要加入
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
即在頁面中定義使用java語言,並且引入java.util包(當然也可以引入其他的了),最後設置字符集是utf-8(gbk,gbk2312等等)
然後在書寫的過程中,比如說,我需要在界面中得到request中存儲的user對象
那麼需要寫<%User user=(User)request.getAttribute("user")%>,即<% %>是jsp中使用java代碼的方法
如果要一個for循環的語句
<%for(int i=0;i<3;i++){
%>
<hr><%=i%>
<%}%>
那麼可以看出在輸出的時候我們需要寫<%= %>在等號後面寫上表達式
稍微寫一下就可以感覺到jsp的好處了,雖然看上去有點亂,只要有良好的書寫習慣和格式,jsp使用起來肯定是很方便的
最可以體現JSP 架構背後的理念,即關注web內容顯示,就是jsp中的隱式對象,他們在jsp頁面中自動聲明,我們便可以在頁面中直接使用這些對象調用他們方法
我們最常用的就是request、session、application對象,其他的使用比較少
request對象我們可以理解爲Servlet中的request對象,可以用來接受發送過來的請求
session即一個會話對象,它可以保存數據在一個會話週期內
application我們用它來引用執行 JSP 所在的 Web 應用程序的環境