Servlet技术简介与编写、编译Servlet程序
生活随笔
收集整理的這篇文章主要介紹了
Servlet技术简介与编写、编译Servlet程序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.Servlet技術(shù)簡介 Servlet技術(shù)是Sun公司提供的一種實(shí)現(xiàn)動態(tài)網(wǎng)頁的解決方案,它是基于Java編程語言的WEB服務(wù)器端編程技術(shù),主要用于在WEB服務(wù)器端獲得客戶端的訪問請求信息和動態(tài)生成對客戶端的響應(yīng)消息。Servlet技術(shù)也是JSP技術(shù)(另外一種動態(tài)網(wǎng)頁開發(fā)技術(shù))的基礎(chǔ)。一個Servlet程序就是一個實(shí)現(xiàn)了特殊接口的?Java類,用于被支持Servlet的WEB服務(wù)器調(diào)用和運(yùn)行,即只能運(yùn)行于具有Servlet引擎的WEB服務(wù)器端。一個Servlet程序負(fù)責(zé)處理它所對應(yīng)的一個或一組URL地址的訪問請求,接收訪問請求信息和產(chǎn)生響應(yīng)內(nèi)容。 Applet是用于瀏覽器端的Java小程序,在瀏覽器端被解釋執(zhí)行,用于在HTML網(wǎng)頁中實(shí)現(xiàn)一些桌面應(yīng)用程序的功能,被稱為“小應(yīng)用程序”。Servlet是用于WEB服務(wù)器端的Java小程序,它在WEB服務(wù)器端被解釋執(zhí)行,用于處理客戶端的請求和產(chǎn)生動態(tài)網(wǎng)頁內(nèi)容。源于Applet的命名,這種WEB服務(wù)器端的Java小程序就被命名為了Servlet,與Applet相對應(yīng),Servlet可以被稱之為“小服務(wù)程序”。 Servlet與普通java程序相比,只是輸入信息的來源和輸出結(jié)果的目標(biāo)不一樣,所以,普通Java程序所能完成的大多數(shù)任務(wù),Servlet程序都可以完成。Servlet程序具有如下的一些基本功能:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { ??? //從HttpServlet類的幫助文檔中復(fù)制service方法的聲明部分可避免書寫錯誤 ??? public void service(HttpServletRequest request, ??????? HttpServletResponse response) throws ServletException,IOException ??? { ??????? PrintWriter out = response.getWriter(); ??????? out.println("<html>"); ??????? out.println("<font size=30 color=red>www.it315.org</font><br>"); ??????? out.println("<marquee>" + new java.util.Date() + "</marquee>"); ??????? out.println("</html>"); ??? } }
(2)使用javac命令編譯這個源文件,通常情況下,第一次學(xué)習(xí)編寫Servlet程序的人都會遇到類似如下錯誤: HelloWorld.java:2: package javax.servlet does not exist import javax.servlet.*; ^ HelloWorld.java:3: package javax.servlet.http does not exist import javax.servlet.http.*; ^ ...... 這些錯誤信息提示javac編譯器找不到j(luò)avax.servlet和javax.servlet.http這兩個包以及其中的一些Servlet API類,這是因?yàn)榘琒ervlet API類的jar文件還沒有被加入到j(luò)avac所使用的CLASSPATH環(huán)境變量中。 (3)在執(zhí)行javac的命令行窗口中,將包含有Servlet API的jar文件加入到CLASSPATH環(huán)境變量的路徑列表中,例如,對于Tomcat 4.x,應(yīng)使用如下的命令設(shè)置: set CLASSPATH=<tomcat的安裝目錄>/common/lib/servlet.jar;%CLASSPATH% 設(shè)置完CLASSPATH環(huán)境變量后,重新編譯HelloServlet.java文件,如果源程序中沒有書寫錯誤的話,這時候就可以編譯成功了。 在筆者編寫的《java就業(yè)培訓(xùn)教程》中曾經(jīng)講過,在命令行窗口中設(shè)置的CLASSPATH環(huán)境變量是臨時的,只對這個命令行窗口起作用,對其它窗口和應(yīng)用程序不起作用,因此在每次新啟動的命令行窗口中都要重新設(shè)置。如果想讓設(shè)置一直保持有效,應(yīng)該使用對整個系統(tǒng)都有效的環(huán)境變量的設(shè)置方法,例如,在win2000的系統(tǒng)特性的“環(huán)境變量”對話框中進(jìn)行設(shè)置,在win98的開機(jī)自動批處理文件Autoexec.bat中設(shè)置,在Linux的Profile文件中設(shè)置。 (4)在編譯和運(yùn)行java程序時,Java類裝載器也會去<JDK安裝主目錄>/jre/lib/ext目錄下的jar包中搜索要加載的類。如果將包含Serlet API的jar文件復(fù)制到該目錄下,在編譯Servlet程序時,就不必在CLASSPATH環(huán)境變量中增加包含Serlet API的jar文件。
- ???????? 獲取客戶端通過HTML的FORM表單遞交的數(shù)據(jù)和URL后面的參數(shù)信息;
- ???????? 創(chuàng)建對客戶端的響應(yīng)消息內(nèi)容;
- ???????? 訪問服務(wù)器端的文件系統(tǒng);
- ???????? 連接數(shù)據(jù)庫并開發(fā)基于數(shù)據(jù)庫的應(yīng)用;
- ???????? 調(diào)用其它的Java類。
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { ??? //從HttpServlet類的幫助文檔中復(fù)制service方法的聲明部分可避免書寫錯誤 ??? public void service(HttpServletRequest request, ??????? HttpServletResponse response) throws ServletException,IOException ??? { ??????? PrintWriter out = response.getWriter(); ??????? out.println("<html>"); ??????? out.println("<font size=30 color=red>www.it315.org</font><br>"); ??????? out.println("<marquee>" + new java.util.Date() + "</marquee>"); ??????? out.println("</html>"); ??? } }
(2)使用javac命令編譯這個源文件,通常情況下,第一次學(xué)習(xí)編寫Servlet程序的人都會遇到類似如下錯誤: HelloWorld.java:2: package javax.servlet does not exist import javax.servlet.*; ^ HelloWorld.java:3: package javax.servlet.http does not exist import javax.servlet.http.*; ^ ...... 這些錯誤信息提示javac編譯器找不到j(luò)avax.servlet和javax.servlet.http這兩個包以及其中的一些Servlet API類,這是因?yàn)榘琒ervlet API類的jar文件還沒有被加入到j(luò)avac所使用的CLASSPATH環(huán)境變量中。 (3)在執(zhí)行javac的命令行窗口中,將包含有Servlet API的jar文件加入到CLASSPATH環(huán)境變量的路徑列表中,例如,對于Tomcat 4.x,應(yīng)使用如下的命令設(shè)置: set CLASSPATH=<tomcat的安裝目錄>/common/lib/servlet.jar;%CLASSPATH% 設(shè)置完CLASSPATH環(huán)境變量后,重新編譯HelloServlet.java文件,如果源程序中沒有書寫錯誤的話,這時候就可以編譯成功了。 在筆者編寫的《java就業(yè)培訓(xùn)教程》中曾經(jīng)講過,在命令行窗口中設(shè)置的CLASSPATH環(huán)境變量是臨時的,只對這個命令行窗口起作用,對其它窗口和應(yīng)用程序不起作用,因此在每次新啟動的命令行窗口中都要重新設(shè)置。如果想讓設(shè)置一直保持有效,應(yīng)該使用對整個系統(tǒng)都有效的環(huán)境變量的設(shè)置方法,例如,在win2000的系統(tǒng)特性的“環(huán)境變量”對話框中進(jìn)行設(shè)置,在win98的開機(jī)自動批處理文件Autoexec.bat中設(shè)置,在Linux的Profile文件中設(shè)置。 (4)在編譯和運(yùn)行java程序時,Java類裝載器也會去<JDK安裝主目錄>/jre/lib/ext目錄下的jar包中搜索要加載的類。如果將包含Serlet API的jar文件復(fù)制到該目錄下,在編譯Servlet程序時,就不必在CLASSPATH環(huán)境變量中增加包含Serlet API的jar文件。
轉(zhuǎn)載于:https://www.cnblogs.com/spring3/archive/2006/06/14/2401797.html
總結(jié)
以上是生活随笔為你收集整理的Servlet技术简介与编写、编译Servlet程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归算法经典实例python-Pytho
- 下一篇: JAVA垃圾回收机制