JSP的基本文法,JSP基本文法

來源:互聯網
上載者:User

JSP的基本文法,JSP基本文法
JSP的基本文法一、JSP頁面中的JAVA代碼 二、JSP頁面中的指令 三、JSP頁面中的隱含對象(九大內建對象)目錄一、JSP頁面中的JAVA代碼

  • JSP運算式(方便輸出)
  • JSP小指令碼(完成相對較長的邏輯運算)
  • JSP聲明(添加屬性或方法)
1、JSP運算式(格式:<%=%>)
1     <%=2+2%>2     <%=xx.getName()%>3     <%=xx.getName()+“str”%>

注意:運算式結束不需要寫分號。

這種形式的Java代碼在轉譯成Servlet時,<%= %>內的代碼會成為service()方法中使用out.print語句的輸出。

1     out.print(2+2);2     out.print(xx.getName());3     out.print(xx.getName()+“str”));
2、JSP小指令碼(格式:<%%>)
 1     <table> 2     <%  3        List<Student> students = (List<Student>)request.getAttribute(“students“); 4        for(Student st : students){ 5     %> 6               <tr> 7                   <td> <%=st.getId()%>    </td> 8                   <td> <%=st.getName()%>  </td> 9               </tr>10     <%11         }12     %>13     </table>

以上代碼使用小指令碼動態產生一個表格。<% %>內的代碼最終都會成為service方法的一部分,轉換結果如下:

 1     public void service(…){ 2       out.write(“<table>”); 3       List<Student>  students = (List<Student>)request.getAttribute(“students“); 4       for(Student st : students){ 5          out.write(“<tr> <td>”); 6          out.print(st.getId()); 7          out.write(“</td><td>”); 8          out.print(st.getName()); 9          out.write(“</td></tr>”);10       }11       out.write(“</table>”);12     }
3、JSP聲明(格式:<%! %>)
1     <%!2         private String name; //屬性聲明3 4         public void fun(){   //方法聲明5             //…  方法體6         }7     %>

 JSP聲明<%! %>內的代碼可以為對應的Servlet添加屬性和方法,轉換為Servlet之後的結果如下:

 1     public class XXX_JSP extends JSPBase{ 2         private String name; //屬性聲明 3         4         public void fun(){    //方法聲明 5            // … 方法體 6         } 7  8          public void  service(… …){ 9                10          }11     }
二、JSP頁面中的指令
  • page指令
  • include指令
  • taglib指令
1、page指令

page指令可以匯入java包,也可以對頁面的一些屬性進行設定。

1     <%-- 導包 --%>2     <%@ page import=“java.util.*“%>3     <%@ page import=“java.util.*,java.sql.*“%>4 5     <%-- 設定response.setConentType方法的參數值 --%>6     <%@ page contentType=“text/html;charset=utf-8“%>7 8     <%-- 設定容器讀取該檔案時的解碼方式 --%>9     <%@ page pageEncoding=“UTF-8“%>

 

(1)使用page指令導包時,需要用到import屬性。如果需要匯入多個包,可以分成多條page指令來編寫,也可以在一條page指令中,使用“,“逗號作為分隔來實現。

(2)contentType屬性,設定輸出內容的編碼方式,這樣就可以設定瀏覽器使用正確的解碼方式來顯示頁面。

(3)pageEncoding屬性,設定容器讀取該檔案時的解碼方法,這段代碼可以保證頁面在載入到記憶體時正確的解碼中文。

注意,page指令要放在頁面的最上面編寫。

2、include指令

include指令主要用於將其他頁麵包含在另一個頁面之中,可以實現頁面內容的重用。include指令的文法如下:

1 <%@ include file=“thetitle.html” %>
3、taglib指令

可引入JSTL的標籤庫,將標籤庫對應的jar包拷貝到WEB-INF/lib目錄下,以便於系統可以載入所需要的類。使用taglib指令在頁面上引入標籤的命名空間和首碼,協助系統定位對應的類。

1     <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 

三、JSP頁面中的隱含對象(九大內建對象)

由於JSP頁面最終要轉化為一個Servlet,而作為即將轉變為Servlet的一個前期版本,會有很多系統提供給頁面能夠直接使用的對象,根據頁面中要實現的功能直接使用即可。具體的隱含對象資訊見下表:

 

隱含對象 類型 說明
request HttpServletRequest 代表請求對象
response HttpServletResponse 代表響應對象
out JSPWriter 輸出資料流
session HttpSession 會話
application ServletContext 全域的Servlet內容物件
pageContext PageContext JSP頁面上下文
page Object 代表JSP頁面本身,即this
config ServletConfig Servlet設定物件
exception Throwable 捕獲的頁面異常對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.