51cto下載-jsp入門教程_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  JSP入門教程(一)</p><p><b>  作者:SUN/網(wǎng)貓</b></p><p>  歡迎使用JavaServer Pages(以下簡稱JSP)技術(shù)—制作動態(tài)內(nèi)容網(wǎng)頁的方法。 </p><p>  如果你希望學(xué)習(xí)這篇教程的話,我想你一定是這項(xiàng)技術(shù)的新手。你可能想成為一名利用JSP技術(shù)開發(fā)網(wǎng)絡(luò)應(yīng)用程序的程序員或者

2、網(wǎng)頁設(shè)計(jì)師。本教程中包含了一系列JSP的技巧和一些簡單的代碼的寫法,每一步都舉了一組例子來講述原理。</p><p>  我建議你在學(xué)習(xí)本教程之前先去看一看FAQ,了解如果配置你的服務(wù)器好讓他能支持并運(yùn)行JSP。那樣你就可以跳過前邊的內(nèi)容直接看你感興趣的內(nèi)容了。</p><p>  OK,費(fèi)話少說,Let’s go!</p><p>  第一課:真正的開始 <

3、/p><p>  [dukebanner.html]</p><p>  <table border=”0” width=”400” cellspacing=”0” cellpadding=”0”></p><p><b>  <tr></b></p><p>  <td height=”150

4、” width=”150”> &nbsp; </td></p><p>  <td width=”250”> &nbsp; </td></p><p><b>  </tr></b></p><p><b>  <tr></b></p&

5、gt;<p>  <td width=”150”> &nbsp; </td></p><p>  <td align=”right” width=”250”></p><p>  <img src=”duke.waving.gif”></td></tr></table><br&g

6、t;</p><p>  helloworld.jsp </p><p>  <%@ page info="a hello world example" %></p><p><b>  <html></b></p><p>  <head><title>

7、;Hello, World</title></head></p><p>  <body bgcolor="#ffffff" background="background.gif"></p><p>  <%@ include file="dukebanner.html" %><

8、;/p><p><b>  <table></b></p><p><b>  <tr></b></p><p>  <td width=150> &nbsp; </td></p><p>  <td width=250 align=righ

9、t> <h1>Hello, World!</h1> </td></p><p><b>  </tr></b></p><p><b>  </table></b></p><p><b>  </body></b><

10、/p><p><b>  </html></b></p><p><b>  頁面說明:</b></p><p>  在很多JSP文件中你都要寫上這樣的說明。在helloword.jsp中:</p><p>  <%@ page info="a hello world exa

11、mple" %></p><p>  傻瓜也看得出來,這句話沒什么大用,只是簡要的說明一下這段代碼的作用。</p><p>  你可以在JSP文件中的任何地方寫這種代碼,但是好的習(xí)慣是把他寫在最前面,還有,因?yàn)樗荍SP標(biāo)簽,記住一定要放在<html>前面,呵 </p><p>  include說明: </p><p

12、>  include用來在主JSP文件中調(diào)用本地的一個(gè)其他文件,通常是一些版權(quán)信息啦,腳本語言啦等其他任何你想在其他文件中重復(fù)使用的代碼。在這個(gè)例子中就是調(diào)用了一個(gè)圖片其實(shí)。大家明白這個(gè)意思就得了。 </p><p><b>  隨便說兩句: </b></p><p>  在JSP中對寫法非常敏感,不可以有一點(diǎn)錯(cuò)誤。舉個(gè)例子,把<jsp:useBean&g

13、t;寫成<jsp:usebean>那樣服務(wù)器會出現(xiàn)錯(cuò)誤信息。一些如類名,包名,路徑名還有其他的敏感的標(biāo)簽等千萬不要寫錯(cuò)。有一些JSP標(biāo)簽?zāi)貌粶?zhǔn)的話就去查一下JavaServer Pages語法卡片。 </p><p>  代碼寫好了,如何試驗(yàn)一下呢? </p><p>  我這里寫的UNIX下的方法,如果你用Windows,那么換一下路徑就可以了 </p><

14、;p>  1、 先建一個(gè)目錄:../jswdk-1.0/examples/jsp/tutorial/helloworld</p><p>  2、 把這些文件拷過去background.gif, duke.waving.gif, dukebanner.html, and helloworld.jsp </p><p>  3、 cd ../jswdk-1.0,然后startserve

15、r </p><p>  4、 開一個(gè)瀏覽器, </p><p>  5、 http://yourMachineName:8080/examples/jsp/tutorial/helloworld/</p><p>  helloworld.jsp</p><p>  JSP入門教程(二)</p><p><b&

16、gt;  作者:SUN/網(wǎng)貓</b></p><p>  第二課:用HTML表單 </p><p>  大多數(shù)情況下,商業(yè)的網(wǎng)站都要有一些表單,比如說輸入一下消費(fèi)者的姓名啦,地址啦,或者敲一個(gè)詞來用搜索引擎來查一下啦,或者市場人員從來訪者處收集一些數(shù)據(jù)供參考什么的。 </p><p>  那些表單傳回的數(shù)據(jù)怎么處理的? </p><p

17、>  來訪者通過表單向JSP引擎輸入了數(shù)據(jù),并保存在了request對象中,那么接下來怎么辦?</p><p>  首先,JSP引擎把存放在request對象中的數(shù)據(jù)發(fā)到JSP頁面指定的服務(wù)器端的組件(JavaBeans組件, servlet,或者enterprise bean),組件收到這些個(gè)數(shù)據(jù)以后,有可能再存這些數(shù)據(jù)到數(shù)據(jù)庫或者其他的地方存放起來,同時(shí),返回一個(gè)response對象給JSP引擎。JSP

18、引擎再把response對象傳給JSP頁面,這時(shí)的頁面包含了定義好的格式和從服務(wù)器端得到的數(shù)據(jù)。這時(shí)JSP引擎和Web服務(wù)器再發(fā)送一個(gè)整理好的完整的頁面給客戶,也就是這們在瀏覽器上看到的結(jié)果??蛻艉头?wù)器間的通信協(xié)議可以用HTTP,當(dāng)然也可以用其他的。</p><p>  Request和Response對象在你制作的JSP原代碼中起作用。到于request對象到底怎么用,我要在接下來詳細(xì)的講給你聽。</p

19、><p><b>  如何創(chuàng)建表單</b></p><p>  用HTML定義一些有代表性的表單做成一個(gè)JSP文件,然后用JSP標(biāo)簽在表單和服務(wù)器端對象(通常都用Bean)傳遞數(shù)據(jù)。一般情況下是這么干的:</p><p>  1、 寫JSP原文件,創(chuàng)建一些HTML的表單并命名。</p><p>  2、 在Java文件里寫B(tài)

20、ean,定義屬性,GET或者SET方法來配合已經(jīng)被你指定好名字的表單。</p><p>  3、 回到JSP原文件中,增加<jsp:useBean>標(biāo)簽來創(chuàng)建一個(gè)或者調(diào)用一個(gè)現(xiàn)成的Bean。</p><p>  4、 增加<jsp:setProperty>標(biāo)簽設(shè)置HTML表單中需要SET方法的Bean的屬性。</p><p>  5、 增加&

21、lt;jsp:getProperty>標(biāo)簽設(shè)置HTML表單中需要GET方法的Bean的屬性。</p><p>  6、 如果需要處理更多的用戶數(shù)據(jù),用request對象。</p><p>  說了半天你可能看不懂,其實(shí)看一個(gè)例子你就懂了。</p><p>  先看一個(gè)簡單的hello的例子吧: </p><p>  這段程序其實(shí)還是計(jì)算

22、機(jī)程序里那個(gè)最經(jīng)典的“hello,world”的程序,只不過呢,我使他撓了一點(diǎn)彎兒,使他看起來比較智能和復(fù)雜。首先你輸入你的名字,然后Duke跟你說:“hello!” </p><p><b>  看看代碼吧: </b></p><p>  dukebanner.html</p><p>  <table border="0&q

23、uot; width="400" cellspacing="0" cellpadding="0"></p><p><b>  <tr></b></p><p>  <td height="150" width="150"> &nb

24、sp; </td></p><p>  <td width="250"> &nbsp; </td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p> 

25、 <td width="150"> &nbsp; </td></p><p>  <td align="right" width="250"></p><p>  <img src="duke.waving.gif"> </td></p&

26、gt;<p>  </tr></table><br></p><p>  主JSP文件:hellouser.jsp</p><p>  <%@ page import="hello.NameHandler" %></p><p>  <jsp:useBean id="m

27、ybean" scope="page" class="hello.NameHandler" /></p><p>  <jsp:setProperty name="mybean" property="*" /></p><p><b>  <html></

28、b></p><p>  <head><title>Hello, User</title></head></p><p>  <body bgcolor="#ffffff" background="background.gif"></p><p>  <%

29、@ include file="dukebanner.html" %></p><p>  <table border="0" width="700"></p><p>  <tr><td width="150"> &nbsp; </td></

30、p><p>  <td width="550"></p><p>  <h1>My name is Duke. What's yours?</h1></td></tr></p><p>  <tr><td width="150" &nbs

31、p; </td><td width="550"></p><p>  <form method="get"></p><p>  <input type="text" name="username" size="25"></p>

32、<p><b>  <br></b></p><p>  <input type="submit" value="Submit"></p><p>  <input type="reset" value="Reset"></p>

33、<p>  </td></tr></p><p><b>  </form></b></p><p><b>  </table></b></p><p><b>  <%</b></p><p>  If ( r

34、equest.getParameter("username") != null )</p><p><b>  {</b></p><p><b>  %></b></p><p>  <% @ include file="response.jsp" %></

35、p><p><b>  <% }</b></p><p><b>  %></b></p><p>  </body></html></p><p>  回應(yīng)文件:response.jsp</p><p>  <table border=

36、"0" width="700"></p><p><b>  <tr></b></p><p>  <td width="150"> &nbsp; </td></p><p>  <td width="550"

37、></p><p>  <h1>Hello, <jsp:getProperty name="mybean" property="username" />!</p><p><b>  </h1></b></p><p><b>  </td>

38、</b></p><p><b>  </tr></b></p><p><b>  </table></b></p><p>  處理數(shù)據(jù)的Bean:(namehandler.java)</p><p>  package hello;</p>&

39、lt;p>  public class NameHandler</p><p><b>  {</b></p><p>  private String username;</p><p>  public NameHandler() {</p><p>  username = null;</p>

40、<p><b>  }</b></p><p>  public void setUsername( String name ) {</p><p>  username = name;</p><p><b>  }</b></p><p>  public String getUser

41、name() {</p><p>  return username;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  建立HTML表單</b></p><p>  一個(gè)HTML的窗分為三個(gè)部分

42、:<form>標(biāo)簽,輸入方法,提交按鈕發(fā)數(shù)據(jù)到服務(wù)器。一般的HTML頁面里,是這么寫的<form method=get action=someurl>,在其他的頁面里的action屬性可能是其他特殊的CGI程序或者其他能處理數(shù)據(jù)的程序,那么在JSP里邊是怎么用的呢,呵,如果你想把數(shù)據(jù)發(fā)到Bean里的話那么你可以省略action里邊的東西了,直接寫<jsp:useBean>標(biāo)簽或者其他特定的JSP文件了

43、。接下來的那些表單和普通的HTML差不多了,<input>的方法,然后加一個(gè)提交按鈕,可能還有一個(gè)Reset按鈕,對了,別忘了,還得給每一個(gè)input表單加一個(gè)名字。</p><p>  這么寫:<input type="text" name="username"></p><p>  使用GET和POST方法</p&g

44、t;<p>  用GET和POST方法可以發(fā)數(shù)據(jù)到服務(wù)器,在JSP程序中GET和POST方法可以發(fā)數(shù)據(jù)到Bean、servlet、或者其他服務(wù)器端的組件。</p><p>  理論上說,GET是從服務(wù)器上請求數(shù)據(jù),POST是發(fā)送數(shù)據(jù)到服務(wù)器。事實(shí)上,GET方法是把數(shù)據(jù)參數(shù)隊(duì)列(query string)加到一個(gè)URL上,值和表單是一一對應(yīng)的。比如說,name=John。在隊(duì)列里,值和表單用一個(gè)&am

45、p;符號分開,空格用+號替換,特殊的符號轉(zhuǎn)換成十六進(jìn)制的代碼。因?yàn)檫@一隊(duì)列在URL里邊,這樣隊(duì)列的參數(shù)就能看得到,可以被記錄下來,或更改。通常GET方法還限制字符的大小。事實(shí)上POST方法可以沒有時(shí)間限制的傳遞數(shù)據(jù)到服務(wù)器,用戶在瀏覽器端是看不到這一過程的,所以POST方法比較適合用于發(fā)送一個(gè)保密的(比如信用卡號)或者比較大量的數(shù)據(jù)到服務(wù)器。</p><p><b>  寫B(tài)ean</b>&

46、lt;/p><p>  如果JSP程序用到了Bean,你就得按照J(rèn)avaBeans API的說明設(shè)計(jì)你的Bean。</p><p>  記住下面兩個(gè)關(guān)鍵部分。</p><p>  如果JSP程序里用<jsp:getProperty>標(biāo)簽,那你就得在Bean里邊配合的GET方法。</p><p>  如果JSP程序進(jìn)而用 <jsp

47、:setProperty>標(biāo)簽,那你就得在Bean里邊配合的Set方法。</p><p>  設(shè)置參數(shù)到Bean或者從里邊取參數(shù)將在以后的部分詳細(xì)介紹。</p><p><b>  傳數(shù)據(jù)到Bean</b></p><p>  把HTML表單的數(shù)據(jù)傳到Bean里需要兩個(gè)工作: </p><p>  ? 用<j

48、sp:useBean>標(biāo)簽創(chuàng)建或者定位到Bean </p><p>  ? 在Bean里面用<jsp:serProperty>設(shè)置屬性值 </p><p>  第一步用<jsp:useBean>標(biāo)簽創(chuàng)建或者定位到Bean一定要用在<jsp:setProperty>之前,<jsp:useBean>首先按照你指定的名字查找Bean,如果沒找

49、到,會給你指定一個(gè)。允許在一個(gè)JSP文件中創(chuàng)建一個(gè)Bean,然后再另一個(gè)文件中調(diào)用,這就給了Bean一個(gè)很廣泛的運(yùn)行空間。 </p><p>  第二步在Bean里面用<jsp:setProperty>設(shè)置屬性值。最簡單的方法是把值定義成與表單名相配合。舉個(gè)例子,如果你把表單名定義成“username”那么,你就在Bean里定義屬性“username”然后用方法getUsername和setUsern

50、ame。 </p><p>  當(dāng)然也可以定義成不同的名字,只要你不認(rèn)為麻煩。誰讓你記憶力好呢! </p><p>  Request對象 </p><p>  用戶輸入的數(shù)據(jù)用來存放在Request對象里,用javax.servlet.HttpServletRequest來執(zhí)行(你也可以用其他不同的工具來執(zhí)行,但他們其實(shí)都是javax.servlet.HttpSe

51、rvletRequest的子集)</p><p>  你也可以直接用scriptlet來直接訪問Request對象。Scriptlet將在下一講里邊詳細(xì)的討論,現(xiàn)在你只需要知道他是用腳本語言寫的一段放?lt;% 和%> 之間的代碼就足夠了。在JSP 1.0中,你必須用JavaTM程序語言作為你的腳本語言。</p><p>  你經(jīng)常會用到如下方法處理Request對象:</p&

52、gt;<p><b>  方法</b></p><p><b>  說明</b></p><p><b>  執(zhí)行結(jié)果</b></p><p>  getRequest</p><p>  Javax.servlet.jsp.PageContext</p&g

53、t;<p>  返回當(dāng)前Request對象</p><p>  getParameterNames</p><p>  javax.servlet.ServletRequest </p><p>  返回當(dāng)前Request對象參數(shù)名</p><p>  getParameterValues</p><p>

54、;  javax.servlet.ServletRequest </p><p>  返回當(dāng)前Request對象參數(shù)值</p><p>  你將會發(fā)現(xiàn)其他方法包括ServletRequest,HttpServletRequest或者其他任何ServletRequest的子集。</p><p>  JSP引擎經(jīng)常在scenes之后使用Request對象,即使你沒有明確

55、地在JSP文件中調(diào)用。</p><p>  從Bean中調(diào)數(shù)據(jù)到JSP頁面</p><p>  一旦用戶的數(shù)據(jù)被傳到Bean,你就想重新得到數(shù)據(jù),然后在JSP面頁中顯示出來。想達(dá)到這一步,你就得用到<jsp:getProperty>標(biāo)簽。傳Bean名和屬性名:</p><p>  <h1>Hello, <jsp:getProperty

56、name="mybean" property="username"/>!</p><p>  <jsp:useBean>, <jsp:setProperty>, 和 <jsp:getProperty>標(biāo)簽必須相配,舉個(gè)例子:</p><p>  hellouser.jsp:</p><p&

57、gt;  <jsp:useBean id="mybean" scope="session" class="hello.NameHandler" /></p><p>  <jsp:setProperty name="mybean" property="*" /></p><

58、;p>  response.jsp:</p><p>  <h1>Hello, <jsp:getProperty name="mybean" property="username"/>!</p><p>  在這個(gè)例子里,標(biāo)簽被放在兩個(gè)文件中,但是指定的名字都是相同的,如果不同的話,那么系統(tǒng)會返回一個(gè)錯(cuò)誤信息。</

59、p><p><b>  如何運(yùn)行例子</b></p><p>  我用的是UNIX主機(jī),如果你用windows,那么改相應(yīng)的路徑即可。</p><p>  創(chuàng)建路徑../jswdk-1.0/examples/jsp/tutorial/hellouser.</p><p>  把文件background.gif, duke.w

60、aving.gif, dukebanner.html, hellousr.jsp和response.jsp文件放進(jìn)去。</p><p>  創(chuàng)建一個(gè)目錄,../jswdk-1.0/examples/WEB-INF/jsp/beans/hello</p><p>  把文件NameHandler.java和NameHandler.class放進(jìn)去。</p><p> 

61、 JSP入門教程(三)</p><p><b>  作者:SUN/網(wǎng)貓</b></p><p><b>  使用腳本</b></p><p>  在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標(biāo)簽雖然很強(qiáng)大,但是完成某些工作還是比較費(fèi)力的困難的。這時(shí)你可以使用腳本語言段來補(bǔ)充JSP標(biāo)簽。</p&

62、gt;<p>  使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。</p><p><b>  如何增加腳本</b></p><p>  首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規(guī)則</p><p>  1、 在JS

63、P頁面里用Page指令定義腳本(默認(rèn)值是Java,一般不需要定義)</p><p>  2、 聲明語法<%!……%>聲明變量和方法(函數(shù))。</p><p>  3、 表達(dá)式語法<%=……%>定義腳本語言表達(dá)式</p><p>  4、 腳本語法〈%……%>可以操作聲明、表達(dá)式和其他類型合法的代碼段在頁腳本語言。</p>

64、<p>  5、 一定要在結(jié)尾加%>標(biāo)簽</p><p>  聲明、表達(dá)式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點(diǎn)和不同點(diǎn)吧。</p><p>  聲明<%!……%>包含了一個(gè)或多個(gè)變量和方法,結(jié)尾以分號分隔。</p><p>  例:<%! Int I=0 ; %></p>&l

65、t;p>  <%! Int a, b ; double c ; %></p><p>  <%! Circle a = new circle(2.0) ; %></p><p>  在頁面中使用變量和方法之前必須聲明</p><p>  聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應(yīng)變得擴(kuò)展到被包含的頁

66、面。</p><p>  表達(dá)式<%=……%>可以在頁面中包含任何合法的語言表達(dá)式,不用分號。</p><p>  例:<%= Math.sqrt(2) %></p><p>  <%= item[I] %></p><p>  <%= a+b+c %></p><p>

67、  <%= new java.util.date() %></p><p>  表達(dá)式和腳本的一個(gè)關(guān)鍵的不同點(diǎn)就是不需要分號。如果你需要在腳本中使用表達(dá)式就必須加分號。</p><p>  腳本<%……%>允許你寫的任何數(shù)量的腳本語言</p><p>  例:<% String name=null ;</p><p&

68、gt;  If (request.getParmeter("name")==null{</p><p><b>  %></b></p><p>  記住在腳本中必須使用分號結(jié)尾。</p><p><b>  猜數(shù)字游戲</b></p><p>  猜數(shù)字游戲非常的有趣,而

69、且從這里你還可以學(xué)到很多表達(dá)式的用法。</p><p><b>  代碼</b></p><p>  顯示用的主屏幕(numguess.jsp)</p><p><b>  <!--</b></p><p>  Number Guess Game</p><p>  W

70、ritten by Jason Hunter, CTO, K&A Software</p><p>  jasonh@kasoftware.com, http://www.servlets.com</p><p>  Copyright 1999, K&A Software</p><p>  Distributed by Sun Microsyst

71、ems with permission</p><p><b>  --></b></p><p>  <%@ page import = "num.NumberGuessBean" %></p><p>  <jsp:useBean id="numguess" class=&qu

72、ot;num.NumberGuessBean" scope="session" /></p><p>  <jsp:setProperty name="numguess" property="*" /></p><p><b>  <html></b></p>

73、;<p>  <head><title>Number Guess</title></p><p><b>  JDK安裝</b></p><p>  作者:東方一蛇/我的家</p><p><b>  一、前言 </b></p><p>  JDK(

74、Java Development Kit )是一切java應(yīng)用程序的基礎(chǔ),可以說,所有的java應(yīng)用程序是構(gòu)建在這個(gè)之上的。它是一組API,也可以說是一些java Class。目前已經(jīng)正式發(fā)布的最新版本是JDK1.3。考慮到我對linux不熟悉,而且大多數(shù)都是在MS系統(tǒng)下,所以,在這里我用的是win2000。 </p><p><b>  二、下載,安裝</b></p><

75、;p>  下載地址為JAVA官方站點(diǎn):java.sun.com,國內(nèi)也到處都是。</p><p>  Windows下,直接運(yùn)行.exe文件,安裝到一個(gè)目錄,我這里用F:\jdk13作為例子。</p><p><b>  三、配置</b></p><p>  桌面上選擇“我的電腦”(右鍵)</p><p><

76、b>  高級</b></p><p><b>  環(huán)境變量</b></p><p>  在“系統(tǒng)變量”--->“新建”</p><p>  在變量名中輸入:CLASSPATH,變量值中輸入:</p><p>  F:\JDK13\LIB\dt.JAR;F:\JDK13\LIB\TOOLS.JAR;

77、F:\JDK13\BIN;然后確定;</p><p>  好了,配置完了,要重新啟動計(jì)算機(jī)后,環(huán)境變量才能有效的。</p><p><b>  四、測試</b></p><p>  (1)用文本編輯器寫一個(gè)簡單的java程序:</p><p>  public class HelloWorld {</p>

78、<p>  public static void main(String args[]) {</p><p>  System.out.println("Hello World!"); </p><p><b>  }</b></p><p><b>  }</b></p>&l

79、t;p>  這個(gè)例子就是著名的“Hello World”,它的功能就是顯示“Hello World”。</p><p>  注意:該文件名稱必須為“HelloWorld.java”,大小寫也區(qū)分。細(xì)心的朋友會注意到就是和public class后的名字一樣的。 </p><p>  (2)編譯:在dos命令提示符下執(zhí)行:(注意大小寫) </p><p>  j

80、avac HelloWorld.java </p><p>  如果正常的話,將生成HelloWorld.class文件。</p><p>  (3)運(yùn)行:在dos命令提示符下執(zhí)行:(注意大小寫) </p><p>  java HelloWorld</p><p>  這里有一個(gè)java初學(xué)者很有可能遇到的問題(不怕笑話,我也是)就是輸入:

81、</p><p>  java HelloWorld.class</p><p>  多了后面的.class,一定要注意,否則會出現(xiàn)下面的錯(cuò)誤:</p><p>  Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld/class</p><p

82、> ?。ū救瞬孪?,是不是java翻譯“.”的時(shí)候換成了“/”,或者是其他的本人不知道的原因)</p><p>  好了,運(yùn)行java HelloWorld應(yīng)該會出現(xiàn)偉大的“Hello World”了。</p><p>  到這一步,你已經(jīng)成功配置好了JDK,可以開始漫長而痛苦(對于象我一樣的,以前不懂java的朋友來說,可以用“痛苦”來形容,不理解的概念,不熟悉的java api..

83、.,不過,不要急,我將和大家一起慢慢入門,慢慢提高... ...)的Java過程了。</p><p><b>  Tomcat安裝</b></p><p>  作者:東方一蛇/我的家</p><p><b>  一、前言 </b></p><p>  對于初學(xué)者來說,要執(zhí)行JSP和Servlet,T

84、omcat是一個(gè)很不錯(cuò)的選擇,。Tomcat是Apache組織的產(chǎn)品,sun公司對它的支持也相當(dāng)不錯(cuò)。 </p><p><b>  二、下載,安裝</b></p><p>  下載地址為JAVA官方站點(diǎn):jakarta.apache.org,國內(nèi)也比較多。</p><p>  從這個(gè)地址可以下載:http://jakarta.apache.o

85、rg/builds/tomcat/release/,我下載的是Tomcat32b4版本。</p><p>  下載完,解壓到一個(gè)目錄,我這里用F:\tomcat32b4作為例子。</p><p><b>  三、配置</b></p><p>  桌面上選擇“我的電腦”(右鍵)</p><p><b>  高級&

86、lt;/b></p><p><b>  環(huán)境變量</b></p><p>  在“系統(tǒng)變量”--->“新建”</p><p>  在變量名中輸入:JAVA_HOME,變量值中輸入:F:\JDK13然后確定;</p><p>  在“系統(tǒng)變量”--->“新建”</p><p> 

87、 在變量名中輸入:TOMCAT_HOME,變量值中輸入:F:\tomcat32b4然后確定;</p><p>  好了,配置完了,要重新啟動計(jì)算機(jī)后,環(huán)境變量才能有效的。</p><p>  注意,對于Tomcat其他設(shè)置,如果沒有必要,是可以不改的,我這里講的都是最簡單而可行的方法,如果對你的改動沒有把握,還是建議不要改動。</p><p><b>  

88、四、測試</b></p><p>  (1)啟動tomcat:</p><p>  在F:\tomcat32b4\bin下有一個(gè):startup.bat,運(yùn)行它,將出現(xiàn)一個(gè)Dos窗口。</p><p><b>  (2)瀏覽 </b></p><p>  在瀏覽器中輸入:http://localhost:80

89、80/看看有什么效果(Tomcat默認(rèn)端口為8080,在不沖突的前提下,你可以改動的),是不是可以看到一只可愛的小貓(其實(shí),我個(gè)人認(rèn)為,無論從顏色還是樣子,更象一只老虎) </p><p><b>  (3)運(yùn)行 </b></p><p>  在這個(gè)頁面有JSP Examples和 Servlet Examples, 好了,自己測試運(yùn)行它們吧。</p>

90、<p>  (4)退出tomcat</p><p>  在F:\tomcat32b4\bin下有一個(gè):shutdown.bat,運(yùn)行它,將關(guān)閉Dos窗口(如果堅(jiān)持直接關(guān)閉這個(gè)DOS窗口也是可以的,但是,既然有這個(gè)shutdown.bat,應(yīng)該有它存在的理由)。</p><p>  Resin+Apache的安裝</p><p>  作者:東方一蛇/我的家&

91、lt;/p><p><b>  一、前言 </b></p><p>  對于初學(xué)者來說,要執(zhí)行JSP和Servlet,Tomcat是一個(gè)很不錯(cuò)的選擇。你也可以用Resin,這兩個(gè)產(chǎn)品都是可以不花一分錢的。 Resin對Xml的支持是很好的。 </p><p><b>  二、下載,安裝</b></p><p

92、>  下載地址為Resin官方站點(diǎn):http://www.caucho.com/。</p><p>  從這個(gè)地址可以下載:http://www.caucho.com/download/index.xtp,我下載的是Resin1.1.4版本。</p><p>  下載完,解壓到一個(gè)目錄,我這里用E:\resin114作為例子。</p><p><b>

93、;  三、配置</b></p><p>  在這之前,當(dāng)然我們要先安裝了Apache,而且能正常運(yùn)行了。</p><p>  (1)配置Apache</p><p>  打開apache的conf子目錄下的httpd.conf文件,用文本編輯工具編輯它。加入如下幾行:</p><p>  LoadModule caucho_mod

94、ule "E:\resin114\srun\win32-1.3.6\mod_caucho.dll"</p><p>  AddModule mod_caucho.c</p><p>  <IfModule mod_caucho.c></p><p>  CauchoConfigFile "E:\\resin114\\conf

95、\\resin.conf"</p><p>  <Location /caucho-status></p><p>  SetHandler caucho-status</p><p>  </Location></p><p>  </IfModule></p><p>

96、  注意:上面的步驟也可以通過更加簡單的方式實(shí)現(xiàn),就是直接運(yùn)行E:\resin114\bin\目錄下的setup.exe,勾上apache,然后Apply,最后OK。這樣,上面這些行應(yīng)該會自動加上的。</p><p>  (2)配置Resin</p><p>  在resin的conf子目錄下有個(gè)resin.conf文件,將該文件備份一個(gè)。然后建立resin.conf文件,如下內(nèi)容:<

97、;/p><p>  <caucho.com></p><p>  <http-server app-dir='e:/apache/htdocs'></p><p>  <error-log id='log/error.log'/></p><p>  <classpath

98、id='WEB-INF/classes' source='WEB-INF/classes' compile='true'/></p><p>  <servlet-mapping url-pattern='/servlets/*' servlet-name='invoker'/></p><p&g

99、t;  <servlet-mapping url-pattern='*.xtp' servlet-name='com.caucho.jsp.XtpServlet'/></p><p>  <servlet-mapping url-pattern='*.jsp' servlet-name='com.caucho.jsp.JspServlet&

100、#39;/></p><p>  </http-server></p><p>  </caucho.com></p><p><b>  四、測試</b></p><p>  (1)啟動Resin:</p><p>  在resin的bin下有一個(gè)srun.exe,

101、運(yùn)行它,將出現(xiàn)一個(gè)窗口。</p><p>  (2)做一個(gè)簡單的jsp文件test.jsp(我們用resin站點(diǎn)的例子)</p><p>  該文件放在:apache/htdocs/test.jsp</p><p><b>  內(nèi)容如下:</b></p><p>  <%@ page language=javasc

102、ript %></p><p>  2 + 2 = <%= 2 + 2 %> </p><p><b>  (3)運(yùn)行 </b></p><p>  在瀏覽器中輸入:http://localhost/test.jsp,應(yīng)該出現(xiàn)下面結(jié)果:</p><p><b>  2+2=4</b>

103、;</p><p>  好了,到這里你已經(jīng)安裝成功了,你可以在htdocs下建立一些自己的子目錄, 管理文件。</p><p>  注意:在四(1)中,啟動resin 可以將srun加在Win2000的服務(wù)中,讓每次這個(gè)resin服務(wù)自動啟動,不必每次都運(yùn)行srun.exe。</p><p>  Orion App Server的安裝</p><

104、p>  作者:東方一蛇/我的家</p><p><b>  一、前言 </b></p><p>  Orion這個(gè)東西,小巧,但是功能卻非常多,廢話不講,看它目前的支持就知道了: </p><p>  (1)Servlets/JSP </p><p><b>  (2)EJB </b><

105、/p><p>  (3)HTTP (注:說明不再需要Apache或者IIS等Web Server) </p><p><b>  二、下載,安裝</b></p><p>  下載地址為Orion Application Server官方站點(diǎn):http://www.orionserver.com/,我下載的是Orion1.4版本。</p>

106、<p>  下載完,解壓到一個(gè)目錄,我這里用E:\Orion作為例子。</p><p><b>  三、配置</b></p><p>  (1)根據(jù)Orion官方站點(diǎn)的安裝說明,如果要支持JSP等技術(shù)的話,要將JDK的tools.jar復(fù)制到e:\orion目錄下,tools.jar文件在你安裝的JDK目錄的lib子目錄下。</p><

107、;p>  到現(xiàn)在,其實(shí)已經(jīng)成功了缺省的配置了,如果你的80端口沒有被占用,而且你也想用80作為端口的話,你到這里已經(jīng)完成了,否則,請繼續(xù)下面的配置。</p><p><b>  (2)配置端口</b></p><p>  在E:\orion\config目錄下有個(gè)default-web-site.xml文件,找到文件中下面行:</p><p&

108、gt;  <web-site host="[ALL]" port="80" display-name="Default Orion WebSite"></p><p><b>  將這行改為:</b></p><p>  <web-site port="8008" dis

109、play-name="Default Orion WebSite"></p><p>  注意,我這里使用的是8008端口。</p><p><b>  四、測試</b></p><p>  (1)啟動Orion:</p><p>  在Orion目錄下,command方式運(yùn)行:</p&g

110、t;<p>  java -jar orion.jar</p><p>  將出現(xiàn)Orion/x.x.x initialized,我這里版本是1.4所以顯示:</p><p>  Orion/1.4.0 initialized</p><p>  到此,說明你已經(jīng)成功了。</p><p>  (2)執(zhí)行jsp文件</p&g

111、t;<p><b>  在瀏覽器中輸入:</b></p><p>  http://localhost:8008/</p><p>  出現(xiàn):Orion Application Server 1.4.0 - Up and running,下面有JSP examples你可以試著運(yùn)行。</p><p>  JDBC-ODBC翻頁例子

112、</p><p>  作者:東方一蛇/我的家</p><p><b>  一、運(yùn)行前準(zhǔn)備 </b></p><p>  建議了一個(gè)MS SQLServer7數(shù)據(jù)庫 DNS,名稱為:Test_DB </p><p>  數(shù)據(jù)庫中有一個(gè)表:guestbook字段為:name(varchar),email(varchar),b

113、ody(text) </p><p>  數(shù)據(jù)庫用戶為sa 密碼空,可以自己修改的。 </p><p><b>  二、代碼 </b></p><p>  <%@ page contentType="text/html;charset=gb2312"%></p><p><b>

114、  <% </b></p><p><b>  //變量聲明 </b></p><p>  java.sql.Connection sqlCon; //數(shù)據(jù)庫連接對象 </p><p>  java.sql.Statement sqlStmt; //SQL語句對象 </p><p>  java.sql

115、.ResultSet sqlRst; //結(jié)果集對象 </p><p>  java.lang.String strCon; //數(shù)據(jù)庫連接字符串 </p><p>  java.lang.String strSQL; //SQL語句 </p><p>  int intPageSize; //一頁顯示的記錄數(shù) </p><p>  int

116、intRowCount; //記錄總數(shù) </p><p>  int intPageCount; //總頁數(shù) </p><p>  int intPage; //待顯示頁碼 </p><p>  java.lang.String strPage; </p><p>  int i,j,k; //設(shè)置一頁顯示的記錄數(shù) </p>&

117、lt;p>  intPageSize = 5; //取得待顯示頁碼 </p><p>  strPage = request.getParameter("page"); </p><p>  if(strPage==null){</p><p>  //表明在QueryString中沒有page這一個(gè)參數(shù),此時(shí)顯示第一頁數(shù)據(jù) </p&

118、gt;<p>  intPage = 1; </p><p><b>  } else{</b></p><p>  //將字符串轉(zhuǎn)換成整型 </p><p>  intPage = java.lang.Integer.parseInt(strPage); </p><p>  if(intPage<

119、1) intPage = 1; }</p><p>  //裝載JDBC-ODBC驅(qū)動程序 </p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); </p><p>  //設(shè)置數(shù)據(jù)庫連接字符串 </p><p>  strCon = "jdbc:odb

120、c:Test_DB"; </p><p><b>  //連接數(shù)據(jù)庫 </b></p><p>  sqlCon = java.sql.DriverManager.getConnection(strCon,"sa",""); </p><p>  //創(chuàng)建SQL語句對象 </p>

121、<p>  sqlStmt = sqlCon.createStatement(); </p><p><b>  //獲取記錄總數(shù) </b></p><p>  strSQL = "select count(*) from guestbook"; </p><p>  sqlRst = sqlStmt.execut

122、eQuery(strSQL); </p><p>  //執(zhí)行SQL語句并取得結(jié)果集 </p><p>  sqlRst.next(); //記錄集剛打開的時(shí)候,指針位于第一條記錄之前 </p><p>  intRowCount = sqlRst.getInt(1); </p><p>  sqlRst.close(); //關(guān)閉結(jié)果集 &

123、lt;/p><p><b>  //記算總頁數(shù) </b></p><p>  intPageCount = (intRowCount+intPageSize-1) / intPageSize; </p><p>  //調(diào)整待顯示的頁碼 if(intPage>intPageCount) intPage = intPageCount; <

124、/p><p>  //設(shè)置獲取數(shù)據(jù)SQL語句 </p><p>  strSQL = "select name,email,body from guestbook"; </p><p>  //執(zhí)行SQL語句并取得結(jié)果集 </p><p>  sqlRst = sqlStmt.executeQuery(strSQL);<

125、/p><p>  //將記錄指針定位到待顯示頁的第一條記錄上 </p><p>  i = (intPage-1) * intPageSize; </p><p>  for(j=0;j<i;j++) sqlRst.next(); %> </p><p><b>  <html> </b></p

126、><p><b>  <head></b></p><p>  <title>JSP數(shù)據(jù)庫操作例程 - 數(shù)據(jù)分頁顯示 - JDBC-ODBC</title></p><p><b>  </head> </b></p><p><b>  <

127、;body> </b></p><p>  <p align=center>jdbc-odbc留言版</p> </p><p>  <table border="1" cellspacing="0" cellpadding="0" width=600 align=center>

128、 </p><p><b>  <% </b></p><p><b>  //顯示數(shù)據(jù) </b></p><p><b>  i = 0; </b></p><p>  while(i<intPageSize && sqlRst.next()){

129、%> </p><p><b>  <tr> </b></p><p>  <td>姓名:<%=sqlRst.getString(1)%></td></p><p>  <td>郵件:<%=sqlRst.getString(2)%></td></p&

130、gt;<p><b>  </tr> </b></p><p><b>  <tr> </b></p><p>  <td colspan=2><%=sqlRst.getString(3)%></td></p><p><b>  <

131、/tr></b></p><p>  <% i++; } %></p><p><b>  <tr> </b></p><p>  <td colspan=2 align=center> </p><p>  第<%=intPage%>頁 共<%=i

132、ntPageCount%>頁 </p><p>  <%if(intPage<intPageCount){%></p><p>  <a href="mssql.jsp?page=<%=intPage+1%>">下一頁</a><%</p><p><b>  }</

133、b></p><p><b>  %> </b></p><p>  <%if(intPage>1){%></p><p>  <a href="mssql.jsp?page=<%=intPage-1%>">上一頁</a><%</p>&l

134、t;p><b>  }</b></p><p><b>  %> </b></p><p><b>  </td> </b></p><p><b>  </tr></b></p><p>  </table>

135、; </body> </p><p><b>  </html> </b></p><p><b>  <% </b></p><p><b>  //關(guān)閉結(jié)果集 </b></p><p>  sqlRst.close(); </p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論