成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSP教程基礎(chǔ)之腳本的使用

開發(fā) 后端
本節(jié)JSP教程將向您介紹使用腳本方面的各種情況,包括如何增加腳本、用標(biāo)簽組合腳本、如何運(yùn)行腳本示例等。

在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標(biāo)簽雖然很強(qiáng)大,但是完成某些工作還是比較費(fèi)力的困難的。這時(shí)你可以使用腳本語言段來補(bǔ)充JSP標(biāo)簽。
 
使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。

如何增加腳本

首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規(guī)則

1、 在JSP頁面里用Page指令定義腳本(默認(rèn)值是Java,一般不需要定義)
 
2、 聲明語法﹤%!……%﹥聲明變量和方法(函數(shù))。

3、 表達(dá)式語法﹤%=……%﹥定義腳本語言表達(dá)式

4、 腳本語法〈%……%﹥可以操作聲明、表達(dá)式和其他類型合法的代碼段在頁腳本語言。
 
5、 一定要在結(jié)尾加%﹥標(biāo)簽

聲明、表達(dá)式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點(diǎn)和不同點(diǎn)吧。

 聲明﹤%!……%﹥包含了一個(gè)或多個(gè)變量和方法,結(jié)尾以分號分隔。例如:

  1. ﹤%! Int I=0 ; %﹥   
  2. ﹤%! Int a, b ; double c ; %﹥   
  3. ﹤%! Circle a = new circle(2.0) ; %﹥  

在頁面中使用變量和方法之前必須聲明

聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應(yīng)變得擴(kuò)展到被包含的頁面。
表達(dá)式﹤%=……%﹥可以在頁面中包含任何合法的語言表達(dá)式,不用分號。 例如:

  1. ﹤%= Math.sqrt(2) %﹥   
  2. ﹤%= item[I] %﹥   
  3. ﹤%= a+b+c %﹥   
  4. ﹤%= new java.util.date() %﹥  

表達(dá)式和腳本的一個(gè)關(guān)鍵的不同點(diǎn)就是不需要分號。如果你需要在腳本中使用表達(dá)式就必須加分號。
腳本﹤%……%﹥允許你寫的任何數(shù)量的腳本語言 ,例如:

  1. ﹤% String name=null ;   
  2. If (request.getParmeter("name")==null{   
  3. %﹥ 


記住在腳本中必須使用分號結(jié)尾。

猜數(shù)字游戲

猜數(shù)字游戲非常的有趣,而且從這里你還可以學(xué)到很多表達(dá)式的用法。

JSP源碼如下:

  1. 顯示用的主屏幕(numguess.jsp)   
  2. ﹤!--   
  3. Number Guess Game   
  4. Written by Jason Hunter, CTO, K&A Software   
  5. jasonh@kasoftware.com, http://www.servlets.com   
  6. Copyright 1999, K&A Software   
  7. Distributed by Sun Microsystems with permission   
  8. --﹥   
  9. ﹤%@ page import = "num.NumberGuessBean" %﹥   
  10.  
  11. ﹤jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session" /﹥   
  12. ﹤jsp:setProperty name="numguess" property="*" /﹥   
  13.  
  14. ﹤html﹥   
  15. ﹤head﹥﹤title﹥Number Guess﹤/title﹥﹤/head﹥   
  16. ﹤body bgcolor="white"﹥   
  17. ﹤font size=4﹥   
  18.  
  19. ﹤% if (numguess.getSuccess() ) { %﹥   
  20.  
  21. Congratulations! You got it.   
  22. And after just ﹤%= numguess.getNumGuesses() %﹥tries.﹤p﹥   
  23.  
  24. ﹤% numguess.reset(); %﹥   
  25. Care to ﹤a href="numguess.jsp"﹥try again﹤/a﹥?   
  26.  
  27. ﹤% } else if (numguess.getNumGuesses() == 0) { %﹥   
  28.  
  29. Welcome to the Number Guess game.﹤p﹥   
  30. I'm thinking of a number between 1 and 100.﹤p﹥   
  31.  
  32. ﹤form method=get﹥   
  33. What's your guess? ﹤input type=text name=guess﹥   
  34. ﹤input type=submit value="Submit"﹥   
  35. ﹤/form﹥   
  36.  
  37. ﹤% } else { %﹥   
  38. Good guess, but nope. Try ﹤b﹥﹤%= numguess.getHint() %﹥﹤/b﹥.   
  39. You have made ﹤%= numguess.getNumGuesses() %﹥ guesses.   
  40. ﹤p﹥I'm thinking of a number between 1 and 100.   
  41. ﹤p﹥﹤form method=get﹥   
  42.  
  43. What's your guess? ﹤input type=text name=guess﹥   
  44. ﹤input type=submit value="Submit"﹥   
  45. ﹤/form﹥   
  46. ﹤% } %﹥   
  47. ﹤/font﹥   
  48. ﹤/body﹥   
  49. ﹤/html﹥   
  50.  
  51. 操作程序(NumberGuessBean.java)   
  52. // Number Guess Game   
  53. // Written by Jason Hunter, CTO, K&A Software   
  54. // jasonh@kasoftware.com, http://www.servlets.com   
  55. // Copyright 1999, K&A Software   
  56. // Distributed by Sun Microsystems with permission   
  57.  
  58. package num;   
  59. import java.util.*;   
  60. public class NumberGuessBean {   
  61. int answer;   
  62. boolean success;   
  63. String hint;   
  64. int numGuesses;   
  65. public NumberGuessBean() {   
  66. reset();   
  67. }   
  68. public void setGuess(String guess) {   
  69. numGuesses++;   
  70. int g;   
  71. try {   
  72. g = Integer.parseInt(guess);   
  73. }   
  74. catch (NumberFormatException e) {   
  75. g = -1;   
  76. }   
  77. if (g == answer) {   
  78. success = true;   
  79. }   
  80. else if (g == -1) {   
  81. hint = "a number next time";   
  82. }   
  83. else if (g ﹤ answer) {   
  84. hint = "higher";   
  85. }   
  86. else if (g ﹥ answer) {   
  87. hint = "lower";   
  88. }   
  89. }   
  90. public boolean getSuccess() {   
  91. return success;   
  92. }   
  93. public String getHint() {   
  94. return "" + hint;   
  95. }   
  96. public int getNumGuesses() {   
  97. return numGuesses;   
  98. }   
  99. public void reset() {   
  100. answer = Math.abs(new Random().nextInt() % 100)   
  101. + 1;   
  102. success = false;   
  103. numGuesses = 0;   
  104. }   
  105. }   

在本JSP教程中,JSP文件中使用腳本

numguess.jsp是一個(gè)非常有趣兒的用腳本寫的例子,你看他的結(jié)構(gòu)其實(shí)是一個(gè)很大的IF……ELSE結(jié)構(gòu),但是很一個(gè)從句又都是用HTML寫的,看起來象一個(gè)大的程序段。
不過你也不一定非得象numguess.jsp那樣用HTML和JSP標(biāo)簽一起來寫腳本。在﹤%和%﹥標(biāo)簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會(huì)非常的清析,明了。話又說回來,怎么寫JSP還得根據(jù)你的習(xí)慣和愛好,我不強(qiáng)迫非得使用任何一種方法,SUN的JSP詳細(xì)說明書不規(guī)定腳本的長度。

用標(biāo)簽組合腳本

使用HTML和JSP標(biāo)簽來寫腳本的時(shí)候,注意前后的標(biāo)簽不要忘記,一定要“封”好。說的不明白,舉個(gè)例子吧:

  1. ﹤% } else { %﹥ ﹤!-- 用JSP標(biāo)簽的時(shí)候先關(guān)上 --﹥   
  2.  
  3. ... 這時(shí)候用JSP標(biāo)簽吧 ...   
  4.  
  5. ﹤% } %﹥ ﹤!-- 這樣你應(yīng)該看懂了吧?! --﹥  

開始的時(shí)候這種做法看起來可能有一點(diǎn)奇怪,但它以確保你JSP文件編譯的時(shí)候腳本的成功轉(zhuǎn)換。

那么,腳本什么時(shí)候執(zhí)行呢?
 
一個(gè)JSP源文件的處理分為兩個(gè)階段:一個(gè)是HTTP的編譯時(shí)候,一個(gè)是請求的處理時(shí)間。

HTTP編譯的時(shí)候,當(dāng)用戶第一次讀JSP頁面的時(shí)候,JSP的原代碼被編譯成CLASS,通常是servlet。HTML標(biāo)簽和JSP標(biāo)簽在這個(gè)時(shí)候同時(shí)被處理了,這之前用戶還沒有任何的請求被提交。

請求處理時(shí)間是當(dāng)用戶在JSP頁面中提交了一個(gè)請求,這時(shí)請求由客戶端被request對象傳到了服務(wù)器端,JSP引擎根據(jù)用戶提交的值執(zhí)行編譯過的JSP文件或者servlet。

當(dāng)你在JSP頁中使用腳本的時(shí)候,你必須知道他們什么時(shí)候被執(zhí)行。聲明在HTTP編譯階段就已經(jīng)被處理了,其他腳本,表達(dá)式在編譯JSP文件的時(shí)候也可用。表達(dá)式在HTTP編譯的時(shí)候也被執(zhí)行了。表達(dá)式的值被轉(zhuǎn)換成了字符串被插入到JSP文件中一塊兒被編譯。其實(shí)在請求階段,腳本也是可以利用的。

如何運(yùn)行例子

本JSP教程現(xiàn)在給出的都是在UNIX風(fēng)格下的路徑,如果你用Windows,那么改成Windows風(fēng)格路徑

1、猜數(shù)字游戲在裝TOMCAT或者JSWDK的時(shí)候就已經(jīng)裝好了。

2、.jsp和.html文件在../jswdk-1.0.1/examples/num中

3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中

4、開瀏覽器,http://機(jī)器名/examples/jsp/num/numguess.jsp


 

【編輯推薦】

  1. 對JSP中的內(nèi)置對象簡單概述
  2. JSP和Servlet中的幾個(gè)編碼的作用及原理
  3. JSP編程應(yīng)注意的六個(gè)常見問題
  4. JSP設(shè)計(jì)模式淺析
  5. 什么是JSP以及其強(qiáng)弱勢
責(zé)任編輯:仲衡 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-06-30 10:37:56

JSP教程

2009-06-30 16:33:42

JSP2.0特性JSP教程

2009-06-30 11:18:16

HTML表單JSP教程

2009-06-30 11:02:29

JSP教程

2009-07-02 11:34:42

JSP指令JSP開發(fā)

2009-10-26 12:17:03

linux腳本編寫

2009-07-03 14:31:43

學(xué)習(xí)JSP

2009-07-06 10:10:43

MyJSP

2009-07-06 16:55:06

JSP題目

2011-03-01 09:30:27

LinuxScreenletPython

2009-06-06 18:43:34

JSP Action

2009-07-02 10:51:21

腳本編程JSP開發(fā)

2011-07-05 10:39:55

JVM

2009-07-01 11:44:32

JSP學(xué)習(xí)教程

2016-11-14 19:15:37

Android

2009-07-06 15:31:42

JSP Action

2010-05-27 17:41:09

2009-06-30 17:01:27

訪問量JSP教程

2009-07-06 14:43:30

JSP元素

2011-07-12 17:11:13

PHPSHELL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 97久久精品午夜一区二区 | 亚洲一区二区在线播放 | 精品国产乱码久久久久久影片 | 亚洲精品成人在线 | 91视频a| 亚洲精品一区二区三区中文字幕 | 国产亚洲一区二区在线观看 | 欧美一级特黄aaa大片在线观看 | 国产精品视频一区二区三区四区国 | 欧美日韩国产高清视频 | 成人小视频在线观看 | 国产乱一区二区三区视频 | 99热精品在线观看 | 久久久精 | 欧美不卡一区二区 | 国产成人精品一区二区三区视频 | 国产精品一区视频 | 国产免费av在线 | 天天干亚洲 | 91精品国产欧美一区二区 | 亚洲成av人片在线观看 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 狠狠夜夜 | 久久久久九九九九 | 久久精品国产一区二区电影 | 国产精品久久久久aaaa九色 | 精品国产乱码久久久久久88av | 久久久久久亚洲欧洲 | 国产精品日日做人人爱 | 天天宗合网 | 日韩一区二区三区在线 | 欧美高清视频一区 | 亚洲三级在线 | 亚洲国产精品久久久 | 午夜影院官网 | 日韩av一区二区在线观看 | 欧美成人精品在线观看 | 国产一在线观看 | 99久久久久久99国产精品免 | 国产精品视频久久久久久 | 欧美在线小视频 |