Servlet做為一個動態網頁開發技術太不靠譜。尤其是需要編寫一個頁面的時候,需要指定頁面的模板標簽、還要處理很多的業務邏輯。因此比較繁瑣。
思考:Servlet為什么寫一個頁面那么吃力?
主要的原因在于Servlet實在java中寫標簽。
鑒于以上的原因那么SUN提供了動態網頁開發技術之JSP。
JSP即Java Server Page??梢奐SP本身是頁面,那么在頁面那種編寫HTML標簽應該非常輕松。
一JSP體驗
<body> system date: <%=new java.util.Date() %></body>
總結:
JSP本質是一個Servlet只不過這個Servlet更加善于編寫頁面。
學習JSP應該從以下幾個方面學習:
1 JSP模板元素
JSP是在HTML中寫java代碼,那么JSP中最基本的是HTML元素。我們將這些元素稱之為JSP的模板元素。
2 JSP輸出表達式
JSP表達式主要用于輸出變量以及輸出表達式。
語法:
<%= 表達式 %>表達式后面不能有分號。
舉例1:輸出一個表達式。
2>1 = <%= 2>1 %> <br/><%=page %> <br/>
運行結果
2>1 = true org.apache.jsp.index_jsp@1135cd9
總結:所有的JSP頁面中的輸出表達式會被翻譯在java類中的_jspService()并使用out.write()方法進行了封裝。
該輸出表達式還可以輸出變量,但是當前需要先定義一個變量。
3 JSP腳本
JSP腳本主要用于定義局部變量和編寫JAVA業務代碼。
語法:<% JAVA代碼 %>舉例1:使用JSP腳本定義變量。<% int sum = 0; %>sum = <%= sum %><br/>總結:JSP腳本被翻譯在_jspService()中,使用該語法定義的變量全部是局部變量。因此不能添加任何的變量修飾符。
舉例2:使用JSP腳本實現頁面的倒三角輸出。
<% for(int i = 0; i<6; i++){ for(int j = i; j<6; j++){%> * <% } %> <br/> <% } %>
舉例3:使用JSP腳本輸出H1~H6的各級標題。
<% for(int i = 1; i < 7; i++){%> <h<%=i %>>www.itcast.cn</h<%=i %>> <% } %>
總結:
使用JSP腳本是否可以定義方法和類? 方法中不能繼續寫方法,但是可以定義局部內部類。
舉例4:定義局部內部類。
<% class Inner{ public int age = 30; public int getSum(){ return 90; } }%> <%= new Inner().age %><br/> <%= new Inner().getSum() %><br/>
4 JSP聲明
JSP聲明主要是聲明類的成員變量和方法。
語法:
<%! 聲明成員 %>
舉例1:聲明一個成員屬性。···<% int x = 20; // _jspService() %> <%! PRivate int x = 10; // index_jsp.java %> <%= x %> // 20如果必須要訪問訪問到10,那么可以使用以下的語句<%= this.x %>
舉例2:定義一個成員方法。<%! public String sayHello(String name){ return "hello : "+name; }%> <%= this.sayHello("jnb") %><br/>
舉例3:實現JSP生命周期方法的重寫。<%! static { // 類加載的時候執行 System.out.println("loading Servlet!"); } private int globalVar = 0; public void jspInit() { // 初始化方法 System.out.println("initializing jsp!"); } %> <%! public void jspDestroy() { // 銷毀方法 System.out.println("destroying jsp!"); } %>
新聞熱點
疑難解答