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 |
捕獲的頁面異常對象 |