JSP基本文法
表達式:
<%= expression %>
表達式的值将直接輸出到頁面。
<%String hello=”hello world” %>
<%=hello %>
不能用一個分号(";")來作為表達式的結束符,但是同樣的表達式用在scriptlet中就需要以分号來結尾。
Scriptlet腳本代碼:
<% code fragment %>
它将被插入到JSP所生成的目标Servlet的Service方法中。
一個scriptlet能夠包含多個jsp語句,方法,變量,表達式。
聲明:
<%!JAVA Code%>
并不産生輸出,值時定義了提供調用的方法和變量,是以将其和JSP 表達式與JSP腳本結合使用。
Page 指令
<%@ page
[ language=”java”]
[ extends=”package.class”]
[ import=”{package.class | package.*},….”] 使用逗号(“,”)分割
[session=”true | false”]
[ buffer=”none | 8kb | sizekb”]
[ autoFlush=”true | false”]
[ isThreadSafe=”true | false”]
[ info=”text”]
[ errorPage=”relativeURL”]
[ contentType=”mimeType [ ;charset=characterSet]” | ”text/html;charset=ISO-8859-1”]
[ isErrorPage=”true | false”]
%>
定義JSP檔案的全局屬性。
Include 指令:
<%@include file=”URL” %>
include指令将會在JSP編譯時到入一個包含文本或代碼的檔案(靜态包含)。
JSP 注釋:
<!-- 注釋[<%=表達式%>]-- > 顯式
<% -- 注釋 --%> 隐式
<jsp:include > 指令
<jsp:include page=”{relativeURL|<%= expression %>}” flush=”true” />
與include 指令不同,<jsp:include>指令在JSP 頁面被使用者請求時才将指定檔案的内容插入伺服器的響應輸出中。
<jsp:useBean> 指令
<jsp:useBean id=”Name” scope=”page | request | session | application” class=”package.class”> </jsp:useBean>
<jsp:useBean>指令能在JSP頁面中載入并使用一個JavaBean。
<jsp:setProperty> 指令
用來設定Bean中的屬性值
<jsp:getProperty> 指令
傳回一個已被建立的Bean元件的屬性值。
<jsp:getProperty name=”beanInstanceName” property=”propertyName” />
擷取Bean的屬性值,顯示在頁面中。
<jsp:forward> 指令
用來把目前的頁面重導至另一個頁面上,用戶端看到的位址是A頁面,而實際内容卻是B頁面的内容。
<jsplugin> 指令
用來向用戶端浏覽器插入Java Applet插件來運作(Java小程式)或Bean對象。
JSP 内部對象
request
getParameter(String name)獲得用戶端傳送給伺服器端的參數值,該參數由name 指定
getParameterNames()獲得用戶端傳送給伺服器端的所有參數名稱,結果集是一個Enumeration(類舉)類的執行個體。
getParameterValue(String name)獲得指定參數值。
response 重要的對象之一,隻有通過它才能響應用戶端的請求,向用戶端輸出資訊。
PageContext
session用來在使用者之間分别儲存使用者資訊。
session.putValue(value , String name)
session.getParameter(String name)
application 重要的對象之一,一旦創立了application 對象,除非伺服器關閉,否則application對象将一直保持
getAttribute(String name) 傳回由name指定名稱的 application 對象屬性的值,這是個 object對象.
SetAttribute(String name, Object value) 用value來初始化某個屬性,該屬性由name指定
out
out.println()
out.print()
out.newLine()
……
config
exception 處理JSP檔案在值在執行時發生的錯誤和異常。内建3個方法:
getMessage() 傳回錯誤資訊。
printStackTrace() 已标準的形式輸出一個錯誤和錯誤的堆棧。
toString() 以字元串的形式傳回一個對異常的描述。
page
JavaBean 元件
定義Bean的屬性就必須為其建立通路方法,通路方法就是對元件中定義的屬性的通路,包括讀和寫兩種。讀:用于取出Bean屬性值的取值函數,方法以get為字首,并連接配接首字元為大寫的屬性名。寫:用于設定Bean屬性的指派函數,方法以set為字首,并連接配接首字元為大寫的屬性名。必須将Bean 屬性通路方法的通路權限定義為公有(public)。
資料庫連接配接Bean:
導入JDBC标準類庫 import java.sql.*;
注冊資料庫驅動程式 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
建立資料庫連接配接
Connection conn=DriverManager.getConnection( “jdbc:odbc:databaseame”, ”username”, ”password”);
建立stmt 對象,來執行資料庫操作(執行SQL指令)
Statememt stmt=conn.createStatememt();
執行資料庫操作 stmt.executeQuery(String sql) 傳回資訊在ResultSet 對象。
關閉資料庫 stmt.close(); conn.close();
建立檔案應用程式
标準的輸入/輸出封裝在:Java.lang 包。
檔案的輸入/輸出封裝在:Java.io 包。
圖形的輸入/輸出封裝在:Java.wat 包。
對網絡接口的輸入/輸出封裝在:Java.net 包。
檔案的輸入/輸出流
輸入對象:FileInputStream objectname = new FileInputStream(“filename”);
讀取資料:read();
輸出對象:FileOutputStream objectname = new FileOutputStream(“filename”);
寫入資料:write();
RamdonAccessFile類可利用length()方法和seek()方法實作檔案的追加。
File 類
專門處理檔案與目錄I/O操作的類,即建立一個目錄,擷取一個路徑名、檔案名以及文的有關屬性等,包含在Java.io包中,提供了3個構造方法:
File(String path) :根據路徑建立檔案對象。
eg: File f1 = new File(“C:\jsp\javabean”);
File(String path,String name) :根據路徑和檔案名建立檔案對象。
eg: File f2 = new file(“C:\jsp\javabean”,”dbconn.java”);
File(File dir,String name) :根據目錄和檔案名建立檔案對象。
eg: File f3 = new File(“C:javabean”,”dbconn.java”);
注:Java 可以正确處理和的路徑分隔符;
JSP程式調試
中文問題
JSP不支援中文,解決中文問題有兩種方法:
時區設定為[英語(美國)];
在向資料庫添加資料時,把GB2312編碼的資料轉換成8859-1編碼,代碼如下:
String speaker= new String(request.getParameter(“username”).getBytes(“8859-1”));
程式調試
exception對象内建的3個方法:
printStackTrace() 以标準錯誤的形式輸出一個錯誤和錯誤的堆棧。
注:必須在isErrorPage=true的情況下才可使用額exception對象。
JDBC類介紹
Java.sql.DriverManager :該類負責處理JDBC資料庫驅動程式的加載和解除安裝。該驅動程式與遠端資料庫相連,傳回一個Java.sql.Connection對象。
Java.sql.Connection :該類負責建立與資料庫伺服器的連接配接。
由DriverManager.getConnection方法建立。
Java.sql.Statement :執行靜态SQL語句并獲得尤其産生的結果的基本方法。
由Connection.createStatement方法建立。
Java.sql.ResultSet :從資料庫伺服器傳回的結果集,是一個用來分析SQL查詢語句的結果類。
Java JDBC 異常類:
Java.sql.DataTruncation
Java.sql.SQLExeception
Java.sql.SQLWarning