JSP的基本語法 一、JSP頁面中的JAVA代碼 二、JSP頁面中的指令 三、JSP頁面中的隱含對象(九大內置對象) 一、JSP頁面中的JAVA代碼 JSP表達式(方便輸出) JSP小腳本(完成相對較長的邏輯運算) JSP聲明(添加屬性或方法) 1、JSP表達式(格式:<%=%>) 註意:表達式結束 ...
JSP的基本語法
一、JSP頁面中的JAVA代碼
二、JSP頁面中的指令
三、JSP頁面中的隱含對象(九大內置對象)
目錄
一、JSP頁面中的JAVA代碼
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頁面中的指令
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 | 捕獲的頁面異常對象 |