亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP入門教程(4)

2020-07-27 21:55:46
字體:
來源:轉載
供稿:網友
使用腳本
在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標簽雖然很強大,但是完成某些工作還是比較費力的困難的。這時你可以使用腳本語言段來補充JSP標簽。
使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。
如何增加腳本
首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規則
1、 在JSP頁面里用Page指令定義腳本(默認值是Java,一般不需要定義)
2、 聲明語法<%!……%>聲明變量和方法(函數)。
3、 表達式語法<%=……%>定義腳本語言表達式
4、 腳本語法〈%……%>可以操作聲明、表達式和其他類型合法的代碼段在頁腳本語言。
5、 一定要在結尾加%>標簽
聲明、表達式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點和不同點吧。
聲明<%!……%>包含了一個或多個變量和方法,結尾以分號分隔。
例:<%! Int I=0 ; %>
<%! Int a, b ; double c ; %>
<%! Circle a = new circle(2.0) ; %>
在頁面中使用變量和方法之前必須聲明
聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應變得擴展到被包含的頁面。
表達式<%=……%>可以在頁面中包含任何合法的語言表達式,不用分號。
例:<%= Math.sqrt(2) %>
<%= item[I] %>
<%= a+b+c %>
<%= new java.util.date() %>
表達式和腳本的一個關鍵的不同點就是不需要分號。如果你需要在腳本中使用表達式就必須加分號。
腳本<%……%>允許你寫的任何數量的腳本語言
例:<% String name=null ;
If (request.getParmeter("name")==null{
%>
記住在腳本中必須使用分號結尾。
猜數字游戲
猜數字游戲非常的有趣,而且從這里你還可以學到很多表達式的用法。
代碼
顯示用的主屏幕(numguess.jsp)
<!--
Number Guess Game
Written by Jason Hunter, CTO, K&A Software
jasonh@kasoftware.com, http://www.servlets.com
Copyright 1999, K&A Software
Distributed by Sun Microsystems with permission
-->
<%@ page import = "num.NumberGuessBean" %>

<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session" />
<jsp:setProperty name="numguess" property="*" />

<html>
<head><title>Number Guess</title></head>
<body bgcolor="white">
<font size=4>

<% if (numguess.getSuccess() ) { %>

Congratulations! You got it.
And after just <%= numguess.getNumGuesses() %>tries.<p>

<% numguess.reset(); %>
Care to <a href="numguess.jsp">try again</a>?

<% } else if (numguess.getNumGuesses() == 0) { %>

Welcome to the Number Guess game.<p>
I'm thinking of a number between 1 and 100.<p>

<form method=get>
What's your guess? <input type=text name=guess>
<input type=submit value="Submit">
</form>

<% } else { %>
Good guess, but nope. Try <b><%= numguess.getHint() %></b>.
You have made <%= numguess.getNumGuesses() %> guesses.
<p>I'm thinking of a number between 1 and 100.
<p><form method=get>

What's your guess? <input type=text name=guess>
<input type=submit value="Submit">
</form>
<% } %>
</font>
</body>
</html>

操作程序(NumberGuessBean.java)
// Number Guess Game
// Written by Jason Hunter, CTO, K&A Software
// jasonh@kasoftware.com, http://www.servlets.com
// Copyright 1999, K&A Software
// Distributed by Sun Microsystems with permission

package num;
import java.util.*;
public class NumberGuessBean {
int answer;
boolean success;
String hint;
int numGuesses;
public NumberGuessBean() {
reset();
}
public void setGuess(String guess) {
numGuesses++;
int g;
try {
g = Integer.parseInt(guess);
}
catch (NumberFormatException e) {
g = -1;
}
if (g == answer) {
success = true;
}
else if (g == -1) {
hint = "a number next time";
}
else if (g < answer) {
hint = "higher";
}
else if (g > answer) {
hint = "lower";
}
}
public boolean getSuccess() {
return success;
}
public String getHint() {
return "" + hint;
}
public int getNumGuesses() {
return numGuesses;
}
public void reset() {
answer = Math.abs(new Random().nextInt() % 100)
+ 1;
success = false;
numGuesses = 0;
}
}

在JSP文件中使用腳本
numguess.jsp是一個非常有趣兒的用腳本寫的例子,你看他的結構其實是一個很大的IF……ELSE結構,但是很一個從句又都是用HTML寫的,看起來象一個大的程序段。
不過你也不一定非得象numguess.jsp那樣用HTML和JSP標簽一起來寫腳本。在<%和%>標簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會非常的清析,明了。話又說回來,怎么寫JSP還得根據你的習慣和愛好,我不強迫非得使用任何一種方法,SUN的JSP詳細說明書不規定腳本的長度。

用標簽組合腳本
使用HTML和JSP標簽來寫腳本的時候,注意前后的標簽不要忘記,一定要“封”好。說的不明白,舉個例子吧:
<% } else { %> <!-- 用JSP標簽的時候先關上 -->

... 這時候用JSP標簽吧 ...

<% } %> <!-- 這樣你應該看懂了吧?! -->
開始的時候這種做法看起來可能有一點奇怪,但它以確保你JSP文件編譯的時候腳本的成功轉換。

那么,腳本什么時候執行呢?
一個JSP原文件的處理分為兩個階段:一個是HTTP的編譯時候,一個是請求的處理時間。

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

請求處理時間是當用戶在JSP頁面中提交了一個請求,這時請求由客戶端被request對象傳到了服務器端,JSP引擎根據用戶提交的值執行編譯過的JSP文件或者servlet。

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

如何運行例子
我現在給出的都是在UNIX風格下的路徑,如果你用Windows,那么改成Windows風格路徑
1、猜數字游戲在裝TOMCAT或者JSWDK的時候就已經裝好了。
2、.jsp和.html文件在../jswdk-1.0.1/examples/num中
3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中
4、開瀏覽器,http://機器名/examples/jsp/num/numguess.jsp
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九九久久国产免费| 国产亚洲欧美日韩一区二区| 国产精品igao视频| 欧美放荡办公室videos4k| 亚洲色图15p| 九九久久综合网站| 亚洲成人久久网| 97精品国产97久久久久久免费| 97视频在线观看播放| 精品人伦一区二区三区蜜桃网站| 日韩欧美有码在线| 欧美日韩视频在线| 中文字幕国产精品| 欧美激情一区二区三区久久久| 国产这里只有精品| 国产精品第一第二| 日韩av不卡在线| 欧美影院久久久| 日韩av影片在线观看| 亚洲福利视频久久| 在线观看91久久久久久| 欧美高跟鞋交xxxxhd| 日韩免费在线视频| 亚洲变态欧美另类捆绑| 色婷婷成人综合| 亚洲成人久久久久| 久久99久久亚洲国产| 91精品久久久久久综合乱菊| 久久精品久久久久| 国产美女91呻吟求| 久久久国产精品x99av| 国产一区二区三区欧美| 久久偷看各类女兵18女厕嘘嘘| 久热国产精品视频| 国产日韩欧美另类| 亚洲欧洲在线观看| 日韩精品免费综合视频在线播放| 91精品久久久久久久久中文字幕| 福利一区视频在线观看| 精品国产一区二区三区久久狼5月| 国产91精品黑色丝袜高跟鞋| 欧美成人中文字幕| 日韩电影在线观看免费| 2019亚洲日韩新视频| 亚洲第一男人天堂| 欧美床上激情在线观看| 欧美中文字幕视频| 狠狠色噜噜狠狠狠狠97| 亚洲女在线观看| 国产精品久久77777| 九九热精品在线| 亚洲国产一区二区三区在线观看| 亚洲成人网久久久| 久久久精品一区二区三区| 91国自产精品中文字幕亚洲| 超碰91人人草人人干| 91视频九色网站| 中文综合在线观看| 国外色69视频在线观看| 国产日韩在线视频| 亚洲成色www8888| 91精品视频免费| 亚洲成av人片在线观看香蕉| 国产精品第8页| 福利一区福利二区微拍刺激| 久久久精品在线| 中文字幕在线看视频国产欧美在线看完整| 欧美一区三区三区高中清蜜桃| 欧美视频专区一二在线观看| 国产精品久久久久久久久久久新郎| 亚洲视频欧美视频| 欧美激情第一页xxx| 国产美女高潮久久白浆| 日韩欧美在线网址| 国产精品久久久久秋霞鲁丝| 成人免费网站在线观看| 夜夜嗨av色综合久久久综合网| 91tv亚洲精品香蕉国产一区7ujn| 国产精品久久一| 欧美性xxxx极品hd满灌| 久久精品亚洲国产| 国内精品一区二区三区| 成人在线免费观看视视频| 久久中文字幕国产| 亚洲福利视频二区| 综合136福利视频在线| 日韩中文字幕在线精品| 麻豆国产精品va在线观看不卡| 91精品国产91久久| 日产精品99久久久久久| 一本色道久久综合狠狠躁篇怎么玩| 在线午夜精品自拍| 亚洲天堂网站在线观看视频| 国产精品自拍网| 91av视频在线观看| 最好看的2019年中文视频| 中文.日本.精品| 日韩欧美aaa| 在线观看日韩欧美| 91久久精品久久国产性色也91| 欧美丝袜一区二区三区| 国产视频久久久久久久| 国产成人小视频在线观看| 亚洲欧美中文另类| 久久久噜噜噜久久| 最近2019年日本中文免费字幕| 日本不卡高字幕在线2019| xxav国产精品美女主播| 亚洲欧洲国产一区| 欧美激情一二三| 日韩中文字幕在线看| 日本久久久久亚洲中字幕| 亚洲欧洲xxxx| 高清在线视频日韩欧美| 亚洲小视频在线| 日韩精品极品在线观看| 欧美激情综合色综合啪啪五月| 日本精品视频在线观看| 国产精品99久久久久久久久| www国产精品视频| 国产欧美日韩高清| 久久中文字幕一区| 欧美丝袜美女中出在线| 色婷婷久久av| 久久理论片午夜琪琪电影网| 欧美中在线观看| 国产精品久久久久久久久久小说| 国产成人精品久久二区二区| www.xxxx欧美| 免费97视频在线精品国自产拍| 91网站在线看| 秋霞成人午夜鲁丝一区二区三区| 日韩精品免费在线观看| 在线观看亚洲视频| 亚洲www在线| 欧美成人激情在线| 欧美一级成年大片在线观看| 亚洲网址你懂得| 亚洲日本欧美中文幕| 国产精品国产三级国产aⅴ9色| 亚洲图片在线综合| 欧美日韩亚洲一区二| 亚洲三级av在线| 国产亚洲成av人片在线观看桃| 国产欧美一区二区三区久久人妖| 国产成人精品网站| 久久久天堂国产精品女人| 最新国产成人av网站网址麻豆| 国产精品成人v| 最近2019免费中文字幕视频三| 久久精品中文字幕| 亚洲视频一区二区三区| 亚洲男人的天堂在线播放| 动漫精品一区二区| 亚洲电影成人av99爱色| 欧美大片va欧美在线播放| 亚洲国模精品私拍| 这里只有精品视频| 97国产精品视频人人做人人爱| 国产美女久久久| 国产亚洲美女精品久久久| 亚洲第一视频网站| 精品小视频在线| 国外成人在线播放|