程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP概述和頁面技術

JSP概述和頁面技術

編輯:關於JSP

 

JSP是Servlet更高級別的擴展,關於JSP的知識主要有JSP的頁面構成、執行過程、字符轉譯、隱式對象等技術。知識點包括:

1、JSP概述    2、JSP頁面技術      3、JSP的執行過程  

4、JSP的異常處理    5、JSP的隱式對象    6、JSP的設計模式。

我們今天主要來講解一下JSP的概述和頁面的構成。首先我們先來講解一下JSP的概述:

   說到JSP我們不得不先來講一下Servlet,所以我們下面說一說

純粹基於Servlet的方法存在一些弊端:

1、開發者和維護應用程序的成員必須對Java編程知識面有全面的了解,因為處理代碼和處理html元素混合在一塊。

   2、如果要改變應用的外觀,或者增加對新客戶類型的支持,則需要對Servlet代碼進行更新和重編譯。

   3、在設計應用界面時,很難充分利用Web頁面開發工具。如果這種工具用於開發Web頁面布局,所生成的html就必須手工地嵌入到Servlet代碼中,這個過程相當耗費時間,很容易出錯。

面對上面出現的問題Sun Microsystems公司倡導開發了以Java語言作為腳本語言,建立在Servlet規范提供的功能之上的動態網頁技術,用來在網頁上顯示動態內容的JSP(Java Server Pages)。其網頁是由Java片段或JSP標記等構成JSP網頁,該網頁後綴名為“.jsp”。

JSP技術的應用是一次編寫,就可以在任何符合Java語法結構的環境上運行。因為Sun通過開放源代碼,使許多公司一起參與建立即使標准,JSP應用程序接口(API)毫無疑問已經取得成功,並將隨Java組織不斷開放擴大而繼續完善。

JSP的成功取決於它自身的優點,主要包括:

1、簡單性和有效性    2、程序的獨立性   3、程序的兼容性

4、程序的可重用性

我們說完了JSP的概述,相信大家對JSP有了簡單的認識,下面我們開始講解JSP頁面的構成:

   JSP頁面就是帶有JSP元素的常規Web頁面,它由靜態內容和動態內容構成。靜態內容主要是指HTML元素,而動態內容主要是指JSP元素。

   其中JSP元素主要包括:指令元素、腳本元素、動作元素、注視等內容。今天我們只來說一下指令元素和腳本元素。

   指令元素,它主要用於為轉換階段提供JSP頁面的相關信息,指令不會產生任何輸出到當前的輸出流中,它指定了有關頁面本身的信息,這些信息在請求期間一直保持不變。而且所有的JSP指令元素的作用范圍為當前的JSP頁面。也就是說指令元素只影響它所在的JSP頁面,對其他的JSP頁面沒有影響。

   JSP指令的語法如下:

<%@ directive{attr="value"}* %>

在<和%之間,%和@之間不能用空格,%和>之間也不能用空格。

JSP的指令元素有三種:即page、include和taglib。

page指令:該指令用於整個頁面,定義與頁面相關的屬性,它是JSP頁面和容器的通信員。而且該指令可以出現在JSP頁面的任何地方,但是無論在哪,它永遠是作用在整個頁面,所以我們通常將其放於開頭。其語法是:<%@ page 屬性名1="值1" 屬性名2="值2" ... %>。

注意:可以使用多個page指令,但對於每個頁只能聲明給定屬性一次,除了import屬性外。而且屬性名稱是大小寫敏感的。

      page的屬性共有13個,最常用的屬性有:

      import=“導包列表”:表示當前JSP文件引入需要使用的類或接口。多個類、包名之間用“,”隔開。例如%@page import=”java.util.*,java.i0.*”%或者%@page import=“java.util.*”%

%@page import=“java.io.*”%

import屬性是唯一一個可以在同一個頁面中出現多次的屬性,而且java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*。都是已經被隱含的引入,包中的類、接口等不需要引入就可以使用。

language=“scriptingLangeuage”:指定當前的JSP文件中的程序代碼是使用何種編程語言編寫的,目前屬性的值只能是java。

contentType=“ctinfo”:設置當前JSP頁面的向客戶浏覽器輸出內容的MIME類型和字符編碼集。客戶端的浏覽器會根據你在contentType中指定的MIME類型和字符集代碼來顯示Servlet輸出的內容。(MIME類型是設定某種擴展名的文件用一種應用程序來打開的方式類型,該擴展名文件被訪問的時候,浏覽器會自動指定應用程序來打開)。例:<%@page contentType=”text/html;charset=utf-8”%>

pageEncoding =“peingo”:設置當前JSP頁面使用的字符編碼。如果設置了這個屬性,則JSP頁面的字符編碼就是它指定的字符集,如果沒有就使用contentType屬性的值,如果都沒有,頁面默認的是ISO-8859-1。

session=”true|false”:指示當前JSP文件中session隱含對象是否有效,如果為true表示session對象有效,可以使用,否則session對象無效,不能使用

buffer=“none|8kb|sizekb”:指定JSP文件中out對象使用的緩沖區大小。

autoFlush=“true|false”:設置當輸出緩沖區已經滿了是否自動flush。需注意,如果buffer設定為none,則該屬性就不能設成false,否則JSP文件運行時會拋出異常。

errorPage=“relativeURL”:設置當前JSP頁面中代碼出現異常後,專門處理異常的頁面。

isErrorPage=“true|false”:設置當前JSP頁面是否為專門處理異常的頁面,如果為true,則該頁面可以通過exception內置對象,處理其他JSP頁面轉過來的異常。

Include指令:它用於JSP頁面中包含一個文件,該文件可以是HTML網頁、文本文件或一段Java代碼,用它可以簡化頁面代碼,提高代碼的重要性。它的語法:<%@ include file=”相對於當前文件的URL”%>,URL為被包含文件的相對路徑,如果以“/”開始,相對於這個應該的根目錄,如果沒有以”/”開頭,則相對於當前的JSP頁面。(在包含的文件中,最好不要使用<html></html><body></body>等標簽,以為JSP頁面中已經有了這些標簽)。

Taglib指令:它允許頁面使用用戶制定的標簽,語法如下:

<%@taglib (uri="具有唯一標識和前綴相關的標簽描述符地址" prefix="前綴")%>

指令元素我們就說這些,下面我們在講一下腳本元素:

使用JSP腳本元素可以將Java代碼嵌入到JSP頁面中,這些Java代碼將出現在由當前JSP頁面生成的Servlet中,使JSP將靜態內容與動態內容分離出來。

表達式:表達式標簽在JSP請求處理階段進行運算,所得的結果轉換成字符串,與靜態標簽數據組合在一起。表達式在頁面的位置,就是該表達式計算結果顯示的位置。語法:<%=expression%>。

(不能用分號;來作為表達式的結束符;表達式必須是一個合法的Java表達式。表達式必須有一個返回值,且返回值被轉換成字符串。

)。

   腳本:它是在<% %>裡嵌入的Java代碼,這裡的Java代碼和一般的Java代碼沒有什麼區別,所以每一條語句同樣要以分號“;”結束,這和表達式是不相同的。語法:<%code%>。

   聲明:它用來定義當前JSP頁面中使用的變量和方法,並且它中定義的變臉為JSP頁面的全局變量,在JSP轉化成Servlet後,定義的變量轉化為類變量,方法轉化為Servlet中的方法。

   語法如下:<%! String str=“hello”;%>

<%! public static final String DEFAULT_NAME=“World”;%>

<%! public String getName(HttpServletRequest request){

        return request.getParameter(“name”);

%>

注意:變量的聲明必須以;結尾,該聲明僅在一個頁面中有效,如果想每個頁面都用到一些聲明,最好把它們寫成一個單獨的文件,然後用<%@include%>或<jsp:include>元素包含進來。

摘自 雪狼小計

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved