天天看點

servlet簡單用法和配置示例及說明

學習原因和目的:

我如今所接觸的項目都是bs模式的web應用,而裡邊基本上都是用的spring mvc和前台互動,servlet貌似用的很少。

但是即便是用spring和spring mvc,項目中依舊是少不了web.xml檔案,而這裡邊的配置看來看去根本就是servlet的配置。

是以為了更好的了解這些配置,我想還是需要從servlet入手。

servlet在百度中的解釋是:

用java編寫的伺服器端程式。其主要功能在于互動式地浏覽和修改資料,生成動态web内容。狹義的servlet是指java語言實作的一個接口,廣義的servlet是指任何實作了這個servlet接口的類,一般情況下,人們将servlet了解為後者。

學習和了解:

據我所知,編寫servlet有多種方式,而現在比較常見的是內建httpservlet類,然後重寫doget和dopost等方法。是以我在了解的過程中也就以這個為基礎。

這種簡單的實作,需要在項目中導入servlet的jar包。

要驗證自己寫的servlet以及配置是否正确,就需要涉及到簡單的頁面,jsp或者html,如下:

頁面隻是個非常簡單的form表單,包含了username和password兩個文本輸入框,和表單送出按鈕。需要注意的是,input中不能少了name屬性,這個屬性是和背景互動的關鍵,有了它,背景才能用request.getparameter()方法正确擷取文本框中輸入的内容。這一點有經驗的朋友肯定都知道,但剛進入軟體開發的時候我因為不知道這個問題而遇到過困難,想來對初學者大概有用。

在這個頁面中,填好使用者名和密碼後,點選送出,浏覽器會向伺服器發送一個cookieservlet請求,同時把頁面填好的username和password傳入背景。背景就可以通過相應的方法擷取資料進行一定的邏輯處理,對應的servlet代碼如下:

在這個代碼中,自己建立了一個cookieservlet類,內建了httpservlet并重寫dopost方法,在方法裡擷取username和password。

截止到這裡,看起來都非常的簡單,不論是頁面還是java代碼都不難了解。但是如果隻是這樣的話,實際上是不行的,還需要配置web.xml檔案才能讓前背景聯系起來,成功的實作互動。web.xml如下:

這裡邊,首先要注冊一個servlet,也就是下邊這個:

<servlet>

     <servlet-name>login</servlet-name>

     <servlet-class>servlettest.cookieservlet</servlet-class>

  </servlet>

然後是對應的映射:

<servlet-mapping>

     <url-pattern>/cookieservlet</url-pattern>

  </servlet-mapping>

那麼有了這兩個配置後,當頁面向伺服器發送cookieservlet請求後,web.xml就會找到url-pattern>/cookieservlet</url-pattern>這裡,然後根據這個找個他所在的<servlet-mapping>裡的<servlet-name>是什麼。

可以看到在我這裡,對應的<servlet-name>是login,于是web.xml在根據這個login去尋找含有<servlet-name>login</servlet-name>的<servlet>。

當找到這個<servlet>以後,便能擷取到其中的<servlet-class>servlettest.cookieservlet</servlet-class>,這裡<servlet-class>裡邊寫的就是我們編寫的背景servlet類的全路徑,也就是完整的包名加上類名。

于是乎,有了這個配置,我們的程式就知道了相應的請求應該去走哪個背景代碼,進而實作關聯和互動。