總的來說關于JSP界面有九大內置對象,7大動作,三大指令,現在博主就將這些粘貼出來,此文是很久前整理的學習筆記,如有雷同請諒解!
jsp九大內置對象:
1>out?向客戶端輸出數據,字節流.如out.print("?dgaweyr");
?
2>request?接收客戶端的http請求.
String?getParameter(String?name):得到表單參數名name的值.
String[]?getParameterValues(String?name):(得到String[]復選框時常用).
setAttribute(String?name,Object?obj):設置屬性名為name,屬性值為obj.
getAttribute(String?name);得到屬性值.
?
3>response:封裝jsp產生的回應,然后發送到客戶端以響應客戶的請求.重定向跳轉任意界面.(服務器跳轉)
addCookie(Cookie?cookie):
sendRedirect("/wel.jsp"):跳轉到指定頁面
?
4>session:用于保存用戶信息,跟蹤用戶行為,當前打開的瀏覽器內,多個頁面共享數據.?session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止.它是HttpSession類的實例.
setAttribute(String?name,Object?obj):設置屬性名為name,屬性值為obj.
getAttribute(String?name):得到屬性值.
?
5>application對象:實現了用戶間數據的共享,可存放全局變量.它開始于服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問.服務器的啟動和關閉決定了application對象的生命.它是ServletContext類的實例.
?
session,application,request的區別:
一個項目中session盡量少用幾個,因為過多的session會影響程序的執行效率.它主要用于保存登錄信息(用戶信息,權限,資源)即頻繁使用的信息.
application:?用于多個瀏覽器之間共享數據,多個用戶共享該對象,可以做計數器.它的用法與session完全一樣.
數據范圍:
application(服務器關閉時失效)>session(瀏覽器關閉時失效)>request(只能用于兩個跳轉頁面之間)
?
6>page對象代表jsp這個實體本身,即當前頁面有效.相當于Java中的this.
數據范圍:page<session<application
?
7>.exception:代表運行時的異常.
在會發生異常的頁面加入指令:<%@?page?errorPage="處理錯誤的頁面.jsp"%>
在處理異常的頁面寫入:<%@?page?isErrorPage="true"%>
?
8>.pageContext對象?pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當于頁面中所有功能的集大成者,它的本類名也叫pageContext.
?
9>.config?jsp對應的servlet的配置,可以得到web.xml中的初使化參數.
?
jsp七大動作:
一:include?動態包含(分別編譯):
用jsp:include動作實現<jsp:?include?page="included.jsp"?flush="true"?/>
它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數。flush屬性:?用true?,表示頁面可刷新。默認為false;
?
二:useBean動作(jsp頁面使用javaBean的第二種方式):
<jsp:useBean?id="對象名"?class="包名.類名"?scope="作用范圍(request/page/application/session)"/>
作用域默認為page(本頁面有效).
三:getProperty動作(name為useBean動作中的id).
從對象中取出屬性值:<jsp:getProperty?name="javaBean對象"?property="javaBean對象屬性名"?/>
四:setProperty動作(name為useBean動作中的id):
為對象設置屬性值:<jsp:setProperty?name="javaBean對象"?property="javaBean對象屬性名"?value=http://www.hake.cc/kf/201109/"值"/>
為對象設置屬性值:<jsp:setProperty?property="javaBean對象屬性名"?name="javaBean對象"?param="username"/>
(param="username"?相當于?value=http://www.hake.cc/kf/201109/<%=request.getParameter("username")%>)
?
五:param動作(傳遞參數)):
到達跳轉頁面可以通過?request.getParameter(“參數名”)方式取出參數值
<jsp:include?page="轉向頁面的url"?>
???????????<jsp:param???name="參數名1"?value=http://www.hake.cc/kf/201109/"參數值1">
?
<jsp:param???name="參數名2"?value=http://www.hake.cc/kf/201109/"參數值2">
???????????...........
?</jsp:include>
或:
<jsp:forward?page="轉向頁面的url"?>
???????????<jsp:param???name="參數名1"?value=http://www.hake.cc/kf/201109/"參數值1">
???????????<jsp:param???name="參數名2"?value=http://www.hake.cc/kf/201109/"參數值2">
???????????...........
</jsp:forward>
?
六:forward動作:
跳轉頁面:<jsp:forward?page="login.jsp"?/>
?
七:plugin動作:<jsp:plugin>:用于指定在客戶端運行的插件
?
JSP三大指令之:
一:page指令:
1.指定頁面編碼.例:
<%@?page?language="java"?contentType="text/html;charset=gbk"?pageEncoding="gbk"?%>
2.導入包,例:
<%@?page?import="java.util.*,java.text.*"?%>.
二:include?指令
靜態包含(統一編譯):<%@?include?file="included.jsp"%>
?
三:taglib
?
三.Jsp中的靜態包含與動態包含
動態include(<jsp:?include?page="included.jsp"/>)
靜態include(<%@?include?file="included.jsp"%>)
1.?靜態include的結果是把其他jsp引入當前jsp,兩者合為一體,可以達到數據的共享即可以說是統一編譯的,而
動態include的結構是兩者獨立的,直到輸出時才合并即為分別編譯的.
2.動態include的jsp文件獨立性很強,是一個單獨的jsp文件,需要使用的對象,頁面設置,都由自己創建,而靜態include純粹是把代碼寫在外面的一種共享方法,所有的變量都是可以和include它的主文件共享,兩者高度緊密結合,不能?有變量同名的沖突.而頁面設置也可以借用主文件的.
3.動態包含總是檢查被包含頁面的變化,靜態包含不一定檢查被包含頁面的變化.
4.動態包含可帶參數,靜態包含不能帶參數.如(<jsp:?include?page="included.jsp">放入參數</jsp:include>);