Servlet/JSP配置入門
來源:互聯網
上載者:User
js|servlet 初學者問的諸如:《怎樣配置環境變數》《怎樣運行Servlet》啊?這樣的問題太多了,現在我寫一個初學者入門必讀,以便對初學者有指導作用!
首先是下載工具:
我建議初學者用Editplus+JDK,我覺得如果用例如JB,Eclipse,JCreator,雖然剛開始的時候比較方便,但是確使初學者門不知道怎樣配置環境變數,
從而難以達到知其然,知其所以然的地步
可以通過如下地址下載:
Editplus(最新版本是v2.11):http://count.skycn.com/softdown.php?id=3641&url=http://sc-http.skycn.net/down/epp211a_cn.exe(要照註冊碼就自己找吧,網上很多的)
JDK(最新版本是Java2sdk1_4_2):http://count.skycn.com/softdown.php?id=3116&url=http://sc-http.skycn.net/down/j2sdk-1_4_2-windows-i586.exe(這是ForWindows)
然後就是安裝JDK,我是把它裝到從c:\JDK目錄下面:
然後就是CLASSPATH的問題了:
正如作業系統利用PATH來搜尋可執行程式一樣,Java運行環境也會遍曆CLASSPATH來尋找類,即便是HelloWorld這樣簡單的程式,JVM也會遍曆
CLASSPATH定義的每一個路徑,直到找到相應的檔案為止。
相信大家用的系統不是2k就是XP,然後就應當如下設定Path:
我的電腦->屬性->進階->環境變數
然後在環境變數的Path後面追加:C:\JDK\bin;.;C:\JDK\lib
也可以這樣配置:C:\JDK\bin;.;C:\JDK\lib\dt.jar;C:\JDK\lib\tools.jar
★記住:環境變數中的.切記不能少,它表示當前路徑,如果少掉出現的錯誤等會就說!
dt.jar是關於運行環境的類庫,tools.jar是關於一些工具的類庫
如果沒有配置:C:\JDK\bin,則會出現“javac'不是內部或外部命令,也不是可啟動並執行程式或批次檔。”這樣的錯誤。
然後下面就該寫程式了:
首先是(HelloWorld.java),開啟Editplus,建立一個Java檔案,請照著如下輸入,要一字不漏,並且分清大小寫:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("Hello,World!");
}
}
然後把這個檔案儲存(ctrl+s)到HelloWorld.java,記住大小寫一定要分清,是HelloWorld.java不是helloworld.java或者其他的
下面就該運行了,開始->運行->cmd
在控制台中把目錄切換到目前的目錄:
javacHelloWorld.java
javaHelloWorld
你就會在控制台上看見輸出的Hello,World!(沒出來?我把電腦吃了:))
javac是編譯命令,它把HelloWorld.java編譯成HelloWorld.class
java就是解釋命令,JVM把HelloWorld.class解釋執行.
在這個時候:
1。如果出現Exceptioninthread"main"java.lang.NoClassDefFoundError:HelloWorld
那就是你在環境變數中沒有加上那個.(dot)
2。如果出現Exceptioninthread"main"java.lang.NoSuchMethodError:main
或者HelloWorld.java:1:Publicclasshelloworldmustbedefinedinafilecalled
"HelloWorld.java".
那就是你沒有分清大小寫寫入這個HelloWorld,或者儲存得時候沒有儲存為HelloWorld.java
這個名字一定要跟publicclass的名字一樣
對於環境變數的問題就說到這裡,下面我先所說怎麼在Editplus裡面編譯和運行,在Tools->參數設定->配置使用者工具
1.添加工具(添加應用程式)
菜單文字:CompileJavaProgram
程式:C:\JDK\bin\javac.exe
參數:檔案名稱
初始目錄:檔案目錄
2.添加工具(添加應用程式)
菜單文字:RunJavaProgram
程式:C:\JDK\bin\java.exe
參數:檔案名稱(不含副檔名)
初始目錄:檔案目錄
工具組名稱可以隨便添,比如DebugJavaProgram
然後在Tools的下拉式功能表中,你就會看見CompileJavaProgram以及RunJavaProgram這兩個選項,以後你就可以利用ctrl+1編譯和ctrl+2運行程式了
下面就討論Servlet的運行:
首先要運行Servlet,則需要JSP/Servletcontainer,我建議初學者用Tomcat
Tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip
然後把這個壓縮包解壓到:
C:\Tomcat
然後再配置環境變數:
添加三個系統變數:
JAVA_HOME:C:\JDK
TOMCAT_HOME:C:\Tomcat
CLASSPATH:%JAVA_HOME%\lib;%TOMCAT_HOME%\lib
Tomcat的環境變數就配置完畢了,下面檢驗Tomcat是否能夠運行:
在控制台中轉到C:\Tomcat\bin這個目錄,運行startup,然後回出現一個視窗,連跳一大串東西,最後表示Server已經運行
在瀏覽器中輸入http://localhost:8080,出現歡迎介面,則表示Tomcat沒問題了
然後和上面一樣,寫入你的第一個Servlet
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloWorldextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
out.println("<html><head><title>");
out.println("ThisismyfirstServlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");
}
}
然後照樣用javacHelloWorld.java來編譯這個檔案,如果出現無法importjavax.servlet.*
那麼就是應該把C:\Tomcat\common\lib裡面的servlet.jar檔案拷貝到C:\JDK\jre\lib\ext中,再次編譯,就沒有問題了!
然後在Tomcat目錄裡面的C:\Tomcat\webapps\ROOT裡面按如下的檔案結構:
ROOT\index.html
ROOT\welcom.jsp
ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar檔案,則放在lib下面)
ROOT\WEB-INF\classes\HelloWorld.class(把上面產生的HelloWorld.class檔案放在這個裡面)
然後在瀏覽器中輸入http://localhost:8080/servlet/HelloWorld,於是Server眾望所歸的報錯了:Error404--NotFound
怎麼回事呢?
Servlet必須使用C:\Tomcat\webapps\ROOT\WEB-INF這個目錄下面的web.xml檔案進行註冊,用EP開啟這個web.xml檔案,
在裡面加入
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>
這樣的結構
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
表示指定包含的servlet類.
而以下的結構
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>
表示指定HelloServlet應當映射到哪一種URL模式。
在修改web.xml完畢過後,重新啟動Server,然後再輸入http://localhost:8080/servlet/HelloWorld,那麼偌大一個Hello,World!等著你呢,恭喜你
擺平了:)
艾,手都打累了,就寫到這兒吧,希望對初學者有一點作用!
================================
如何建立一個串連資料庫的應用?例如串連access、和sqlsever.
聽說有jdbcjdbc-odbc橋等方式。目前我的機器上只有jdk1.4,我想用jdbc的方式還需要裝什麼環境嗎?
如果要jdbc的驅動等環境那裡可以下到?還有程式怎樣寫?
--------------------------------
如果用驅動橋的話就不需要另外安裝別的東西
在
控制面版-->管理工具-->資料來源(ODBC)-->SystemDSN
中加入你的資料庫映射,選好相應的資料庫驅動
然後就可以通過
jdbc:odbc:設定好的DSN名
的方式來串連資料庫了
----------------------------------
packageCBK00D.COMMON;
/**
*Title:
*Description:
*Copyright:Copyright(c)2001
*Company:
*@author
*@version1.0
*/
importjava.io.*;
importjava.util.*;
importjava.sql.*;
importjava.lang.*;
publicclassDBConnect{
privateStringjdbcDriver=null;
privateStringjdbcURL=null;
privateStringuserName=null;
privateStringpassword=null;
publicDBConnect(){
jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver";
jdbcURL="jdbc:odbc:cbk";
userName="system";
password="manager";
}
publicConnectiongetConnection(){
Connectionconnection=null;
try{
Class.forName(jdbcDriver);
connection=DriverManager.getConnection(jdbcURL,userName,password);
}catch(Exceptione){
System.out.println(e);
}
returnconnection;
}
}
這是普通的串連方法!只要修改一下就可以了。
--------------------------------------
似乎是這樣的,要先rs.next()一下
jdbc-odbc橋不好嗎?^_^
JAVA串連資料庫的方式有多種:
根據所需要的不同資料庫驅動分,分為四種:
1:1類驅動。這就是JDBC-ODBC橋的方式。但這種方式不適合程式的重用與維護,不推薦使用。需要資料庫的ODBC驅動。
2:2類驅動。這就是JDBC+廠商API的形式。廠商API一般使用C編寫,所以,這種方式也不長使用。
3:3類驅動。這就是JDBC+廠商DatabaseConnectionServer+DataBase的形式。
這種方法就是在JAVA與DATABASE之間價起了一台專門用與資料庫連接的伺服器(一般由資料庫廠商提供)。他的好處在於能最佳化串連。
4:4類驅動。這就是純JDBC+DATABASE的串連方式。也是推薦的串連方式。這使得APPLICATION與資料庫分開,開發人員只需關心內部邏輯的實現而不需注重資料庫連接的具體實現。在這其中有兩種串連的方式:
寫入程式碼方式,就是在程式中硬性編入資料庫連接的所須參數。
JNDIDataSource方式。就是在程式啟動並執行外布環境中又稱(Context)設定一個datasource資料來源,有一個jndi名稱,程式只須尋找此名稱就可得到一個資料庫連接的對象。
=====================================
jsp串連Oracle8/8i/9i資料庫(用thin模式)
testoracle.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl為你的資料庫的SID
Stringuser="scott";
Stringpassword="tiger";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromtest";
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>