posts - 44,  comments - 48,  trackbacks - 0
           

          過程:
          1.停掉MSSQLSERVER,將MSSQL安裝目錄下的E:\Program Files\Microsoft SQL

          Server\MSSQL\Data\pubs.mdf和E:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf文

          件移走。
          2.重新啟動(dòng)MSSQLSERVER,在SQL Server Enterprise Manager中可看到PUBS的圖標(biāo)是灰色的加了個(gè)'(置疑

          )',刪除PUBS。至此是為了模擬Pubs數(shù)據(jù)庫(kù)只留下了pubs.mdf,(pubs_log.ldf不再用到)。
          3.將pubs.mdf移到MSSQL安裝目錄下E:\Program Files\Microsoft SQL Server\MSSQL\Data\
          4.在SQL查詢分析器中執(zhí)行 exec sp_attach_db 'pubs' ,'E:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
          會(huì)有錯(cuò)誤提示:
          設(shè)備激活錯(cuò)誤。物理文件名 'e:\Program Files\Microsoft SQL Server\MSSQL\data\pubs_log.ldf' 可

          能有誤。
          已創(chuàng)建名為 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.LDF' 的新日志文件。
          不過沒關(guān)系,因?yàn)樾氯罩疚募褎?chuàng)建了,呵呵。
          用此方法只要有.mdf文件,就能回復(fù)數(shù)據(jù)庫(kù)。

          posted @ 2006-09-06 11:58 摩西 閱讀(3805) | 評(píng)論 (1)編輯 收藏

          ??????? 試題是模仿GRE考試,在這實(shí)例中,編了一套"中文GRE測(cè)試"總共有十道題,讀者可自行增加.
          ??????? 注:實(shí)例中的試題,可選答案,正確答案封裝在文件exam.java 中.用index.jsp文件來實(shí)現(xiàn)對(duì)問題的調(diào)用.核對(duì),顯示結(jié)果.所以要先編譯exam.java成exam.class ,之后index.jsp才能調(diào)用.

          少說費(fèi)話--直入主題:
          1.在Tomcat目錄下的webapps目錄下新建book文件夾,
          1.5 在Tomcat目錄下的conf/Catalina/localhost目錄下新建一個(gè)book.xml (這一步很重要!!)
          ?寫入:
          <?xml version='1.0' encoding='utf-8'?>
          <Context docBase="E:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/book" path="/book" reloadable="true">
          </Context>
          2.在book文件夾下新建WEB-INF文件夾.
          2.5 在WEB-INF目錄下新建web.xml 寫入:
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4"
          ?xmlns="
          http://java.sun.com/xml/ns/j2ee"
          ?xmlns:xsi="
          http://www.w3.org/2001/XMLSchema-instance"
          ?xsi:schemaLocation="
          http://java.sun.com/xml/ns/j2ee
          ?
          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

          </web-app>
          3.在WEB-INF文件夾下新建classes文件夾.
          4.把index.jsp? exam.java 放到book目錄下.
          5.用javac? exam.java? 編譯exam.java成exam.jsp? (可在命令行中運(yùn)行此步)
          6.exam.jsp 放到WEB-INF/classes/exam目錄下.
          7.啟動(dòng)tomcat.
          8.輸入地址: http://localhost:8080/book???? 回車 OK !!!!
          Image00003.jpg


          附index.jsp代碼:
          <html>

          <head>
          <META http-equiv=Content-Type content="text/html; charset=GB2312">
          <title>網(wǎng)上測(cè)試</title>
          </head>

          <body>
          <%@ page language="java" contentType="text/html;charset=GB2312" buffer="none"%>
          <jsp:useBean id="exam" scope="session" class="exam.exam"/>
          <FONT SIZE="+2"><B>
          <%=exam.getExamName()%>
          </B></FONT>
          <br><br>
          <%
          int current=exam.getCurrent();
          String reset=null;
          reset=request.getParameter("Reset");
          if(reset==null){
          ?reset="";
          }
          if(reset.equals("1"))
          {
          ?exam.reset();
          }
          int iqn=0;
          String questionNum=null;
          questionNum=request.getParameter("QuestionNum");

          if(questionNum==null)
          {
          ?iqn=0;
          }
          else
          {
          ?Integer tmpInt=new Integer(questionNum);
          ?iqn=tmpInt.intValue();
          }
          if(iqn!=0)
          {
          ?current++;
          ?exam.setCurrent(current);
          }
          ?String answer=null;
          ?answer=request.getParameter("Answer");
          ?
          if(answer==null)
          {
          ?answer="";
          }
          if(exam.getCurrent()>exam.getCount())
          {
          ?if(exam.getCorrect()>=6)
          ?{
          %>
          ??恭喜!你以<%=exam.getCorrect()*10 %>分的成績(jī)通過了測(cè)試!<BR>
          <%
          ?}
          ?else
          ?{
          %>
          ??對(duì)不起,你需要60分以上的成績(jī)才能通過測(cè)試!<BR>
          ??你可以按<A HREF="exam.jsp?Reset=1">這里</A>重新進(jìn)行測(cè)試。<BR>
          <%
          ?}
          }
          else
          {
          ?if(iqn==0)
          ?{
          ??if(answer. equals(exam.getCorrectAnswer(exam.getCurrent()-1)))
          ??{
          ???exam.setCorrect(exam.getCorrect()+1);
          ??}
          ?}
          ?else
          ?{
          ??if(answer.equals(exam.getCorrectAnswer(exam.getCurrent()-2)))
          ??{
          ???exam.setCorrect(exam.getCorrect()+1);
          ??}
          ?}
          %>
          ?<FORM action="exam.jsp" method="post">
          ?<input type="hidden" name="QuestionNum" value="<%=current%>">
          <P>
          ?總共<%=exam.getCount()%>個(gè)問題,現(xiàn)在是第<%=exam.getCurrent()%>個(gè)問題
          </P>
          <br>

          <b>
          ?<%=current%>
          </b>

          <%
          out.println(exam.getExamQuestion(current-1));
          %>
          <br>
          <input type="radio" name="Answer" value="A">
          <%
          out.println(exam.getExamAnswer(current-1,0));
          %>
          <br>

          <input type="radio" name="Answer" value="B">
          <%
          out.println(exam.getExamAnswer(current-1,1));
          %>
          <br>

          <input type="radio" name="Answer" value="C">
          <%
          out.println(exam.getExamAnswer(current-1,2));
          %>
          <br>

          <input type="radio" name="Answer" value="D">
          <%
          out.println(exam.getExamAnswer(current-1,3));
          %>
          <br>

          <input type="submit" value="確定">
          </form>
          <%
          }
          %>

          </body>

          </html>


          exam.java代碼:
          package exam;
          public class exam
          {
          ?int count;
          ?int current;
          ?int correct;
          ?String examName;
          //?String answer;
          ?String[] examQuestion=
          ?{//存放所有的問題
          ??"1.科學(xué)常識(shí):下列有關(guān)科學(xué)家的敘述,何者正確?",
          ??"2.牛頓三大運(yùn)動(dòng)定律的第一定律是:",
          ??"3.兩個(gè)報(bào)名參加海軍的年輕人被問道:\"你們會(huì)游泳嗎?\"他倆愣住了。過了一會(huì)兒,其中一個(gè)人回答說:\"怎么回事,難道船不夠用嗎?\"這篇文章的主題是什么",
          ??"4.接上題。考官為什么要問這兩個(gè)人游泳的事?",
          ??"5.男:看那個(gè)妹妹,好靚哦!女:看你個(gè)大頭鬼!問:這個(gè)女的是什么意思?",
          ??"6.男:今天天氣不錯(cuò)。女:可不是咋得!問:這個(gè)女的什么意思?",
          ??"7.男:我把撿來的錢包交給警察了。男:我KAO!",
          ??"8.女:您好,您撥叫的用戶沒有開機(jī),要留言請(qǐng)留言,不留言請(qǐng)掛機(jī)。問:這是發(fā)生在什么時(shí)候?",
          ??"9.ABCD四教授申請(qǐng)中科院院士,如果以下事實(shí)為真,誰最有資格入選",
          ??"10.以下是摘自電影《大話西游》中唐僧的一句臺(tái)詞,選項(xiàng)中可能正確的是人和妖精都是媽生的,不同的人是人他媽的,妖是妖他媽的,妖要有了仁慈之心,就不是妖了,而是人妖"
          ?};
          ?String[][] examAnswer=
          ?{//問題可選的答案
          ??{"(A)天文學(xué)家常常到天體營(yíng)去研究天文的奧秘","(B)地質(zhì)學(xué)家常常到地牢去研究地層結(jié)構(gòu)","(C)大氣科學(xué)家常常坐熱氣球到天空研究臺(tái)風(fēng)","(D)以上都不對(duì)"},
          ??{"(A)靜如處子 動(dòng)于脫兔","(B)靜中有動(dòng) 動(dòng)中有靜","(C)運(yùn)動(dòng)絕對(duì) 靜止相對(duì)","(D)靜者恒靜 動(dòng)者恒動(dòng)"},
          ??{"(A)參軍","(B)打魚","(C)游泳","(D)造船"},
          ??{"(A)他想讓他們教他游泳","(B)他想知道這兩個(gè)人會(huì)不會(huì)被淹死","(C)他擔(dān)心船不夠用","(D)他想舉行游泳比賽"},
          ??{"(A) 這個(gè)男的頭有病","(B)這個(gè)男的頭比較大","(C)這個(gè)男的看見的是鬼","(D)這個(gè)女的有點(diǎn)吃醋"},
          ??{"(A)今天天氣不好","(B)今天天氣很好","(C)這女的沒聽清","(D)這女的不知道"},
          ??{"(A)他很驚訝","(B)他丟了錢包","(C)他想揍第一個(gè)人","(D)他累了想找個(gè)地方靠靠"},
          ??{"(A)打電話","(B) 開飛機(jī)","(C) 發(fā)EMAIL","(D)坐飛機(jī)"},
          ??{"(A)是中國(guó)改革開放以后第一個(gè)公費(fèi)留德的四十歲以下的女性的在微電子領(lǐng)域的花了少于三年畢業(yè)的毅然回國(guó)的博士","(B)是在使用黑白膠卷照出彩照這一國(guó)際前沿領(lǐng)域做出突破貢獻(xiàn)的科學(xué)家","(C)畢業(yè)于我國(guó)著名的海南熱帶作物學(xué)院,學(xué)慣東西,差一點(diǎn)就復(fù)制出了恐龍。而且率先提出,中國(guó)人才沒有斷層,只是待遇和職稱斷層","(D)經(jīng)常陪李嵐清打敲三家和拱豬,對(duì)高校合并做出突出貢獻(xiàn)"},
          ??{"(A)人妖是指:媽媽還健在就去做了和尚的妖精","(B)人和妖精沒有本質(zhì)區(qū)別,因?yàn)樗麄兌际峭晃慌可?,"(C)唐僧為了超度一只妖精,不惜和妖精一起罵人","(D)唐僧暗示自己的母親原來就是一只妖精變的"}
          ?};
          ?
          ?String[] correctAnswer=
          ?{//正確的答案
          ??"D","C","A","B","D","B","A","A","B","C"
          ?};

          ?String message;
          ?
          ?public exam()
          ?{//重設(shè)測(cè)試
          ??reset();
          ?}

          ?public void reset()
          ?{//重設(shè)測(cè)試
          ??count=10;
          ??current=1;
          ??correct=0;
          ??examName="中文GRE考試樣題";
          ?}

          ?public void setCount(int c)
          ?{
          ??count=c;
          ?}

          ?public int getCount()
          ?{
          ??return count;
          ?}

          ?public void setCurrent(int c)
          ?{
          ??current=c;
          ?}

          ?public int getCurrent()
          ?{
          ??return current;
          ?}

          ?public void setCorrect(int c)
          ?{
          ??correct=c;
          ?}

          ?public int getCorrect()
          ?{
          ??return correct;
          ?}

          ?public void setExamName(String name)
          ?{
          ??examName=name;
          ?}

          ?public String getExamName()
          ?{
          ??return examName;
          ?}

          ?public void setCorrectAnswer(String[] answer)
          ?{
          ??correctAnswer=answer;
          ?}

          ?public void setCorrectAnswer(int i,String answer)
          ?{
          ??correctAnswer[i]=answer;
          ?}

          ?public String getCorrectAnswer(int i)
          ?{
          ??return correctAnswer[i];
          ?}

          ?public String[] getCorrectAnswer()
          ?{
          ??return correctAnswer;
          ?}

          ?public void setExamQuestion(String[] question)
          ?{
          ??examQuestion=question;
          ?}

          ?public void setExamQuestion(int i,String question)
          ?{
          ??examQuestion[i]=question;
          ?}

          ?public String[] getExamQuestion()
          ?{
          ??return examQuestion;
          ?}

          ?public String getExamQuestion(int i)
          ?{
          ??return examQuestion[i];
          ?}

          ?public void setExamAnswer(String[][] answer)
          ?{
          ??examAnswer=answer;
          ?}

          ?public void setExamAnswer(int i,String[] answer)
          ?{
          ??examAnswer[i]=answer;
          ?}

          ?public void setExamAnswer(int i ,int j,String answer)
          ?{
          ??examAnswer[i][j]=answer;
          ?}
          ?
          ?public String[][] getExamAnswer()
          ?{
          ??return examAnswer;
          ?}

          ?public String[] getExamAnswer(int i)
          ?{
          ??return examAnswer[i];
          ?}

          ?public String getExamAnswer(int i,int j)
          ?{
          ??return examAnswer[i][j];
          ?}
          }

          posted @ 2006-09-06 10:57 摩西 閱讀(295) | 評(píng)論 (0)編輯 收藏

           經(jīng)常看到j(luò)sp的初學(xué)者問tomcat下如何配置jsp、servlet和bean的問題,于是總結(jié)了一下如何tomcat下配置jsp、servlet和ben,希望對(duì)那些初學(xué)者有所幫助。

          一、開發(fā)環(huán)境配置

          第一步:下載j2sdk和tomcat:到sun官方站(http://java.sun.com/j2se/1.5.0/download.jsp)下載j2sdk,注意下載版本為Windows Offline Installation的SDK,同時(shí)最好下載J2SE 1.5.0 Documentation,然后到tomcat官方站點(diǎn)(http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi)下載tomcat(下載最新5.5.9版本的tomcat);

          第二步:安裝和配置你的j2sdk和tomcat:執(zhí)行j2sdk和tomcat的安裝程序,然后按默認(rèn)設(shè)置進(jìn)行安裝即可。

          1.安裝j2sdk以后,需要配置一下環(huán)境變量,在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的j2sdk安裝在c:\j2sdk1.5.0):

          JAVA_HOME=c:\j2sdk1.5.0
          classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因?yàn)樗懋?dāng)前路徑)
          path=%JAVA_HOME%\bin

          接著可以寫一個(gè)簡(jiǎn)單的java程序來測(cè)試J2SDK是否已安裝成功:

          public class Test{
          public static void main(String args[]){
          System.out.println("This is a test program.");
          }
          }

          將上面的這段程序保存為文件名為Test.java的文件。

          然后打開命令提示符窗口,cd到你的Test.java所在目錄,然后鍵入下面的命令

          javac Test.java
          java Test

          此時(shí)如果看到打印出來This is a test program.的話說明安裝成功了,如果沒有打印出這句話,你需要仔細(xì)檢查一下你的配置情況。

          2.安裝Tomcat后,在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的tomcat安裝在c:\tomcat):

          CATALINA_HOME=c:\tomcat
          CATALINA_BASE=c:\tomcat

          然后修改環(huán)境變量中的classpath,把tomat安裝目錄下的common\lib下的(可以根據(jù)實(shí)際追加)servlet.jar追加到classpath中去,修改后的classpath如下:

          classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;

          接著可以啟動(dòng)tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。

          第三步:建立自己的jsp app目錄

          1.到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples, tomcat-docs之類Tomcat自帶的的目錄;
          2.在webapps目錄下新建一個(gè)目錄,起名叫myapp;
          3.myapp下新建一個(gè)目錄WEB-INF,注意,目錄名稱是區(qū)分大小寫的;
          4.WEB-INF下新建一個(gè)文件web.xml,內(nèi)容如下:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <!DOCTYPE web-app
          PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          "
          http://java.sun.com/dtd/web-app_2_3.dtd ">
          <web-app>
          <display-name>My Web Application</display-name>
          <description>
          A application for test.
          </description>
          </web-app>

          5.在myapp下新建一個(gè)測(cè)試的jsp頁面,文件名為index.jsp,文件內(nèi)容如下:
          <html><body><center>
          Now time is: <%=new java.util.Date()%>
          </center></body></html>

          6.重啟Tomcat

          7.打開瀏覽器,輸入http://localhost:8080/myapp/index.jsp 看到當(dāng)前時(shí)間的話說明就成功了。

          第四步:建立自己的Servlet:

          1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)新建一個(gè)servlet程序,文件名為Test.java,文件內(nèi)容如下:

          package test;
          import java.io.IOException;
          import java.io.PrintWriter;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          public class Test extends HttpServlet {
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          PrintWriter out=response.getWriter();
          out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
          out.flush();
          }
          }

          2 .編譯
          將Test.java放在c:\test下,使用如下命令編譯:

          C:\Test>javac Test.java

          然后在c:\Test下會(huì)產(chǎn)生一個(gè)編譯后的servlet文件:Test.class

          3 .將結(jié)構(gòu)test\Test.class剪切到%CATALINA_HOME%\webapps\myapp\WEB-INF\classes下,也就是剪切那個(gè)test目錄到classes目錄下,如果classes目錄不存在,就新建一個(gè)。 現(xiàn)在webapps\myapp\WEB-INF\classes下有test\Test.class的文件目錄結(jié)構(gòu)

          4 .修改webapps\myapp\WEB-INF\web.xml,添加servlet和servlet-mapping

          編輯后的web.xml如下所示,紅色為添加的內(nèi)容:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <!DOCTYPE web-app
          PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          "<web-app>
          <display-name>My Web Application</display-name>
          <description>
          A application for test.
          </description>
          <servlet>
          <servlet-name>Test</servlet-name>
          <display-name>Test</display-name>
          <description>A test Servlet</description>
          <servlet-class>test.Test</servlet-class>
          </servlet>

          <servlet-mapping>
          <servlet-name>Test</servlet-name>
          <url-pattern>/Test</url-pattern>
          </servlet-mapping>

          </web-app>

          這段話中的servlet這一段聲明了你要調(diào)用的Servlet,而servlet-mapping則是將聲明的servlet"映射"到地址/Test上

          5 .好了,重啟動(dòng)Tomcat,啟動(dòng)瀏覽器,輸入http://localhost:8080/myapp/Test 如果看到輸出This is a servlet test.就說明編寫的servlet成功了。

          注意:修改了web.xml以及新加了class,都要重啟Tomcat

          第四步:建立自己的Bean:

          1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)新建一個(gè)java程序,文件名為TestBean.java,文件內(nèi)容如下:

          package test;
          public class TestBean{
          private String name = null;
          public TestBean(String strName_p){
          this.name=strName_p;
          }
          public void setName(String strName_p){
          this.name=strName_p;
          }
          public String getName(){
          return this.name;
          }
          }

          2 .編譯

          將TestBean.java放在c:\test下,使用如下命令編譯:

          C:\Test>javac TestBean.java

          然后在c:\Test下會(huì)產(chǎn)生一個(gè)編譯后的bean文件:TestBean.class

          3 .將TestBean.class文件剪切到 %CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test下,

          4 .新建一個(gè)TestBean.jsp文件,文件內(nèi)容為:

          <%@ page import="test.TestBean" %>
          <html><body><center>
          <%
          TestBean testBean=new TestBean("This is a test java bean.");
          %>
          Java bean name is: <%=testBean.getName()%>
          </center></body></html>

          5 .好了,重啟Tomcat,啟動(dòng)瀏覽器,輸入http://localhost:8080/myapp/TestBean.jsp 如果看到輸出Java bean name is: This is a test java bean.就說明編寫的Bean成功了。

          這樣就完成了整個(gè)Tomcat下的jsp、servlet和javabean的配置。接下來需要做的事情就是多看書、多讀別人的好代碼,自己多動(dòng)手寫代碼以增強(qiáng)自己在這方面開發(fā)的能力了。

          jvm應(yīng)填寫到
          c:\j2sdk\bin

          給你一個(gè)簡(jiǎn)單的配置::::

          JSP環(huán)境配置心得

          首先要說的是,使用jdk+tomcat完全可以配置我們的jsp服務(wù)器,不再需要其實(shí)任何東東,有很多文章介紹了Apache,其實(shí)根本用不著,一般的學(xué)習(xí)調(diào)試tomcat完全可以勝任了。

          安裝jdk后,tomcat在安裝之前會(huì)自動(dòng)找到j(luò)dk的安裝路徑,一路點(diǎn)擊"下一步",經(jīng)過一段時(shí)間的文件復(fù)制,最后"close",完成comcat的安裝。

          您最好去下載一個(gè)版本較高的tomcat,比如4.1以上的,因?yàn)樗恍枰O(shè)置太多的系統(tǒng)變量,右擊"我的電腦",選擇"屬性"->"高級(jí)"->"環(huán)境變量"->"系統(tǒng)變量",新建一個(gè)TOMCAT_HOME,值設(shè)置成你的tomcat所在的路徑,比如:D:\Program Files\Apache Group\Tomcat 5.5,配置完成。

          從開始菜單中找到tomcat選項(xiàng),一般打開順序是:開始->程序->Apache Tomcat 5.5,選擇"Start Tomcat",讓jsp服務(wù)器開始運(yùn)行,此時(shí)會(huì)打開一個(gè)類似Dos的窗口,會(huì)顯示一些相關(guān)的信息。

          如果您使用代理上網(wǎng),一定要先撤掉代理,不然您的jsp程序永遠(yuǎn)也得不到執(zhí)行。如果不是代理的,這一步就跳過了。

          打開瀏覽器,在地址欄中輸入:http://localhost:8080,如果看到有老虎(我也不知道是老虎還是貓)的畫面,恭喜您,您成功了一半。

          先來享受一下成功的喜悅吧,請(qǐng)輸入下面的代碼:

          <html>
          <head>
          <title>First Page</title>
          </head>
          <body>
          <H3>Today is: h
          <%= new java.util.Date() %>
          </H3>
          </body>
          </html>

          將該程序保存為:First.jsp,放到Tomcat的ROOT目錄下,然后在瀏覽器的地址欄中輸入:http://localhost:8080/First.jsp,(First.jsp跟我們保存的文件名的大小寫要一致)回車,如果不出意外,應(yīng)該可以看到形如Today is: h Fri Apr 11 08:32:38 CST 2003 的結(jié)果。

          注意:ROOT是tomcat的默認(rèn)虛擬目錄,如果要改成自己的虛擬目錄怎么辦呢?請(qǐng)繼續(xù)往下看吧。

          要改成自己的虛擬目錄,就要請(qǐng)出server.xml來了,該文件是一個(gè)配置文件,在Tomcat\conf目錄下,使用任何文本編輯軟件都能打開它,我們先找到下面一句:

          <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
          port="8080" minProcessors="5" maxProcessors="75"
          enableLookups="true" redirectPort="8443"
          acceptCount="100" debug="0" connectionTimeout="20000"
          useURIValidationHack="false" disableUploadTimeout="true" />

          這里的port="8080"就是端口,我們完全可以用別的端口來代替,但不能是被系統(tǒng)占用的端口(0--1023),這里簡(jiǎn)單提一下。

          下面我們?cè)偻抡遥瑫?huì)發(fā)現(xiàn)以下的語句:

          </Context>
          </Host>

          我們就應(yīng)該找到這兩個(gè)語句,如果不懂E文,您就認(rèn)定這兩個(gè)語句好了。然后我們將該語句更改如下:

          </Context>
          <Context path="/myjsp" debug="0" docBase="e:/myjsp" reloadable="true">
          </Context>
          </Host>

          這里的path="/myjsp"就是我們就配置的虛擬目錄了,以后在地址欄中輸入http://localhost:8080/myjsp即可。而docBase="e:/myjsp" 則是機(jī)器本地路徑,他們通過這個(gè)語句形成一個(gè)映射關(guān)系,其它照抄。

          將上面的First.jsp文件放到e:/myjsp目錄下,輸入http://localhost:8080/myjsp/First.jsp,是不是有一種喜上眉梢的感覺?

          在論壇里我見得最多的就是很多人不知道javaBean文件放到哪里,老實(shí)說開始我也不知道,更令人不解的是,十個(gè)人有九種不同的說法,這更讓我們茫然。其實(shí)這問題也不是我們想像的那么復(fù)雜,我們以一個(gè)例子說明:

          先建立一個(gè)java程序,代碼如下:

          package hall;
          public class SimpleBean {
          private String message = "No message specified";
          public String getMessage() {
          return(message);
          }
          public void setMessage(String message) {
          this.message = message;
          }
          }

          保存為SimpleBean.java,編譯后會(huì)生成一個(gè)包,其實(shí)就相當(dāng)于一個(gè)目錄,也就是SimpleBean.class會(huì)存放在hall目錄中,暫且保存起來,將來備用。

          再輸入以下代碼:

          <HTML>
          <HEAD>
          <TITLE>Reusing JavaBeans in JSP</TITLE>
          </HEAD>
          <BODY>
          <CENTER>
          <TABLE BORDER=5>
          <TR><TH CLASS="TITLE">
          Reusing JavaBeans in JSP</TABLE>
          </CENTER>
          <P>
          <jsp:useBean id="test" class="hall.SimpleBean" />
          <jsp:setProperty name="test" property="message" value="Hello WWW" />
          <H1>Message: <I>
          <jsp:getProperty name="test" property="message" />
          </I></H1>
          </BODY>

          保存在我們剛才建立的虛擬目錄e:/myjsp下面,并命名為:BeanTest.jsp。

          現(xiàn)在我們應(yīng)該將hall(包)目錄放在哪兒呢?別急,我們先在e:/myjsp下建立一個(gè)文件夾WEB-INF,然后再在WEB-INF下建立一個(gè)classes文件夾,最后將hall目錄放到classes下,當(dāng)然,hall下的字節(jié)碼文件SimpleBean.class也一并要移過來,而SimpleBean.java就和BeanTest.jsp放到同一目錄吧(可以不需要放的,自己試試)。

          重新啟動(dòng)機(jī)器(如果您試了好多次都不行,這一步一定要做),在瀏覽器中輸入:http://localhost:8080/myjsp/BeanTest.jsp,您看到了什么?呵,別告訴我您什么都沒看到,那肯定是您設(shè)置的問題了。

          posted @ 2006-09-05 16:41 摩西 閱讀(179) | 評(píng)論 (0)編輯 收藏
          ?

          1、JAVA的安裝:

          正常安裝JDK,完成后添加系統(tǒng)變量JAVA_HOME,其值為JDK的根目錄,如C:\J2SDK1.4.2(TOMCAT安裝時(shí)使用此變量捕獲JDK)

          2、TOMCAT的安裝:

          A:運(yùn)行jakarta-tomcat-5.0.12.exe文件,自動(dòng)捕獲JDK

          B:解壓縮jakarta-tomcat-5.0.12.zip,解壓的過程既是安裝的過程,

          安裝完成后設(shè)置系統(tǒng)變量:CATALINA_HOME,它是TOMCAT的安裝目錄,如果沒有進(jìn)行設(shè)置,則在TOMCAT第一次啟動(dòng)時(shí)自動(dòng)設(shè)置

          3、TOMCAT的測(cè)試:

          A啟動(dòng):如果安裝時(shí)是.EXE文件,則會(huì)在開始菜單中出現(xiàn)TOMCAT的菜單,如果解壓縮安裝則在安裝目錄的BIN目錄下有STARTUP.BAT

          B關(guān)閉:如果安裝時(shí)是.EXE文件,則會(huì)在開始菜單中出現(xiàn)TOMCAT的菜單,如果解壓縮安裝則在安裝目錄的BIN目錄下有SHUTDOWN.BAT

          C測(cè)試:TOMCAT服務(wù)器啟動(dòng)后,瀏覽器中輸入HTTP://LOCALHOST:8080
          若要改變?cè)L問端口號(hào),則在CONF目錄下將SERVER.XML中CONNECTOR元素的PORT屬性值改變即可。

          4、TOMCAT目錄結(jié)構(gòu)

          bin 存放啟動(dòng)和關(guān)閉tomcat腳本

          conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml

          SERVER? 包含3個(gè)子目錄classes,lib,webapps
          server/classes? 各種類文件,默認(rèn)為空
          server/lib?? 存放tomcat服務(wù)器所需的各種JAR文件
          server/webapps? 存放tomcat自帶的兩個(gè)web應(yīng)用案例:admin? manager

          common? tomcat服務(wù)器以及所有web應(yīng)用都可以訪問的JAR文件

          shared? 所有web應(yīng)用都可以訪問的JAR文件

          work 存放jsp編譯后產(chǎn)生的class文件

          logs 存放日志文件

          webapp 存放應(yīng)用程序示例,以后你要部署的應(yīng)用程序也要放到此目錄 (重要)

          5、WEB應(yīng)用程序的目錄結(jié)構(gòu)

          在WEB上發(fā)布的J2EE應(yīng)用程序都有自己特定的目錄結(jié)構(gòu)

          假設(shè)創(chuàng)建一名為HELLOAPP的WEB項(xiàng)目

          HELLOAPP:WEB應(yīng)用根目錄,所有JSP\HTML等文件均存放于此
          HELLOAPP/WEB-INF? 存放WEb應(yīng)用的發(fā)布描述文件web.xml
          HELLOAPP/WEB-INF/classes 存放各種class文件,servlet類文件也存放于此
          HELLOAPP/WEB-INF/lib? 存放WEb應(yīng)用所需的各種JAR文件

          6、web.xml文件配置
          參見conf目錄下web.xml

          7、server.xml文件配置(重要的配置)

          server port 指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽關(guān)閉tomcat的請(qǐng)求

          shutdown 指定向端口發(fā)送的命令字符串

          service name 指定service的名字

          Connector

          (表示客戶端和service之間的連接) port 指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)斷口監(jiān)聽來自客戶端的請(qǐng)求

          minProcessors 服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù)

          maxProcessors 最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù)

          enableLookups 如果為true,則可以通過調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址

          redirectPort 指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào)

          acceptCount 指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過這個(gè)數(shù)的請(qǐng)求將不予處理

          connectionTimeout 指定超時(shí)的時(shí)間數(shù)(以毫秒為單位)

          Engine

          (表示指定service中的請(qǐng)求處理機(jī),接收和處理來自Connector的請(qǐng)求) defaultHost 指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的name屬性值是一樣的

          Context

          (表示一個(gè)web應(yīng)用程序,通常為WAR文件,關(guān)于WAR的具體信息見servlet規(guī)范) docBase 應(yīng)用程序的路徑或者是WAR文件存放的路徑

          path 表示此web應(yīng)用程序的url的前綴,這樣請(qǐng)求的url為http://localhost:8080/path/****

          reloadable 這個(gè)屬性非常重要,如果為true,則tomcat會(huì)自動(dòng)檢測(cè)應(yīng)用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動(dòng)裝載新的應(yīng)用程序,我們可以在不重起tomcat的情況下改變應(yīng)用程序

          host

          (表示一個(gè)虛擬主機(jī))

          name 指定主機(jī)名

          appBase 應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄

          unpackWARs 如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓,否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序

          Logger

          (表示日志,調(diào)試和錯(cuò)誤信息)

          className 指定logger使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Logger 接口

          prefix 指定log文件的前綴

          suffix 指定log文件的后綴

          timestamp 如果為true,則log文件名中要加入時(shí)間,如下例:localhost_log.2001-10-04.txt

          Realm

          (表示存放用戶名,密碼及role的數(shù)據(jù)庫(kù))

          className 指定Realm使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Realm接口

          Valve

          (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣)

          className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應(yīng)用程序的訪問信息

          directory 指定log文件存放的位置

          pattern 有兩個(gè)值,common方式記錄遠(yuǎn)程主機(jī)名或ip地址,用戶名,日期,第一行請(qǐng)求的字符串,HTTP響應(yīng)代碼,發(fā)送的字節(jié)數(shù)。combined方式比common方式記錄的值更多

          ?

          在以上的設(shè)置項(xiàng)目中Context是最重要也是使用最頻繁的元素,他代表了運(yùn)行在主機(jī)上的每個(gè)web應(yīng)用。一個(gè)主機(jī)上可以用 多個(gè)web應(yīng)用,每個(gè)web應(yīng)用對(duì)應(yīng)一個(gè)唯一的地址,而地址在Context元素的path屬性中設(shè)置

          path:訪問web程序的url入口
          docbase:制定web程序的路徑,如果web應(yīng)用是開放目錄結(jié)構(gòu),則為根目錄,若為war文件則為war文件的路徑

          例如:
          <Context path="/helloapp" docbase="helloapp" reloadable="true"/>

          當(dāng)設(shè)置jsp文件時(shí),只需把文件放到web應(yīng)用根目錄下即可訪問,而設(shè)置servlet還要在web.xml中設(shè)置



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=813657

          posted @ 2006-09-05 12:06 摩西 閱讀(493) | 評(píng)論 (0)編輯 收藏
               摘要: 一、Tomcat背景   自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎(chǔ)上開發(fā)一個(gè)可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時(shí)也支持Servlet, 這樣Tomcat就誕生了。 Tomcat是ja...  閱讀全文
          posted @ 2006-09-05 12:04 摩西 閱讀(202) | 評(píng)論 (0)編輯 收藏

          1.one page:? action_demo.html

          <html>
          <head></head>
          <body>
          <form? name="input" action="html_form_action.html" method="get">
          Usename:
          <input type="text" name="user" value="admin"><input type="submit" value="Submit">
          </form>
          </body>
          </html>

          2.two page:? html_from_action.html

          <html>
          <head></head>
          <script language="javascript">
          function getparastr(strname)
          ? {
          ?? var hrefstr,pos,parastr,para,tempstr;
          ?? hrefstr = window.location.href;
          ?? pos = hrefstr.indexOf("?")
          ?? parastr = hrefstr.substring(pos+1);
          ?? para = parastr.split("&");
          ?? tempstr="";
          ?? for(i=0;i<para.length;i++)
          ?? {
          ??? tempstr = para[i];
          ??? pos = tempstr.indexOf("=");
          ??? if(tempstr.substring(0,pos) == strname)
          ??? {
          ???? return tempstr.substring(pos+1);
          ???? }
          ?? }
          ?? return null;
          ? }
          // 獲取program參數(shù)
          //var userstr = getparastr("user");
          //document.write(userstr);

          //用得到的值給form中的文本框賦值?
          function getname()
          {
          var userstr = getparastr("user");
          document.fr1.input.value=userstr;
          }

          </script>
          <body>
          <form name="fr1" >
          你的名字是:
          <input type="text" name="input" >
          <input type="button" name="bt1" value="查看用戶名" onclick="getname()">
          </form>
          </body>
          </html>

          posted @ 2006-09-05 10:18 摩西 閱讀(5033) | 評(píng)論 (1)編輯 收藏
          XML相關(guān)資源?


          一.?XML的大本營(yíng)?

          XML是由W3C(World?Wide?Web?Consortium)國(guó)際組織負(fù)責(zé)開發(fā)和制定標(biāo)準(zhǔn)的。關(guān)于XML最權(quán)威,最新的消息都來自W3C。網(wǎng)址是:http://w3c.org/XML/ ?


          另外一個(gè)名為OASIS的前著名的SGML研究組織也在一起推動(dòng)XML的發(fā)展,網(wǎng)址是:http://www.oasis-open.org/ ?


          二.?XML指南?

          http://www.w3.org/TR/REC-xml ?

          W3C關(guān)于XML規(guī)范的詳細(xì),完整的說明。不用多說,絕對(duì)權(quán)威。?


          http://www.xml.com/axml/testaxml.htm ?

          這是Tim?Bary寫的XML規(guī)范說明書,非常的詳細(xì)和嚴(yán)密,是學(xué)習(xí)XML規(guī)范的好幫手。?


          三.?XML常見問題?


          Peter?Flynn的?XML?FAQ?

          http://www.ucc.ie/xml/ ?

          包含大量詳細(xì)的資料,經(jīng)常更新,由W3C協(xié)會(huì)XML組維護(hù)。?


          Lisa?Rein’s?finetuning?XML?FAQs?

          http://www.finetuning.com/faq.html ?

          這個(gè)FAQ列表有側(cè)重點(diǎn),主要包含XSLT?FAQ,XPath?FAQ和IE5中的XSL?FAQ。?


          Dave?Pawson’s?XSL?FAQ?

          http://www.dpawson.co.uk/xsl/idx.html ?

          提供最好的關(guān)于XSL方面的FAQ,創(chuàng)建于1999年。?


          jGuru’s?Extensible?Markup?Language?(XML)?FAQ?

          http://www.jguru.com/jguru/faq/faqpage.jsp?name=XML ?

          這個(gè)FAQ列表是一個(gè)典型的"老百曉",任何問題,從普通的到非常細(xì)節(jié)的XML問題都可以在這里找到。?


          Ronald?Bourret’s?XML?Namespaces?FAQ?

          http://www.informatik.tu-darmstadt.de/DVS1/staff/bourret/xml/ ?
          NamespacesFAQ.htm?

          創(chuàng)建于2000初,是關(guān)于namespaces概要的FAQ。?

          四.?XML主題網(wǎng)站?


          http://www.xml.com/ ?

          一個(gè)以XML為主題的內(nèi)容豐富的網(wǎng)站?


          http://www.xml-zone.com/ ?

          另一個(gè)比較知名的XML網(wǎng)站,提供XML的新聞和資訊。?


          http://www.xmlinfo.com/ ?

          網(wǎng)站創(chuàng)建者James?Tauber’s是W3C組織XML發(fā)展組的成員之一,他的網(wǎng)站提供了大量的連接和例子。?


          http://www.simonstl.com/ ?

          網(wǎng)站創(chuàng)建者Simon?St.?Laurent也是XML發(fā)展組的成員。他是W3C中XML初級(jí)入門教程的作者,他的站點(diǎn)主要提供有關(guān)XML的發(fā)展信息。?


          http://msdn.microsoft.com/xml/c-frame.htm#/xml/default.asp ?

          微軟的MSDN關(guān)于XML的主題網(wǎng)站。微軟在推進(jìn)XML應(yīng)用方面不遺余力。?


          http://www.xmlsoftware.com/ ?

          是XML?info的姐妹網(wǎng)站,內(nèi)容包括XML/DTD/XSL編輯軟件,XML?API軟件等。?


          http://xmlhack.com/ ?

          1999年9月建立的大型XML新聞網(wǎng)站,同時(shí)提供XML人才信息。?


          http://xml.apache.org/ ?

          Apache軟件基金會(huì)(ASF),提供了大量open?source的XML和XSL的工具軟件。?


          http://www.biztalk.org/ ?

          BizTalk是微軟發(fā)起的以XML商業(yè)應(yīng)用為目標(biāo)的組織。BizTalk不是一個(gè)標(biāo)準(zhǔn)組織。?


          五.?XML的編輯軟件?


          目前XML文檔的編輯軟件依然很少。雖然我們可以手工編寫,但是如果有一個(gè)好的軟件(類似用DW/FP編寫HTML),可以減少差錯(cuò)和提高效率。下面是現(xiàn)有的一些編輯軟件。?


          http://www.macromedia.com/software/dreamweaver/ ?

          Macromedia最新的Dreamweaver?4.0已經(jīng)支持XML文檔的編寫。推薦使用。?


          http://www.microsoft.com/xml/notepad/intro.asp ?

          微軟在這方面向來不會(huì)落后,它推出的XML?Notepad是一個(gè)非常小巧靈活的XML文檔編輯器。推薦使用。?


          http://www.adobe.com/prodindex/framemaker/prodinfosgml.html ?

          Adobe公司的Framemaker?plus是目前較好的XML編輯軟件。?


          http://www.arbortext.com/ ?

          Arbortext公司是重點(diǎn)開發(fā)XML游戲的公司。?


          http://www.inso.com/ ?

          Inso,好象是用來處理大型SGML或者XML文檔的軟件。?


          http://www.softquad.com/ ?

          Softquad?是HTML和SGML軟件的開發(fā)商,對(duì)XML自然不會(huì)放過。?

          六.?支持XML的瀏覽器?


          http://www.microsoft.com/windows/ie/ ?

          IE?5.X是目前流行瀏覽器唯一支持XML的,它可以在微軟的網(wǎng)站免費(fèi)下載到。?


          http://developer.netscape.com/software/communicator/ngl/ ?
          index.html?cp=dev09fg01?

          Gecko是另一種支持XML的瀏覽器,但目前只是測(cè)試版。?


          七.?XML?parser?


          Parser是一個(gè)檢查XML文檔語法是否符合DTD定義,并進(jìn)行解析的軟件。?


          在線的parser?


          http://validator.w3.org/ ?

          W3C組織提供的一個(gè)在線paeser。可以根據(jù)你在線提交的XML文檔URL,進(jìn)行驗(yàn)證和解吸。?


          http://www.stg.brown.edu/service/xmlvalid/ ?

          一個(gè)Brown大學(xué)科技小組提供的parser,非常方便和容易理解。。?


          可下載的Parser?

          有很多可以下載到本機(jī)上運(yùn)行的parser,下面列出一些主要的:?


          http://www.jclark.com/xml/expat.html ?

          James?Clark是在SGML/XML領(lǐng)域的元老,他寫的parser被廣泛的運(yùn)用。?


          http://www.alphaworks.ibm.com/tech/xml ?

          一個(gè)以Java語言編寫的Parser,來自IBM。?


          http://www.microsoft.com/xml/parser/cparser.asp ?

          微軟的XML?Parser,用C++寫成。?


          http://www.stud.ifi.uio.no/~larsga/download/python/xml/xmlproc.html ?

          用Python寫的parser。?


          http://www.jeremie.com/Dev/XML/ ?

          用javascript寫的parser,只用來檢查語法,不進(jìn)行解吸析。?


          http://w3c.org/RDF/Implementations/SiRPAC/ ?

          來自W3C組織的SiRPAC,全稱是Simple?RDF?Parser?and?Compiler。?


          八.?Schema編輯軟件?


          Schema我們前面介紹過,DTD就是一種Schema,我們可以手工寫DTD,但現(xiàn)在已經(jīng)有一些Schema編輯軟件來幫助我們更方便的建立DTD。?


          http://www.extensibility.com/ ?

          Extensibility這個(gè)軟件被稱為XML權(quán)威。可以以圖形化方式建立和編輯schema,包括DTD文件。?


          九.?國(guó)內(nèi)XML資源?

          http://www.xml.net.cn/ ?

          XML中國(guó)論壇是一個(gè)非贏利的學(xué)術(shù)網(wǎng)站。由北京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)研究所創(chuàng)辦,北大方正集團(tuán)公司提供贊助。?


          http://www.xml.org.cn:8188 ?

          中國(guó)XML聯(lián)盟將建立為國(guó)內(nèi)第一個(gè)開放性網(wǎng)絡(luò)標(biāo)準(zhǔn)組織,提供XML技術(shù)認(rèn)證、咨詢和交流。由上海易方公司贊助。?


          http://www.xml.com.cn/ ?

          chinaasp.com的子站,提供XML文章和技術(shù)交流等。?


          http://www.egroups.com/group/china_xml_list/info.html ?

          中國(guó)XML郵件組包括中文XML資源,?XML的最新資料,同行的交流空間。由非盈利性組織中國(guó)XML聯(lián)盟負(fù)責(zé)維護(hù)。?


          http://weblab.crema.unimi.it/xmlzh/XML_FAQ.htm ?

          一個(gè)XML?FAQ郵件列表的中文翻譯,可惜是1998年10月的?
          posted @ 2006-09-03 17:33 摩西 閱讀(249) | 評(píng)論 (0)編輯 收藏
          1.傳遞表單參數(shù):
          String name = new String(request.getParameter("name"));

          2.數(shù)據(jù)庫(kù)連接:
          ~~MYSQL
          //設(shè)置數(shù)據(jù)庫(kù)的URL
          String url = "jdbc:mysql://localhost:3306/jspsky";
          try
          //加載驅(qū)動(dòng)程序
          Class.forname("org.gjt.mm.mysql.Driver").newInstance();
          //建立連接
          java.sql.Connection connection = java.sql.DriverManager.getConnection(url);
          java.sql.Statement statement = connection.createStatement();
          //SQL語句
          String sqlStringi ="insert into commu(name,tel,mobile,oicq,email)values(‘"+name+"',‘"+tel+"',‘"+mobile+"',‘"+oicq+"',‘"+email+"')";
          //運(yùn)行SQL語句,并建立結(jié)果集
          java.sql.ResultSet rsi = statement.executeQuery(sqlStringi);
          //在屏幕上輸出庫(kù)中的內(nèi)容
          while(rss.next())
          {
          String a_name = rss.getString(1);
          out.println(a_name);
          {}
          //關(guān)閉連接
          connection.close();
          }

          //捕捉異常
          catch(java.sql.SQLException e)

          out.println(e.getMessage());
          {}
          catch(ClassNotFoundException e)

          out.println(e.getMessage());
          {}


          ~~DB2
          //定義數(shù)據(jù)庫(kù)的URL
          String url = "jdbc:db2:portal";
          try

          //加載驅(qū)動(dòng)程序
          Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
          //建立連接,
          java.sql.Connection connection = java.sql.DriverManager.getConnection(url,"user","password");
          java.sql.Statement statement = connection.createStatement();
          //SQL語句
          String sqlString = "select * from client";
          //執(zhí)行SQL語句
          java.sql.ResultSet rs = statement.executeQuery(sqlString);
          //在屏幕上顯示所連表中的內(nèi)容
          while(rs.next())
          {
          String name = rs.getString(1);
          out.println(name);
          {}
          //關(guān)閉連接
          connection.close();
          }
          //捕捉異常
          catch(java.sql.SQLException e)

          out.println(e.getMessage());
          {}
          catch(ClassNotFoundException e)

          out.println(e.getMessage());
          {}


          3.文件操作

          ~~將一個(gè)字符串寫到一個(gè)指定的文件中,如果該文件不存在,則新建一個(gè)文件,并完成寫入;如果存在,則用此字符串覆蓋原文件的所有內(nèi)容
          import java.io.*;
          String str = "print me 雪峰!";
          //定義好打印的目標(biāo)文件名

          //取得當(dāng)前主機(jī)存放WEB頁面的絕對(duì)路徑
          String hostdir = System.getProperty("user.dir");
          //取得當(dāng)前主機(jī)所采用的路徑分隔符
          String fileBar = System.getProperty("file.separator");
          //書寫完整的目標(biāo)文件存放路徑
          String nameOfFile=hostdir+fileBar+"test.html";

          try
          //實(shí)例化一個(gè)文件輸出流對(duì)象
          FileOutputStream afile = new FileOutputStream(nameOfFile);
          //將文件輸出流,創(chuàng)建一個(gè)打印輸出流對(duì)象
          PrintWriter pw = new PrintWriter(afile);
          pw.println(str);
          //clean up
          pw.close();
          {}
          catch(IOException e)
          out.println(e.getMessage());
          {}

          ~~列出指定目錄下的文件列表
          import java.io.*;
          String cdur = System.getProperty("user.dir");
          String fileBar = System.getProperty("file.separator");
          String mydir =cdur+fileBar+"doc"+fileBar+"jspsky";
          File my = new File(mydir);
          String d[] = my.list();
          int i;
          int l=d.length;
          for(i=0;i out.print(d);
          {}


          4.計(jì)數(shù)器
          Integer count = null;
          synchronized (application)
          count =(Integer) application.getAttribute("d");
          if (count ==null)
          count =new Integer("0");
          count = new Integer(count.intValue()+1);
          application.setAttribute("d",count);
          {}
          out.println(count);
          // 首先定義一個(gè)整形對(duì)象,并初始化為:NULL,
          // 取回APPLICATION對(duì)像的屬性D的值,并強(qiáng)制轉(zhuǎn)化為整形對(duì)象,賦給COUNT
          // 判斷COUNT是否為空,為空時(shí),將O賦給COUNT對(duì)象,
          // 否則,通過COUNT。INTVALUE()方法,實(shí)現(xiàn)COUNT對(duì)象加1,并賦值給COUNT
          // 最后,將COUNT對(duì)象保存在APPLICATION對(duì)象的D變量中。
          posted @ 2006-09-01 10:16 摩西 閱讀(181) | 評(píng)論 (0)編輯 收藏

          來自: Matrix ?: http://www.matrix.org.cn/resource/article/43/43811.html
          你需要精通面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應(yīng)該十分了解UML,尤其是class,object,interaction以及state diagrams.

          你需要學(xué)習(xí)JAVA語言的基礎(chǔ)知識(shí)以及它的核心類庫(kù)(collections,serialization,streams,networking,multithreading,reflection,event,handling,NIO,localization,以及其他)。

          你應(yīng)該了解JVM,class loaders,class reflect,以及垃圾回收的基本工作機(jī)制等。你應(yīng)該有能力反編譯一個(gè)類文件并且明白一些基本的匯編指令。

          如果你將要寫客戶端程序,你需要學(xué)習(xí)WEB的小應(yīng)用程序(applet),必需掌握GUI設(shè)計(jì)的思想和方法,以及桌面程序的SWING,AWT,SWT。你還應(yīng)該對(duì)UI部件的JAVABEAN組件模式有所了解。JAVABEANS也被應(yīng)用在JSP中以把業(yè)務(wù)邏輯從表現(xiàn)層中分離出來。

          你需要學(xué)習(xí)java數(shù)據(jù)庫(kù)技術(shù),如JDBC API并且會(huì)使用至少一種persistence/ORM構(gòu)架,例如Hibernate, JDO, CocoBase, TopLink,Inside Liberator(國(guó)產(chǎn)JDO 紅工廠軟件)或者iBatis。你還應(yīng)該了解對(duì)象關(guān)系的阻抗失配的含義,以及它是如何影響業(yè)務(wù)對(duì)象的與關(guān)系型數(shù)據(jù)庫(kù)的交互,和它的運(yùn)行結(jié)果,還需要掌握不同的數(shù)據(jù)庫(kù)產(chǎn)品運(yùn)用,比如: oracle,mysql,ms sql server.

          你需要學(xué)習(xí)JAVA的沙盒安全模式(class loaders, byte code verification, managers, policy and permissions, code signing, digital signatures, cryptography, certification, Kerberos,以及其他)還有不同的安全/認(rèn)證API,例如JAAS( Java Authentication and Authorization Service), JCE (Java Cryptography Extension), JSSE (Java Secure Socket Extension), 以及 JGSS (Java General Security Service).

          你需要學(xué)習(xí)Servlets, JSP, 以及JSTL(Standard Tag Libraries)和可以選擇的第三方Tag Libraries。

          你需要熟悉主流的網(wǎng)頁框架,例如JSF, Struts, Tapestry, Cocoon, WebWork, 以及他們下面的涉及模式,如MVC/MODEL2.

          你需要學(xué)習(xí)如何使用及管理WEB服務(wù)器,例如tomcat,resin,Jrun,并且知道如何在其基礎(chǔ)上擴(kuò)展和維護(hù)WEB程序。

          你需要學(xué)習(xí)分布式對(duì)象以及遠(yuǎn)程API,例如RMI和RMI/IIOP。

          你需要掌握各種流行中間件技術(shù)標(biāo)準(zhǔn)和與java結(jié)合實(shí)現(xiàn),比如Tuxedo、CROBA,當(dāng)然也包括java EE 本身.

          你需要學(xué)習(xí)最少一種的XML API,例如JAXP (Java API for XML Processing), JDOM (Java for XML Document Object Model), DOM4J, 或 JAXR (Java API for XML Registries).

          你應(yīng)該學(xué)習(xí)如何利用JAVA API和工具來構(gòu)建Web Service。例如JAX-RPC (Java API for XML/RPC), SAAJ (SOAP with Attachments API for Java), JAXB (Java Architecture for XML Binding), JAXM (Java API for XML Messaging), JAXR (Java API for XML Registries), 或者 JWSDP (Java Web Services Developer Pack)。

          你需要學(xué)習(xí)一門輕量級(jí)應(yīng)用程序框架,例如Spring, PicoContainer, Avalon, 以及它們的IoC/DI 風(fēng)格(setter, constructor, interface injection)。

          你需要熟悉不同的J2EE技術(shù),例如JNDI (Java Naming and Directory Interface), JMS (Java Message Service), JTA/JTS (Java Transaction API/Java Transaction Service), JMX (Java Management eXtensions), 以及 JavaMail.

          你需要學(xué)習(xí)企業(yè)級(jí)Java Beans(EJB)以及它們的不同組件模式:Stateless/Stateful Session Beans, Entity Beans (包含Bean-Managed Persistence [BMP] 或者 Container-Managed Persistence [CMP] 和它的 EJB-QL), 或者M(jìn)essage-Driven Beans (MDB).

          你需要學(xué)習(xí)如何管理與配置一個(gè)J2EE應(yīng)用程序服務(wù)器,如WebLogic ,JBoss等,并且利用它的附加服務(wù),例如簇類,連接池以及分布式處理支援。你還需要了解如何在它上面封裝和配置應(yīng)用程序并且能夠監(jiān)控、調(diào)整它的性能。

          你需要熟悉面向方面的程序設(shè)計(jì)以及面向?qū)傩缘某绦蛟O(shè)計(jì)(這兩個(gè)都被很容易混淆的縮寫為AOP),以及他們的主流JAVA規(guī)格和執(zhí)行。例如AspectJ 和AspectWerkz。

          你需要熟悉對(duì)不同有用的API和framework等來為你服務(wù)。例如Log4J (logging/tracing), Quartz (scheduling), JGroups (network group communication), JCache (distributed caching), Lucene (full-text search), Jakarta Commons等等。


          如果你將要對(duì)接或者正和舊的系統(tǒng)或者本地平臺(tái),你需要學(xué)習(xí)JNI (Java Native Interface) and JCA (Java Connector Architecture).

          你需要熟悉JINI技術(shù)以及與它相關(guān)的分布式系統(tǒng),比如掌握CROBA。

          你需要Java Community Process(JCP)以及他的不同Java Specification Requests (JSRs), 例如 Portlets (168), JOLAP (69), Data Mining API (73), 等等。

          你應(yīng)該熟練掌握一種JAVA IDE例如sunOne ,netBeans ,IntelliJ IDEA或者Eclipse。(有些人更喜歡VI或EMACS來編寫文件。隨便你用什么了:))

          JAVA(精確的說是有些配置)是冗長(zhǎng)的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。

          你需要熟悉一種單元測(cè)試體系(JNunit),并且學(xué)習(xí)不同的生成、部署工具(Ant, Maven)。

          你需要熟悉一些在JAVA開發(fā)中經(jīng)常用到的軟件工程過程。例如RUP (Rational Unified Process) and Agile methodologies.

          你需要能夠深入了解加熟練操作和配置不同的操作系統(tǒng),比如GNU/linux ,sun solaris,mac OS等,做為跨平臺(tái)軟件的開發(fā)者。

          你還需要緊跟java發(fā)展的步伐,比如現(xiàn)在可以深入的學(xué)習(xí)java ME ,以及各種java 新規(guī)范,技術(shù)的運(yùn)用,如 新起的web富客戶端技術(shù)。

          你必需要對(duì)open source有所了解,因?yàn)橹辽賘ava 的很多技術(shù)直接是靠開源來驅(qū)動(dòng)發(fā)展的 ,如 java 3D技術(shù)。

          posted @ 2006-09-01 10:14 摩西 閱讀(197) | 評(píng)論 (0)編輯 收藏

          <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN"

          "<html xmlns="<head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
          <title>css菜單演示</title>


          <style type="text/css">
          <!--

          *{margin:0;padding:0;border:0;}
          body {
          ??? font-family: arial, 宋體, serif;
          ??????? font-size:12px;
          }


          #nav {
          ???? line-height: 24px;? list-style-type: none; background:#666;
          }

          #nav a {
          ??? display: block; width: 80px; text-align:center;
          }

          #nav a:link? {
          ??? color:#666; text-decoration:none;
          }
          #nav a:visited? {
          ??? color:#666;text-decoration:none;
          }
          #nav a:hover? {
          ??? color:#FFF;text-decoration:none;font-weight:bold;
          }

          #nav li {
          ??? float: left; width: 80px; background:#CCC;
          }
          #nav li a:hover{
          ??? background:#999;
          }
          #nav li ul {
          ??? line-height: 27px;? list-style-type: none;text-align:left;
          ??? left: -999em; width: 180px; position: absolute;
          }
          #nav li ul li{
          ??? float: left; width: 180px;
          ??? background: #F6F6F6;
          }


          #nav li ul a{
          ??? display: block; width: 156px;text-align:left;padding-left:24px;
          }

          #nav li ul a:link? {
          ??? color:#666; text-decoration:none;
          }
          #nav li ul a:visited? {
          ??? color:#666;text-decoration:none;
          }
          #nav li ul a:hover? {
          ??? color:#F3F3F3;text-decoration:none;font-weight:normal;
          ??? background:#C00;
          }

          #nav li:hover ul {
          ??? left: auto;
          }
          #nav li.sfhover ul {
          ??? left: auto;
          }
          #content {
          ??? clear: left;
          }


          -->
          </style>

          <script type=text/javascript><!--//--><![CDATA[//><!--
          function menuFix() {
          ??? var sfEls = document.getElementById("nav").getElementsByTagName("li");
          ??? for (var i=0; i<sfEls.length; i++) {
          ??????? sfEls[i].onmouseover=function() {
          ??????? this.className+=(this.className.length>0? " ": "") + "sfhover";
          ??????? }
          ??????? sfEls[i].onMouseDown=function() {
          ??????? this.className+=(this.className.length>0? " ": "") + "sfhover";
          ??????? }
          ??????? sfEls[i].onMouseUp=function() {
          ??????? this.className+=(this.className.length>0? " ": "") + "sfhover";
          ??????? }
          ??????? sfEls[i].onmouseout=function() {
          ??????? this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),

          "");
          ??????? }
          ??? }
          }
          window.onload=menuFix;

          //--><!]]></script>

          </head>
          <body>


          <ul id="nav">
          <li><a href="#">產(chǎn)品介紹</a>
          ??? <ul>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? <li><a href="#">產(chǎn)品一</a></li>
          ??? </ul>
          </li>
          <li><a href="#">服務(wù)介紹</a>
          ??? <ul>
          ??? <li><a href="#">服務(wù)二</a></li>
          ??? <li><a href="#">服務(wù)二</a></li>
          ??? <li><a href="#">服務(wù)二</a></li>
          ??? <li><a href="#">服務(wù)二服務(wù)二</a></li>
          ??? <li><a href="#">服務(wù)二服務(wù)二服務(wù)二</a></li>
          ??? <li><a href="#">服務(wù)二</a></li>
          ??? </ul>
          </li>
          <li><a href="#">成功案例</a>
          ??? <ul>
          ??? <li><a href="#">案例三</a></li>
          ??? <li><a href="#">案例</a></li>
          ??? <li><a href="#">案例三案例三</a></li>
          ??? <li><a href="#">案例三案例三案例三</a></li>
          ??? </ul>
          </li>
          <li><a href="#">關(guān)于我們</a>
          ??? <ul>
          ??? <li><a href="#">我們四</a></li>
          ??? <li><a href="#">我們四</a></li>
          ??? <li><a href="#">我們四</a></li>
          ??? <li><a href="#">我們四111</a></li>
          ??? </ul>
          </li>

          <li><a href="#">在線演示</a>
          ??? <ul>
          ??? <li><a href="#">演示</a></li>
          ??? <li><a href="#">演示</a></li>
          ??? <li><a href="#">演示</a></li>
          ??? <li><a href="#">演示演示演示</a></li>
          ??? <li><a href="#">演示演示演示</a></li>
          ??? <li><a href="#">演示演示</a></li>
          ??? <li><a href="#">演示演示演示</a></li>
          ??? <li><a href="#">演示演示演示演示演示</a></li>
          ??? </ul>
          </li>
          <li><a href="#">聯(lián)系我們</a>
          ??? <ul>
          ??? <li><a href="#">聯(lián)系聯(lián)系聯(lián)系聯(lián)系聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
          ??? <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
          ??? </ul>
          </li>

          </ul>

          </body>
          </html>

          僅列出標(biāo)題
          共5頁: 上一頁 1 2 3 4 5 下一頁 
          主站蜘蛛池模板: 延寿县| 苍溪县| 祥云县| 山阴县| 锡林郭勒盟| 左权县| 土默特右旗| 于田县| 平和县| 仙桃市| 雅江县| 喀喇| 叶城县| 乌兰县| 威信县| 城固县| 宜宾县| 拜城县| 石屏县| 建始县| 昌邑市| 科尔| 象州县| 徐水县| 定安县| 土默特左旗| 聂荣县| 上虞市| 台东县| 庆云县| 潞城市| 安康市| 神池县| 杭州市| 巧家县| 崇州市| 绥江县| 安岳县| 吴川市| 绿春县| 美姑县|