1 認識JSP
1.1 基礎知識
java server pages 動態網頁技術
ASP:VB和JS作為指令碼
JSP:Java 動態和靜態頁面分離
脫離硬體平台 編譯後運行
基礎:Java和HTML
1.2 JSP頁面
JSP頁面xxx.jsp 包括HTML標記和<% %>java程式,命名區分大小寫
運行原理:第一次請求是,伺服器上的jsp引擎首先將jsp分頁檔轉譯成java檔案,再編譯成位元組碼檔案。以後的請求都直接執行位元組碼檔案——所以速度快。
1.3 環境配置
環境要素:JDK+Tomcat+eclipse(單純的執行jsp程式,只要JDK和Tomcat即可,eclipse方便了程式開發調試)
JAVA_HOME,變數值:C:\jdk1.3
PATH,變數值:C:\jdk1.3\bin
CLASSPATH,變數值:C:\jdk1.3\jre\lib\rt.jar;
TOMCAT_HOME,變數值:D:\tomcat\Jakarta-tomcat-4.0
啟動Tomcat 伺服器了。執行Tomcat\Jakarta-Tomcat-4.0\bin 下的startup.bat,http://localhost:8080
用eclipse的話,建立web->Dynamic Web Project工程
HTML標籤:http://www.w3school.com.cn/tags/tag_input.asp
2 jsp基礎文法
2.1 變數和同步
在“<%!”和“%>”標記符號之間聲明變數和方法,在整個JSP 頁面內都有效,注意:JSP 引擎為每個客戶啟動一個線程,這些線程由JSP 引擎伺服器來管理,這些線程共用JSP 頁面的成員變數,因此任何一個使用者對JSP 頁面成員變數操作的結果,都會影響到其他使用者。
多線程共用同一變數,這裡就需要同步機制——當一個線程在訪問的時候,其他線程等待:
<%!Integer number = new Integer(0);%>
<%
synchronized (number) {
int i = number.intValue();
i++;
number = new Integer(i);
}
%>
您是第<%=number.intValue()%>個訪問本站的客戶。
2.2 方法
在“<%!”和“%>”之間聲明方法,該方法在整個JSP 頁面有效,但是該方法內定義的變數只在該方法內有效。這些方法將在Java 程式片中被調用,當方法被調用時,方
法內定義的變數被分配記憶體,調用完畢即可釋放所佔的記憶體。
如果多個客戶同時請求一個jsp頁面,他們可能使用方法操作成員變數(共用的),這是需要將方法定義成synchronized。
<%! int number2=0;
synchronized void countPeople()
{
number2++;
}
%>
<% countPeople(); // 在程式片中調用方法。
%>
您是第<%=number2%>個訪問本站的客戶。
2.3 類和對象
可以在“<%!”和“%>”之間聲明一個類,該類在JSP 頁面內有效,即在JSP 頁面的Java 程式片部分可以使用該類建立對象。
<%!public class Circle {
double r;
Circle(double r) {
this.r = r;
}
}%>
<%
String str = request.getParameter("cat");
double r;
if (str != null) {
r = Double.valueOf(str).doubleValue();
} else {
r = 1;
}
Circle circle = new Circle(r); // 建立對象。
%>
<P>
圓的面積是: <BR>
<%=circle.calcmj()%>
2.4 從對話方塊取值
<INPUT type="text" name="cat" value="1">
<%
String str = request.getParameter("cat");
%>
2.5 注釋
HTML <!-- -->
JSP <%-- --%>
2.6 jsp靜態調用jsp
<%@ include file="Computer.jsp"%>
3 JSP通訊
其中<Form>是表單標籤,method 取值get 或post。Get 方法和post 方法的主要區別是:使用get 方法提交的資訊會在提交的過程中顯示在瀏覽器的地址欄中,而post 方法提交的資訊不會顯示在地址欄中。提交手段包括:通過文字框、列表、文本區等,例如:
<FORM action="tom.jsp" method= “post” >
<INPUT type="text" name="boy" value= “ok” >
<INPUT TYPE="submit" value=" 送出" name= “submit”>
</FORM>
該表單使用post方法向頁面tom.jsp 提交資訊,提交資訊的手段是:在文字框輸入資訊,其中預設資訊是“ok”;然後點擊“送出”按鈕向伺服器的JSP 頁面tom.jsp 提交資訊。
<FORM action="test_class_get_post.jsp" method=post name=form>表示給頁面本身使用
request 對象可以使用getParameter(String s) 方法擷取該表單通過text 提交的資訊,
比如:request.getParameter(“boy”);
漢文書處理:如果表單接收漢字則需要處理,否則顯示亂碼
String str=request.getParameter("girl");
byte b[]=str.getBytes( “ISO-8859-1”);
str=new String(b);
3.1 表單
<FORM method= get| post action= ”提交資訊的目的地頁面” name= ”表單的名字”>
資料提交手段部分
</FORM>
一個表單的資料提交手段部分經常包括如下的標記符號:
<INPUT …..>
<input type= “text” name= “me” value= “hi” size= “12 ” algin= “left” maxlength= “30”>
<input type= “radio” name= “rad” value= “red” algin= “top” checked=“java” >
<input type= “checkbox” name= “ch” value= “pink” algin= “top” checked=“java” >
<input type= “passwordt” name= “me” size= “12 ” maxlength= “30”>
<input type= “submit ” name= “me” value= “ok” size= “12 ” >
<input type= “reset” >
<Select … ></Select>
<Select name="shulie" >
<Option value="cat"> 你選了小貓
<Option value="dog"> 你選了小狗
<Option value="600">n=600
</Select>
<Option …..> </Option>
<TextArea ….> </TextArea>
4 javabean
javabean是一個封裝好的java組件,即一些功能固定的java類;jsp程式調用bean(java類編譯產生的class檔案)來實現這些功能。
beans主要負責jsp的動態部分,而jsp頁面主要負責靜態部分。
5 學習jsp的內建對象的使用
6 servlet
當一個客戶請求一個JSP 頁面時,JSP 引擎根據JSP頁面產生一個Java 檔案,即一個servlet。