一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JSP的指令、和腳本元素

 歸葉米古 2016-11-30
    


一  jsp出現(xiàn)的原因

Jsp出現(xiàn)的原因是因為Servlet的缺點:

(1)      開發(fā)者和維護(hù)應(yīng)用程序的成員必須對java編程有全面的了解,因為在處理代碼的時候和處理html元素混合在一起

(2)      如果要改變應(yīng)用的外觀,或者增加對新客戶類型的支持,則需要對象sevlet對嗎進(jìn)行更新和重編譯

(3)      在設(shè)計應(yīng)用界面時,很難充分利用web開發(fā)頁面,如果這種工具用于web頁面布局,所生成的代碼很容易出錯,即Servlet產(chǎn)生應(yīng)答的時候,要返回一整個html代碼,在輸出的結(jié)果代碼中會有很多的out輸出語句,也不能很好的輸出

二  Jsp的介紹:

    1.Jsp的概念:

Jsp是servlet更高級的擴(kuò)展,是用來顯示動態(tài)內(nèi)容的,在后綴名為.jsp的程序里面寫。

    2.Jsp優(yōu)點:

       (1)簡便性和有效性

       (2)程序的獨立性

(3)程序的兼容性

       (4)程序的可重用性(一般把多次使用的jsp代碼提取出來放到一個包中去調(diào)用)

3.Jsp網(wǎng)頁的構(gòu)成

概念:Jsp頁面就是帶有jsp元素的常規(guī)web頁面,包括靜態(tài)內(nèi)容(html)和動態(tài)內(nèi)容。動態(tài)內(nèi)容包括指令元素、腳本元素、動作元素注釋等

(1)指令元素

介紹:(1)指令元素主要用于為轉(zhuǎn)換階段提供JSP頁面的相關(guān)信息,指令不會產(chǎn)生任何輸出到當(dāng)前的輸出流中,它指定了有關(guān)頁面本身的信息,這些信息在請求期間一直保持不變。

(2)指令元素的作用范圍為當(dāng)前的頁面,即只為當(dāng)前的jsp服務(wù),即只對當(dāng)前的線程有效

語法:<%@ directive{attr=”value”}%>

分類:指令元素分為三種:page、include和taglib

(1)配置指令元素:page

介紹:該指令用于整個頁面,page可以出現(xiàn)在jsp頁面的任何位置,不管是什么位置都對整個頁面有效,所以一般放到j(luò)sp文件的最開頭,和html中  的meta作用差不多。

      語法:<%@page import=”java.util.*”%>

       注:可以使用多個page指令,每一個屬性只能聲明一次,除了import之外

    常用的屬性:

    (1)Import=“導(dǎo)包列表”

      例子:%@page import=”java.util.*,java.io.*”%

    注:Import屬性是唯一個一再同一個頁面中出現(xiàn)多次的屬性,并且在jsp中有直接可以使用的類,是自動隱藏的,為:

Java.lang.*

javax.servlet.jsp.*,

javax.servlet.http.*;

           (2)language語言的設(shè)置  

                  language=”scriptingLangeuage” 

           (3)contentType=”” 應(yīng)答的類型

              例子:<%@ page contentType=”text/html;charset=utf-8”%>

                  注:pageEncoding=””的編碼方式優(yōu)先于charset的編碼方式,

如果沒有指定contenetType類型,也沒有設(shè)定pageEncoding="utf-8",用默認(rèn)的字符集是ISO-8859-1。

           (4)Session的設(shè)置

                  Session=”false”/”true”

           (5)Buffer的設(shè)置-----設(shè)置的是緩沖區(qū)大小

                  buffer=”16kb”       

緩沖區(qū)默認(rèn)的大小是8kb

           (6)autoFlush------設(shè)置當(dāng)緩沖區(qū)占滿了是否自動刷新

                  autoFlush =”true” | “false”

如果把緩沖區(qū)設(shè)為none & autoFlush=”fallse”  會拋常, 因為在緩沖區(qū)滿了之后,沒有刷新的話,就不能往里在存,所以當(dāng)把緩沖區(qū)設(shè)為none  必須設(shè)置為autoFlush=”true”

           (7)錯誤處理頁

                  errorPage=“relativeURL”---

                  設(shè)置當(dāng)前JSP頁面中代碼出現(xiàn)異常后,專門處理異常的頁面。

                     <%@ page errorPage=”errorHandler.jsp”%>  

                     <%@ page isErrorPage=”true”%>

           (8)異常處理

isErrorPage=“true|false”

              注:只有錯誤處理有一個內(nèi)置對象   Exception

(9)Include指令元素

概念:include指令用于在JSP頁面中包含一個文件,該文件可以是JSP頁面、HTML網(wǎng)頁、文本文件或一段Java代碼,用它可以簡化頁面代碼,提高代碼的重用性。

實例:

       Include指令用于在jsp頁面中包含一個文件  

                  <%@ include file="date.txt"%>

           <%@ include file="MyHtml.html"%>

<%@ include file="/date.txt"%>  虛擬目錄的根路徑

注:只能包含一個靜態(tài)的網(wǎng)頁,不能包含動態(tài)的

    靜態(tài)的包含是把指定的文件包含在jsp中,是在轉(zhuǎn)換之前

      

(10)Taglib指令---自定義標(biāo)簽

       taglib指令允許頁面使用用戶定制的標(biāo)簽,語法如下:

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

(2)腳本元素

    概念:把java代碼嵌入到j(luò)sp頁面中,這些java代碼將出現(xiàn)在由當(dāng)前的jsp頁面生成的servlet中,使JSP將靜態(tài)內(nèi)容與動態(tài)內(nèi)容分離出來。

(1)表達(dá)式:<%=8*3%>

        注:在不同的位置輸出的位置也不一樣,而且輸出的結(jié)果位24 

        由web服務(wù)器計算值

        轉(zhuǎn)換的原理:在jsp中的html標(biāo)簽中的內(nèi)容由 out.println()輸出

        在寫表達(dá)式的時候,表達(dá)式必須有值,必須是有返回值的

    (2)腳本

格式:<%java的代碼段%>

介紹:腳本是在<% %>里嵌入的Java代碼,這里的Java代碼和一般的Java代碼沒有什么區(qū)別,所以每一條語句同樣要以分號“;”結(jié)束,這和表達(dá)式是不相同的。

例子:    

(1)嵌入java代碼段  瀏覽器在解析的時候<會當(dāng)成標(biāo)簽的開始-->

            <%

           int i = 10;

           int j = 20;

           if (i < j) {

               out.print("i<j");       

           } else {

              out.print("i>j");

           }

    %>

    (2)可以對java代碼拆分,只要是完整的代碼就行

           <%

           int i = 10;

           int j = 20;

           if (i < j) {

       %>

       i<j

       <%

           } else {

       %>

       i>j

       <%

           }

     %>

    (3)如果要輸出i的值,必須要在java代碼中輸出        <%

           int i = 10;

           int j = 20;

           if (i < j) {

           out.print(i);

       %>

       <j

       <%

           } else {

           out.print(i);

       %>

       >j

        <%

           }

     %>

注:以上三種方法都一樣

(3)聲明變量和方法:

語法:<!%方法或變量%>

       <%! int var; 聲明的是變量加 ;  聲明方法的時候不用加

           public void fun(){

              var = 10;

           }  

           static{

              System.out.println("靜態(tài)的代碼塊");

           }

%>

  

三  補充

1.Jsp界面訪問時的流程:

第一次:   

瀏覽器第一次訪問---àweb服務(wù)器上的某一個jsp頁面

Jsp頁面-àservlet.java(會編譯成servlet頁面)--à編譯.class----à載入內(nèi)容,初始化init()

瀏覽器   <-------------------

再次訪問:

    瀏覽器---à訪問jsp頁面-----à開啟線程---à直接返回瀏覽器

如果jsp有更新,還會是從第一步開始

 

2.顯示當(dāng)前系統(tǒng)時間

    <%

    java.util.Date date = new java.util.Date();

    out.println(date.toString());

    %>  

3.九九乘法表的實現(xiàn)

       <%

           int firstCount = Integer.parseInt(request.getParameter("fisrtCount"));

           int secondCount = Integer.parseInt(request.getParameter("secondCount"));

           for(int i=1;i<firstCount+1;i++){

               for(int j =1;j<=i;j++){

                  out.print(j+"*"+i+"="+i*j+"  ");   

           }

           out.print("<br/>");

        }

       %>

注:獲取的時候必須是在一個<%%>標(biāo)簽里

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产成人av毛片国产| 国产一区欧美一区二区| 欧美日韩一区二区午夜| 98精品永久免费视频| 久久精品国产熟女精品| 成人精品日韩专区在线观看 | 东北女人的逼操的舒服吗| 日本不卡在线视频你懂的| 国产亚州欧美一区二区| 91久久精品国产成人| 免费在线成人激情视频| 亚洲最新中文字幕在线视频| 久久本道综合色狠狠五月| 成人欧美一区二区三区视频| 日本免费一区二区三女| 国产精品久久香蕉国产线| 国产精品视频久久一区| 欧美丰满人妻少妇精品| 免费大片黄在线观看日本| 在线欧洲免费无线码二区免费| 三级理论午夜福利在线看| 久久精品国产在热亚洲| 成在线人免费视频一区二区| 国产91人妻精品一区二区三区| 麻豆在线观看一区二区| 日韩一区二区三区久久| 日本在线不卡高清欧美| 日本中文在线不卡视频| 日本黄色录像韩国黄色录像| 欧美日韩亚洲精品内裤| 久久精品国产亚洲熟女| 国产精品尹人香蕉综合网 | 日韩国产中文在线视频| 亚洲高清一区二区高清| 99久久国产综合精品二区| 国产不卡最新在线视频| 久久国产精品亚州精品毛片 | 少妇毛片一区二区三区| 亚洲美女国产精品久久| 日本高清不卡一二三区| 麻豆剧果冻传媒一二三区|