熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java愛好者菜園培訓:JSP及語法概要

2013-11-23 18:41:41  來源: Java核心技術 

  概述
  
  Java Server Pages(JSP)使得我們能夠分離頁面的靜態HTML和動態部分HTML可以用任何通常使用的Web制作工具編寫編寫方式也和原來的一樣動態部分的代碼放入特殊標記之內大部分以<%開始%>結束
  
  例如下面是一個JSP頁面的片斷如果我們用/title=Core+Web+Programming這個URL打開該頁面則結果顯示Thanks for ordering Core Web Programming
  
  Thanks for ordering
  <I><%= requestgetParameter(title) %></I>
  
  JSP頁面文件通常以JSP為擴展名而且可以安裝到任何能夠存放普通Web頁面的地方雖然從代碼編寫來看JSP頁面更象普通Web頁面而不象Servlet但實際上JSP最終會被轉換成正規的Servlet靜態HTML直接輸出到和Servlet service方法關聯的輸出流
  
  JSP到Servlet的轉換過程一般在出現第一次頁面請求時進行因此如果你希望第一個用戶不會由於JSP頁面轉換成Servlet而等待太長的時間希望確保Servlet已經正確地編譯並裝載你可以在安裝JSP頁面之後自己請求一下這個頁面
  
  另外也請注意許多Web服務器允許定義別名所以一個看起來指向HTML文件的URL實際上可能指向Servlet或JSP頁面
  
  除了普通HTML代碼之外嵌入JSP頁面的其他成分主要有如下三種腳本元素(Scripting Element)指令(Directive)動作(Action)腳本元素用來嵌入Java代碼這些Java代碼將成為轉換得到的Servlet的一部分JSP指令用來從整體上控制Servlet的結構動作用來引入現有的組件或者控制JSP引擎的行為為了簡化腳本元素JSP定義了一組可以直接使用的變量(預定義變量)比如前面代碼片斷中的request就是其中一例
  
  注意本文以JSP 規范為基礎版相比新版本的JSP作了許多重大的改動雖然這些改動只會使JSP變得更好但應注意的JSP頁面幾乎和早期的JSP引擎完全不兼容
  
  JSP語法概要表
  
  JSP表達式 <%= expression %> 計算表達式並輸出結果 等價的XML表達是
  
  <jsp:expression>
  expression
  </jsp:expression>
  
  可以使用的預定義變量包括requestresponseoutsessionapplicationconfigpageContext這些預定義變量也可以在JSP Scriptlet中使用
  
  JSP Scriptlet <% code %> 插入到service方法的代碼 等價的XML表達是
  
  <jsp:scriptlet>
  code
  </jsp:scriptlet>
  
  JSP聲明 <%! code %> 代碼被插入到Servlet類(在service方法之外) 等價的XML表達是
  
  <jsp:declaration>
  code
  </jsp:declaration>
  
  page指令 <%@ page att=val %> 作用於Servlet引擎的全局性指令 等價的XML表達是
  
  <jsp:directivepage att=val\>
  
  合法的屬性如下表其中粗體表示默認值
  
  import=packageclass
  contentType=MIMEType
  isThreadSafe=true|false
  session=true|false
  buffer=size kb|none
  autoflush=true|false
  extends=packageclass
  info=message
  errorPage=url
  isErrorPage=true|false
  language=java  
  
  include指令 <%@ include file=url %> 當JSP轉換成Servlet時應當包含本地系統上的指定文件 等價的XML表達是
  
  <jsp:directiveinclude file=url\>
  
  其中URL必須是相對URL
  
  利用jsp:include動作可以在請求的時候(而不是JSP轉換成Servlet時)引入文件
  
  JSP注釋 <% comment %> 注釋JSP轉換成Servlet時被忽略 如果要把注釋嵌入結果HTML文檔使用普通的HTML注釋標記< comment
  
  jsp:include動作 <jsp:include page=relative URL flush=true/> 當Servlet被請求時引入指定的文件 如果你希望在頁面轉換的時候包含某個文件使用JSP include指令
  
  注意在某些服務器上被包含文件必須是HTML文件或JSP文件具體由服務器決定(通常根據文件擴展名判斷)
  
  jsp:useBean動作 <jsp:useBean att=val*/>
  或者
  <jsp:useBean att=val*>
  
  </jsp:useBean>
   尋找或實例化一個Java Bean 可能的屬性包括
  id=name
  scope=page|request
  |session|application
  class=packageclass
  type=packageclass
  beanName=packageclass
  
  jsp:setProperty動作 <jsp:setProperty att=val*/>
  設置Bean的屬性既可以設置一個確定的值
  也可以指定屬性值來自請求參數
  合法的屬性包括
  name=beanName
  property=propertyName|*
  param=parameterName
  value=val
  jsp:getProperty動作
  <jsp:getProperty name=propertyName value=val/>
  提取並輸出Bean的屬性  
  jsp:forward動作 <jsp:forward page=relative URL/>
   把請求轉到另外一個頁面  
  jsp:plugin動作 <jsp:plugin attribute=value*>
  
  </jsp:plugin>
  根據浏覽器類型生成OBJECT或者EMBED標記
  以便通過Java Plugin運行Java Applet
  
  關於模板文本(靜態HTML)
  
  許多時候JSP頁面的很大一部分都由靜態HTML構成這些靜態HTML也稱為模板文本模板文本和普通HTML幾乎完全相同它們都遵從相同的語法規則而且模板文本也是被Servlet直接發送到客戶端此外模板文本也可以用任何現有的頁面制作工具來編寫
  
  唯一的例外在於如果要輸出<%則模板文本中應該寫成<\%
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25583.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.