1. 程式人生 > >Java知識總結-6

Java知識總結-6

getprop other stat 運行 規範 false writer 清除 javabean

jsp知識點
標記: Java server page

基本特性

declaration 聲明

expression 表達式

directives 指令

scriptlet 小程序段

comment 註釋

action 動作指令

! 運行方式 先編譯為 .java 文件 再轉換為 servlet編譯文件運行 (.class)

1.只有客戶端在第一次請求jsp時,才需要對其轉換 編譯

優點

優良的性能 (憂於CGI php ASP)

平臺無關性 (只要符合j2ee規範就可在該平臺運行)

可擴展性強 (tga擴展,簡化開發)

補充知識

反射時類裏必須有無參構造函數 不然容易報錯

操作部分

指令 <%@ %>

include 指令

file =“路徑”

導入文件命令 將指定的jsp程序或HTML文件包含在當前頁面

<%@ include file ="/a.jsp"%>

可以導入另一個jsp文件 應用於網站的頭部等網頁的公共部分

page 指令

import =“包名.類名” 引入的包和類

可以導入多個包 中間用逗號分開

extends =“包名.類名” 繼承的類

buffer=“none/kb size” 不緩沖 或 指定緩沖大小 (默認8kb)

autoFlush="true/false" 是否自動清除緩沖

info =“描述” jsp文件的描述信息

isErrorPage=“true/false” 當前頁面是否發生錯誤

errorPage="url" 如果頁面錯誤,顯示的頁面

contentType="contenTypeInfo" 頁面的屬性信息

<% @page session=“true”%>(默認)--表示session功能已經在jsp頁面中啟動

pageEncoding="gb23123" 設置編碼格式

taglib 指令

導入指令標簽

<%@ taglib prefix="c" uri="選擇"%>

“c” 為別名 (jsp指令在用的時候標記名) “選擇”是由快捷鍵生成 一般為 http://java.sun.com/jsp/jstl/core 該標簽庫為標準標簽庫 可以實現判斷 循環 等操作

可以使用taglib標簽導入jsp其他標簽,實現一些特殊功能

<c:if test="" var="" scope=""> 標簽體
</c:if> test屬性值為true時,執行標簽體的內容(可以是html,java代碼)。
test屬性:使用el表達式來賦值。
var屬性:指定一個綁訂名稱
scope屬性:指定一個綁訂範圍(page,request,session,application)。
<c:choose>,<c:when>,<c:otherwise>
when表示一個分支,可以出現多次;
otherwise表示例外,只能出現一次;
test屬性值為true時,執行標簽體的內容(可以是html,java代碼)。
<c:forEach var="" items="" varStatus="">
</c:forEach>遍歷集合 items屬性:指定要遍歷的集合,一般使用
el表達式來指定。
var屬性:指定綁訂名稱,綁訂範圍是pageContext。
varStatus屬性:指定綁訂名稱,該綁訂名稱對應了一個特殊的對象,該對象封裝了當前遍歷的狀態。

動作 <jsp: 動作名 屬性=“值” />

forward 動作

<jsp: forward page="a.jsp"/>

跳轉到別的頁面 用於將一個jsp的內容傳送到page所指定的JSP程序或者Servlet中處理(URL)

useBean 動作

<jsp:useBean id="bj" class="包名.類名"/>

使用Javabean類 ID為別名

<jsp:setProperty property="a" name="b" value="c"/> a 類的屬性名 b javaBean的名字 (bj) c 屬性值

為使用的Javabean設置屬性值

<jsp:getProperty property="a" name="bj"> a 屬性的名字 bj 使用的Javabean的別名

得到Javabean屬性值

<jsp:param value="apple" name="key"/> jsp頁面傳參用到的 name="key" 相當於key值 value="apple" 相當value值

include 動作

<jsp: include page="a..jsp" />

動態組合兩個頁面

註釋

<!-- --> 該註釋客戶端可以在源碼中看到

<%-- --%> 該註釋客戶端在源碼中看不到

表達式 <%= Java屬性/變量 %>

可以引用Java代碼中的值

Java腳本 <% Java代碼 %>

可以執行Java代碼(預Java保持一致 註意導包)

聲明 <%! 方法 %>

理論部分

命令的include 和動作的include (合並頁面)的區別
標記: 藍色

靜態導入

1.用<$@ include file="a.jsp" /> 指令

2. 把b頁面的內容復制到a頁面,然後編譯為Java文件 ,在轉換為 .class 文件 ,放到work目錄中去

3.產生文件 a.java a.class

動態導入

1.用<jsp:include page="b.jsp" /> 動作

2.獨立編譯 由服務器在訪問時動態組合為一個頁面

3.產生文件 a.java a.class b.java b.class

jsp 九大內置對象(可以直接調用方法)

pageContext jsp中特有的對象 (jsp上下文對象,作用於當前頁面)

request 同servlet中的request 對象 來源於httpservletrequest

session 來源servlet中的httpsession

application 來源 servletcontext

response 來源 httpservletresponse

out 來源 servlet中的printwriter

page jsp編譯後生成的servlet對象

config servletconfig 獲得servlet配置參數

exception throwble 頁面的異常類