jsp中寫java代碼成為scriptlet,寫在%%之間就可以了。
目前創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、城廂網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
Scriptlet是包含在%和%之間的Java代碼,在Web容器處理JSP頁面時(shí)執(zhí)行,通常會(huì)產(chǎn)生輸出,并將輸出發(fā)送到客戶的輸出流里。Scriptlet除了不能定義類和方法、不能用import引入類外,可以包含任何有效的Java代碼。(Java類在Jsp外部定義,可用page指令的import屬性引入,也可以Java Bean的形式使用。Java中的方法必須在類內(nèi)定義,但Jsp允許使用聲明定義方法。窗體(GUI)設(shè)計(jì)代碼在Jsp中無效)。
Scriptlet例程:
%@ page contentType="text/html; charset=gb2312" %
html
head
titleJSP基本語法/title
/head
body
h1Scriptlet示例頁面/h1
table border="1"
caption乘法口訣表/caption
%-- 在網(wǎng)頁中嵌入Java代碼的主要方法 --%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一個(gè)內(nèi)部對(duì)象,print方法用于向客戶端輸出數(shù)據(jù)
out.println("tr");
for(; j=i; j++) {
out.print("td" + j + "*" + i + "=" + j*i + "/td");
}
for(;j=9;j++) {
out.print("td /td");
}
out.println("/tr");
}
%
/table
/body
/html
可以用main函數(shù)和JUnit來寫測(cè)試代碼。main是最早使用的,但是現(xiàn)在更流行的測(cè)試工具是JUnit。
JUnit是一個(gè)Java語言的單元測(cè)試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個(gè)。 JUnit有它自己的JUnit擴(kuò)展生態(tài)圈。多數(shù)Java的開發(fā)環(huán)境都已經(jīng)集成了JUnit作為單元測(cè)試的工具。
下面是一些具體的編寫測(cè)試代碼的技巧或較好的實(shí)踐方法:
1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測(cè)試運(yùn)行的順序,因?yàn)镴Unit利用Vector保存測(cè)試方法。所以不同的平臺(tái)會(huì)按不同的順序從Vector中取出測(cè)試方法。
3. 避免編寫有副作用的TestCase。例如:如果隨后的測(cè)試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡(jiǎn)單的回滾就可以了。
4. 當(dāng)繼承一個(gè)測(cè)試類時(shí),記得調(diào)用父類的setUp()和tearDown()方法。
5. 將測(cè)試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)
6. 測(cè)試類和測(cè)試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測(cè)試類名。
7. 確保測(cè)試與時(shí)間無關(guān),不要依賴使用過期的數(shù)據(jù)進(jìn)行測(cè)試。導(dǎo)致在隨后的維護(hù)過程中很難重現(xiàn)測(cè)試。
8. 如果你編寫的軟件面向國(guó)際市場(chǎng),編寫測(cè)試時(shí)要考慮國(guó)際化的因素。不要僅用母語的Locale進(jìn)行測(cè)試。
9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡(jiǎn)潔。
10.測(cè)試要盡可能地小,執(zhí)行速度快。
11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。
12.利用Junit 的自動(dòng)異常處理書寫簡(jiǎn)潔的測(cè)試代碼
事實(shí)上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會(huì)自動(dòng)捕獲異常。那些沒有被捕獲的異常就被當(dāng)成錯(cuò)誤處理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用來測(cè)試兩個(gè)引用是否指向同一個(gè)對(duì)象
assertEquals()用來測(cè)試兩個(gè)對(duì)象是否相等
14. 確保測(cè)試代碼與時(shí)間無關(guān)
15. 使用文檔生成器做測(cè)試文檔。
public
class
Main
{
public
static
void
main(String[]
args)
{
for
(int
i
=
0;
i
5;
i++)
//這一句控制5行的打印。
{
for
(int
j
=
0;
j
5
-
i
-
1;
j++)
{
System.out.print("
");
}//這一句共執(zhí)行 5-i-1次,即輸出 5-i-1個(gè)空格。
for
(int
k
=
0;
k
2*i+1;
k++)
{
System.out.print("*");
}//這一句共執(zhí)行 i+1次。即輸出2i+1個(gè)*。
//該輸出的都輸出了,換一行繼續(xù)打印。
System.out.println();
//打印一個(gè)回車符,即換行了。
}//你可以迭代一下每個(gè)i值,看看打印的個(gè)數(shù)對(duì)不對(duì)。
}
}下邊是我寫的其他程序。