Jsp複習(詳細的知識點)
JSP(java Server Page)
他就是servlet,也是java類。經過jsp引擎把jsp轉譯成了servlet
jsp~java+html
動態網頁技術,動態生成網頁數據,而不是有動態效果的網頁
常見的幾種動態網頁技術:
Jsp Asp(Active Server Page)微軟 Php(Hypertext Preprocessor)超級文本預處理語言
1.Servlet:優勢-邏輯處理方便 缺點:頁面表現麻煩
Jsp:優勢--頁面表現麻煩 缺點--邏輯處理麻煩
實際就是:jsp偏向於視圖,servlet偏向於邏輯控制
因此要互補使用,通常項目都採用:jsp+servlet+javabean
(固然,學了ssh後,能夠採用ssh框架)
JSP語法
三種不一樣的指令:
編譯器指令:
include--
靜態導入<%@ include file="login.jsp"%>
是在servlet引擎轉譯時,就把地址文件內容包含了進去(兩個文件
的源代碼整合到一塊兒,所有放到jspService方法中),因此只生成了一個
servlet,因此兩個頁面不能有同名的變量。
運行效率高一點點,耦合性較高,不夠靈活
動態導入<jsp:include page="login.jsp"></jsp:include>
是在servlet引擎轉譯後,請求的此頁面,因此共生成了兩個
servlet,因此能夠有同名變量
生成兩個servlet,至關於兩個類之間的調用,耦合性較低,很是靈活
page--引入import包,contentType配置,errorPage錯誤頁面
taglib --引入標籤庫
腳本語法
註釋:<!-- -->, 隱藏註釋<%-- --%>也就是轉譯後的java代碼中沒喲此項語句
聲明:<%! %> 能夠在裏邊聲明定義成員變量方法
能夠定義在<% %>後邊也能調用<%! %>裏邊的方法
例如:
<% test(); %>
<%! int hh=1;
void test(){
System.out.println("66666");
}
%>
表達式:<%= %> 至關於打印out.print();
java腳本段:<% %>
動做語法:<jsp:forward page="">
<jsp:param value="參數" name=""/>
</jsp:forward> 以後的代碼<%不執行%>
<jsp:include page="可傳參" >不能有空格換行</jsp:include>,
<jsp:param value="參數" name=""/>
<jsp:plugin>
<jsp:getProperty property="uname" name="u1" value="zahngsan"></jsp:getProperty>
源碼<%
User user=(User)pageContext.getAttribute("u1");
user.setUname("zhangsan");
%>
做用域的尋找順序從小到大:pageContext/request/session/application
<jsp:setProperty>,
<jsp:useBean id="u1" class="com.bjsxt.login.User" scope="page"></jsp:useBean>至關於
<%
pageContext.setAttribute("u1",new User());
%>
jsp內置對象:有9大內置對象(包含做用域),四大做用域
requset--對象表明的是來自客戶端的請求,經過
getParameter,getParameterNames,getParameterValues
調用這幾個方法來獲取請求對象中包含的參數的值
response--對象表明的是對客戶端的響應,也就是說
能夠經過response對象來組織發送到客戶端的數據。
可是因爲組織方式比較底層,因此不建議使用,須要向客戶端
發送文字時直接使用out對象便可。
out--對象表明了向客戶端發送數據的對象,與 response對象不一樣,
經過out對象發送的內容是瀏覽器須要顯示的內容,是文本一級的,
能夠經過out對象直接向客戶端寫一個由程序動態生成HTML文件。
經常使用的方法除了print和println以外,還包括clear,clearBuffer,flush
getBufferSize和getRemaining,這是由於out 對象內部還包含了一個緩衝區
因此須要一些緩衝區進行操做的方法。
session--對象表明服務器與客戶端所創建的會話,當須要在不一樣的 jsp頁面中
保留客戶信息的狀況下使用,好比在線購物,客戶軌跡跟蹤等
application--對象負責提供應用程序在服務器中運行的一些全局信息,
經常使用的方法有getMimeType和getRealPath等
pageContext--頁面上下文對象
封裝了當前jsp頁面的運行信息,它提供了返回jsp頁面的其餘隱式對象的方法
經過它能夠調用其餘內置對象信息
例如:pageContext.forward("2.jsp");轉向
config--對象提供一些配置信息,經常使用的方法有getlnitParameter和getlnitParameterNames
以得到Servlet初始化時的參數
page--對象表明正在運行的由jsp文件產生的類對象,通常不建議使用
exeception--對象則表明了jsp文件運行時所產生的例外對象,此對象不能直接使用。
而只能在使用了<%@ page isErrorPage="true" %>的jsp文件中使用.
html