Java EE JSP編程基礎

來源:互聯網
上載者:User

標籤:顯示   簡單介紹   span   tty   包含   伺服器   htm   檔案的   另一個   

一、JSP編程介紹

  JSP是實現普通靜態HTML和動態HTML混合編碼的技術,可以說是Servlet的一種變形,相比Servlet它更像普通的Web頁面。JSP在第一次運行時會花費很長時間,原因在與其本質還是Servlet,也就是說JSP會由伺服器Tomcat自動轉換為Servlet後載入運行。

  JSP頁面中除了普通的HTML代碼外還包含其他三種主要成分:指令碼元素、指令和動作。指令碼元素用於在JSP頁面中嵌入Java代碼,指令用於從整體上控制Servlet的結構,動作用來引入現有的組件來控制Web容器的行為。

二、JSP指令碼元素(1)、輸出運算式

文法:<%=運算式%>

作用:輸出運算式的計算結果

注意事項:運算式中所有的變數必須是已經聲明過的變數,%與=號之間不能有空格且運算式後面不需要分號

舉例:

1 <%for(int i = 1;i < 7; i++){%>2     <h <%=i%> >Hello!</h <%=i%> > <br>3 <%}%>
(2)、注釋

文法:<!--注釋-->與<%--注釋--%>兩種

作用:前者是輸出到用戶端的注釋;後者不輸出到用戶端,僅表示JSP注釋,在運行時這種注釋不會轉化為HTML的注釋即在用戶端查看源碼時是不可見的。

舉例:

1 <!--用戶端看得到的注釋-->2 <%--用戶端看不到的注釋--%>
(3)、聲明變數、方法和類①、聲明變數

文法:<%!聲明代碼%>

注意事項:

1.JSP中聲明的變數範圍為整個頁面,故只要在頁面中聲明變數即可無需主義聲明與使用的先後順序,但習慣上我們一般先聲明後使用變數。

2.JSP中聲明的變數在伺服器上為全域變數。我們都知道JSP運行時是自動轉化為Servlet,而每個Servlet運行期間在伺服器的容器內部僅僅只有一個執行個體,對於不同的用戶端請求會產生不同的線程響應,因此JSP中聲明的變數的任何修改均會影響到所有訪問該JSP頁面的用戶端。

舉例:

1 <%--JSP變數聲明--%>2 <h1>JSP變數聲明</h1>3 <%i++; %>4 <p>你是第個<%=i %>訪問本網站的使用者!</p>5 <!--JSP聲明變數的範圍為整個頁面,故聲明語句可放在後面.-->6 <%!int i=0;%> 
②、聲明方法

文法:<%!聲明代碼%>

注意事項:在JSP頁面中聲明的方法在整個頁面中都有效,但在該方法中定義的變數僅在該方法中有效。

舉例:

1 <%--JSP方法聲明--%>2 <h1>JSP方法聲明</h1>3 <%!String sayHello(){4     return "Hello";5     }%>6 <%=sayHello() %>
③、聲明類

文法:<%!聲明代碼%>

注意事項:在JSP頁面中聲明的類在整個頁面中都有效。

舉例:

 1 <%--JSP類聲明--%> 2 <h1>JSP方法聲明</h1> 3 <%!public class sayHello{ 4     boolean county; 5     sayHello(boolean county){ 6         this.county=county; 7     } 8     String Hello(){ 9         if(county)10             return "Hello";11         else12             return "Hi";13     }14 }%>15 <%sayHello sHello = new sayHello(false); %>16 <%=sHello.Hello()%>
三、JSP指令(一)、page指令

Page指令用於定義整個JSP頁面的全域屬性。一下是一些常用屬性:

1.language屬性

文法:<%@page language="語言"%>

說明:用於指明JSP指令碼使用的程式設計語言即檔案編譯語言。目前該屬性的屬性值只有“java”。

2.contentType屬性

文法:<%@page contentType="語言"%>

說明:指定MIME類型和JSP的編碼方式

3.pageEncoding屬性

文法:<%@page pageEncoding="語言"%>

說明:指定編碼方式

用法樣本:

1 <%@page language="java" contentType="text/html;charset=UTF-8"2     pageEncoding="UTF-8"%> <%--1.指明JSP頁面指令碼使用的程式設計語言,即設定編譯語言3                                2.指定MIME的類型及JSP檔案的字元編碼方式4                                3.指定JSP檔案本身的編碼方式--%>

4.import屬性

文法:<%@page import="java包"%>

說明:匯入Java包,可以只匯入一個也可匯入多個,匯入多個Java包時中間用逗號隔開。

用法樣本:

1 <%@page import="javax.websocket.Session"%>2 <%@page import="java.util.*,java.lang.*" %> <%--匯入Java包--%>

5.session屬性

文法:<%@page session="true"%>或<%@page session="false"%>

說明:設定JSP頁面是否支援會話,預設情況允許會話即session值為true。

1 <%@page session="false"%> <%--指明JSP頁面是否支援會話(預設支援)--%>

6.errorPage屬性

文法:<%@page errorPage="程式"%>

說明:指定當JSP頁面程式發生錯誤時用來處理的程式。

用法樣本:

1 <%@page errorPage="error.jsp"%> <%--出現錯誤時由error.jsp處理--%>

7.isThreadSafe屬性

文法:<%@page isThreadSafe="true"%>或<%@page isThreadSafe="false"%>

說明:設定JSP檔案是否能同時處理多個使用者的請求,預設情況一個JSP能處理多個進程,即session值為true。

用法樣本:

1 <%@page isThreadSafe="false"%> <%--只允許單線程,預設為True即預設允許多線程--%>
(二)、include指令

說明:include指令向JSP頁面內嵌入一個檔案,改檔案可以是HTML檔案、JSP檔案或其他文字檔。

用法樣本:

1 <h3><%@include file="copyright.html" %></h3>
(三)、taglib指令四、JSP動作

JSP動作組件是一些XML文法格式的標記,被用於控制Web容器的行為。利用JSP動作組件可動態地向頁面中插入檔案、重用JavaBean組件、把使用者重新導向到另外的頁面等。

常見的JSP動作組件有以下幾種:

(一)、include動作組件

文法:<jsp:include page="檔案名稱" flush=“true”/>

說明:flush參數必須為true不能用false。

注意事項:include動作組件和include指令元素十分不同。

include動作組件在執行時才對其所包含的檔案進行處理,故JSP頁面與包含的檔案在邏輯上和物理上均是獨立的,若對檔案進行修改則在運行時就可看到檔案修改後的結果。

include指令中包含的檔案若發生修改必須重新將JSP頁面轉譯成Java檔案才可以看到修改後的內容,否則只能看到修改前的檔案內容。

(二)、forward動作組件

文法:<jsp:forword page="網頁名稱"/>

說明:將瀏覽器顯示的網頁導至另一個HTML或JSP網頁,用戶端看到的地址為A頁面的地址而實際內容卻是B頁面的內容。

注意事項:在使用forward組件之前不能有任何內容已輸出到用戶端,否則會有意外拋出。而<jsp:forword>標記後的代碼將不再執行。

(三)、param動作組件

文法:<jsp:param name="參數名稱" value="值"/>

說明:用於傳遞參數資訊,必須配合include和forward動作組件一起使用。

(四)、plugin動作組件

文法:<jsp:plugin type="bean|applet" code="classFileName" codevase="classFileDirectoryName">

說明:執行一個Applet或Bean

(五)、setProperty、getProperty及useBean動作組件(這裡簡單介紹在JavaBean後再詳細記錄)

setProperty:<jsp:setProperty>設定JavaBean的屬性

getProperty:<jsp:getProperty>輸出某個JavaBean的屬性

useBean:<jsp:useBean>尋找或執行個體化一個JavaBean

Java EE JSP編程基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.