JAVA_WEB--jsp語法

JSP聲明

一個聲明語句可以聲明一個或多個變量、方法,供後面的Java代碼使用。在JSP文件中,必須先聲明這些變量和方法然後才能使用它們。
JSP聲明的語法格式:

<%! declaration; [ declaration; ]+ … %>

或者,也可以編寫與其等價的XML語句,就像下面這樣:

<jsp:declaration>
代碼片段
</jsp:declaration>
  • 1
  • 2
  • 3

程序示例

<%! int i = 0; %> 
<%! int a, b, c; %>  

JSP表達式

一個JSP表達式中包含的腳本語言表達式,先被轉化成String,然後插入到表達式出現的地方。
由於表達式的值會被轉化成String,所以可以在一個文本行中使用表達式而不用去管它是否是HTML標籤。
表達式元素中可以包含任何符合Java語言規範的表達式,但是不能使用分號來結束表達式。
JSP表達式的語法格式:

<%= 表達式 %>

同樣,您也可以編寫與之等價的XML語句:

<jsp:expression>
   表達式
</jsp:expression> 

程序示例:

<html> 
<head></head> 
<body>
<h1>
   <%! String msg = "Hello";%>
   <%= msg %>
</h1>
</body> 
</html> 

運行後得到以下結果:
Hello

JSP指令

JSP指令用來設置與整個JSP頁面相關的屬性。
JSP指令語法格式:

<%@ directive attribute=”value” %>

指令 描述
<%@ page … %> 定義頁面的依賴屬性,比如腳本語言、error頁面、緩存需求等等
<%@ include … %> 包含其他文件
<%@ taglib … %> 引入標籤庫的定義,可以是自定義標籤

JSP行爲

JSP行爲標籤使用XML語法結構來控制servlet引擎。它能夠動態插入一個文件,重用JavaBean組件,引導用戶去另一個頁面,爲Java插件產生相關的HTML等等。
行爲標籤只有一種語法格式,它嚴格遵守XML標準:

<jsp:action_name attribute=”value” />

語法 描述
jsp:include 用於在當前頁面中包含靜態或動態資源
jsp:useBean 尋找和初始化一個JavaBean組件
jsp:setProperty 設置 JavaBean組件的值
jsp:getProperty 將 JavaBean組件的值插入到 output中
jsp:forward 從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象
jsp:plugin 用於在生成的HTML頁面中包含Applet和JavaBean對象
jsp:element 動態創建一個XML元素
jsp:attribute 定義動態創建的XML元素的屬性
jsp:body 定義動態創建的XML元素的主體
jsp:text 用於封裝模板數據

JSP隱含對象

對象 描述
request HttpServletRequest類的實例
response HttpServletResponse類的實例
out PrintWriter類的實例,用於把結果輸出至網頁上
session HttpSession類的實例
application ServletContext類的實例,與應用上下文有關
config ServletConfig類的實例
pageContext PageContext類的實例,提供對JSP頁面所有對象以及命名空間的訪問
page 類似於Java類中的this關鍵字
exception Exception類的對象,代表發生錯誤的JSP頁面中對應的異常對象

JSP屬於腳本語言,這一片博客將繼續介紹JSP的相關語法格式,通過一個循環的例子來演示JSP代碼與HTML的整合。

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
   List<String> data = new ArrayList<String>();
   for (int i = 0; i < 10; i ++)
   {
      data.add("data" + i);
   }
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>index</title>
</head>
<body>
<%
   for(String s:data)
   {
      out.print("<p>" + s + "</p>");
   }
%>
</body>
</html> 

這裏寫圖片描述

通過上面的示例,我們已經初步瞭解了最基本的使用方法,上面的代碼是將JSP的代碼片嵌入HTML中,簡單的處理,是沒有問題的,但當頁面較複雜時,這樣編寫就很痛苦了,有點類似Servlet的編寫方式,就無法體現出JSP的優勢。

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
   List<String> data = new ArrayList<String>();
   for (int i = 0; i < 10; i ++)
   {
      data.add("data" + i);
   }
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>index</title>
</head>
<body>
<%
   for(String s:data)
   {
%>
      <p><%= s %></p>
<%
   }
%>
</body>
</html> 

我們對循環的操作進行了修改,通過第二段代碼我們發現,JSP的代碼實際上是可以和HTML標籤混合出現的,這樣就簡化了我們的工作。
通過上面的兩段代碼,我們知道JSP代碼片和HTML代碼整合的時候可以嵌入也可以混合出現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章