国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Servlet教程

2019-11-18 15:10:54
字體:
來源:轉載
供稿:網友

  1. Servlet的基礎結構

下面我們來談談處理用戶GET請求的最簡單的servlet框架。GET請求就是用戶在瀏覽器的地址欄里輸入一個地址、在網頁上點擊連接或產生一個沒有定義方法的Html表單后產生的請求。Servlets還能輕松處理表單的提交(POST),關于處理表單提交我們將在后面幾部分談到。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SomeServlet extends HttpServlet {
public void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

// 用 "request" 讀取http信息頭(如cookie)
// 和HTML表單數據 (如用戶輸入和提交的數據)
// 用"response"指定http響應 和http信息頭
// (如指明信息的類型、設定cookie).

PRintWriter out = response.getWriter();
// 用 "out"輸出內容到瀏覽器
} }

不管是用doGet還是doPost方法,servlet都要用到HttpServlet擴展類。這些方法可分為兩類:HttpServletRequest和HttpServletResponse。HttpServletRequest含有獲得表單數據、HTTP信息頭等信息的方法。 HttpServletResponse則包含指明HTTP響應 (200, 404,等。)、信息頭(Content-Type, Set-Cookie, 等。)的方法,更重要的是你能使用PrintWriter方法向客戶端輸出信息。注重doGet和doPost方法會拋出兩個異常,所以必須在定義里包含他們。要用到PrintWriter、HttpServlet和HttpServletRequest, HttpServletResponse方法還必須分別引入java.io、javax.servlet和javax.servlet.http。 一般來說,doGet和doPost是被service方法調用的,但有時候你可能想越過service方法而直接使用自己定義的service方法,比如定義一個既能處理GET也能處理POST請求的servlet。

2. 一個簡單的Servlet--產生存文本

下面是一個產生存文本的簡單servlet的實例。
2.1 HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
2.2 編譯和安裝Servlet
注重,安裝servlet的方法會因web服務器不同而不同。具體請參考您使用的web服務器所帶的安裝文檔。Java Web 服務器即Java Web Server(JWS)2.0上帶有聯機實例。在JWS里,servlet程序必須JWS放在安裝目錄的servlets目錄下才能運行。假如web服務器由多人使用并且沒有好的虛擬服務器的下層結構來自動避免沖突,你也可以像我一樣在servlets目錄下創建一個獨立包(我取名叫hall)即在servlets目錄下創建一個hall子目錄,并把你寫的servlet放在該目錄下。這里我把HelloWorld.java放在hall目錄下。其他大多數服務器的安裝都大同小異,本教程的servlet和jsp例子都在BEA Weblogic和IBM的WebSphere 3.0測試通過。其中WebSphere對于虛擬服務器有一套優秀的機制,所以沒有必要為了名字的沖突而單獨使用包。
假如你以前從未用過包,那么有兩種在包內編譯類文件的方法可以使用。
一種方法就是在CLASSPATH里設置好指向包含有你的servlet文件的目錄,這樣就可以在該目錄下正常編譯。舉個例子,假如你在Windows下的servlet的目錄是C:JavaWebServerservlets,包名(即子目錄)是hall, 那么在dos窗口設置如下:
DOS> set CLASSPATH=C:JavaWebServerservlets;%CLASSPATH%
DOS> cd C:JavaWebServerservletshall
DOS> javac YourServlet.java
第一步、設置路徑。最好一步到位,免得以后每次都要重新打開一個dos窗口。Windows 95/98系統下在autoexec.bat文件里加入"set CLASSPATH=..."表達式,將CLASSPATH指向servlet.jar和jsp.jar。在NT下,開始菜單-設置-控制面板,選擇“系統”,選擇“環境”,然后輸入變量名和變量值。注重假如你的包名是 name1.name2.name3的格式,還應該設置CLASSPATH指向包的頂層(即name1)。
第二種方法是轉到包的上層目錄,然后執行"javac DirectoryYourServlet.java" (注重Windows下是反斜桿)或者unix下"javac directory/YourServlet.java" (注重Unix下是正斜桿)。再舉個例子,比如你在windows下的servlet目錄是C:JavaWebServerservlets,包名也就是子目錄名是hall,那么執行下列操作:
DOS> cd C:JavaWebServerservlets
DOS> javac hallYourServlet.java
注重Windows下,大部分JDK 1.1版本的javac都要求反斜桿,后來在JDK 1.2里得到了修正,但是由于很多web服務器是根據JDK1.1來配的,所以為了方便起見許多servlet作者還是堅持反斜桿。
javac的-d選項可以用來指定將.class文件和源碼文件放在不同的地方。
2.3 運行Servlet servlet
一般是放在JWS安裝目錄下的servlets目錄下,并通過 http://host/servlet/ServletName調用。注重這里的servlets目錄中的servlets帶有"s",而URL地址欄里的則沒有。上面的例子放在hall包里,所以這樣調用:http://host/servlet/hall.HelloWorld。其他服務器在servlet放置目錄和調用上可能會稍有不同。大部分服務器都答應你定義servlet目錄的映射,因此一個servlet也可以通過http://host/any-path/any-file.html調用。具體得看不同服務器,具體可以查看服務器自帶的文檔。


譯自http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福海县| 瓮安县| 肇州县| 三明市| 佛山市| 左贡县| 伊川县| 吉林市| 宁明县| 雅安市| 南涧| 广元市| 崇州市| 房产| 沁水县| 平陆县| 海原县| 安国市| 孝感市| 香港 | 明水县| 景洪市| 寻乌县| 宾阳县| 比如县| 枣强县| 乐平市| 海城市| 泰安市| 道孚县| 津南区| 菏泽市| 宜章县| 武夷山市| 利川市| 开江县| 佛山市| 扎赉特旗| 拉萨市| 门源| 澄迈县|