1. 程式人生 > >寫一個簡單的servlet

寫一個簡單的servlet

打開 lips cli 簡單 找不到 -m 輸入12 右下角 dex

昨天寫完hibernate的小demo後,想寫一個簡單structs2,但是發現好像自己連servlet都忘了怎麽寫了,所以一切從頭開始,先寫一個簡單servlet把

第一步

肯定是建立項目了,打開自己eclipse(myeclipse,sts,idea)。然後file->new->java project。這裏肯定會有疑問,為啥不建立一個web project呢。呃,原因很簡單,因為要從頭來,一切都從頭來唄,web project裏 web方面的屬性都給配置好了,就起不到學習的作用了。

名字自己起,其他的也沒什麽可以敘說的,然後項目就建立好了。

然後建立完項目,肯定是把相關的jar包都導入進來了,這裏就一個jar包。servlet-api.jar包。然後下載路徑http://pan.baidu.com/s/1kVl6Ld9 密碼 jwzj ,如果鏈接取消,也可以去http://how2j.cn/k/servlet/servlet-eclipse/558.html裏右上角下載

下載好jar包,很簡單,配置進項目。右鍵項目properties->java build path->libraries 然後右邊的add external jars 然後導入進來就好了

第二步

在src目錄下,建立一個class文件用來寫我們servlet,名字就叫helloServlet把 然後註意,建立的時候,底下會根據你的項目名,自己動起一個包名,這時候把這個包名刪除掉,默認沒有包名

然後其他的就沒什麽要贅述的了。然後寫一個servlet,那麽你的類肯定要繼承HttpServlet了。這個是常識。然後代碼如下啦:

技術分享

這裏簡單的敘說一下doGet和doPost兩種請求方式把。我覺得個人的覺得就是一個需要把所傳的參數打印在url後(doGet),另一個則不用。稍微查了查其他大佬對這兩種方法的看法,大概就是

1.通過get方式提交的數據有大小的限制,通常在1024字節左右。也就是說如果提交的數據很大,用get方法就可需要小心;而post方式沒有數據大小的限制,理論上傳送多少數據都可以。

2.通過get傳遞數據,實際上是將傳遞的數據按照”key,value”的方式跟在URL的後面來達到傳送的目的的;而post傳遞數據是通過http請求的附件進行的,在URL中並沒有明文顯示。

,順帶說一句,Date()..toLocaleString() 這個函數主要的目的是把得到的日期格式化成字符串類型,我使用的時候顯示了一條橫線,就是意思這個方法以及被廢棄了,但是並不影響使用,但是我看別人的代碼。並沒有被廢棄。仔細看了看好像自從jdk1.7之後這個方法開始被廢棄,不過無傷大雅。

第三步

servlet文件寫好,剩下的就是配置web.xml了 因為用的java項目所以一切都得自己來嘛,首先在src的同級建立一個web文件夾,然後在web文件夾下建立一個WEB-INF文件夾,至於為啥大寫,我是不知道,要想知道就只能去編這個語言的大佬了╮(╯▽╰)╭。

然後在WEB-INF下建立web.xml文件。具體路徑如下圖:

技術分享

第四步

建立文件後,幹啥,寫唄。下面就是寫web.xml的信息,不過寫之前首先要知道web.xml是幹嘛的。用我的話來說就是web項目所需要配置的東西寫在裏面,方便去服務器去讀取,比如什麽訪問路徑一類的。

然後代碼如下圖:

技術分享

簡單易懂,不過有幾個點需要註意一下,第一個<servlet>標簽裏的name和class可以不相同,但是大家為了觀看美觀,方便 一般都是寫成一樣的。代碼規範還是挺重要的,但是<servlet>和<servlet-mapping>兩個標簽下的name必須是一樣,這個可是硬性規定。

然後url-pattern 就是你訪問這個servlet所需要的路徑了。

對了 最後的最後,記得在WEB-INF下創建classes目錄
把項目的class文件輸出由原來的 j2ee/bin 設置到 j2ee/web/WEB-INF/classes下
項目右鍵->properties->Java Build Path->Source->右下角的 Brower-> 指定位置是 j2ee/web/WEB-INF/classes。
為什麽要有這一步? 在ecilpse中默認輸出的class是在bin目錄下,但是tomcat啟動之後,在默認情況下,不會去bin目錄找這些class文件,而是到WEB-INF/classes這個目錄下去尋找。 所以通過這一步的配置,使得eclipse的class文件輸出到WEB-INF/classes目錄下,那麽這樣就和tomcat兼容了。

第五步

項目都寫完,最後就是把項目放到服務器啟動就好了唄。然後。。。發現好像不是這樣,是通過tomcat項目訪問到這個servlet就行,畢竟這個項目也沒啥需要啟動。剩下的就是配置tomcat,然後啟動了。

可千萬別直接找到tomcat所在位置,然後點擊startup.bat,啟動tomcat後,在網址欄輸入個127.0.0.1:8080/hello 這樣肯定找不到。tomcat哪知道你這個servlet在哪

首先先找到service.xml 然後打開 在在 <Host name="localhost" 。。。 下面加一句: <Context path="/" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />

註意點就是 docBase裏的路徑是你項目web所在的位置,可不是固定的。然後剩下的就沒什麽了。啟動tomcat 然後在網址欄輸入127.0.0.1:8080/hello ,然後

技術分享

就是這樣了。不過說的簡單,這一步還是有問題的,我實現的時候搞崩了自己一個tomcat。(心疼ing。)然後要註意的就是千萬別改,就是在該寫的位置寫上那句代碼,如果發現tomcat啟動不了,就把那句話刪了,再試試能不能正常啟動。

然後如果一直嘗試不成功的話,就用個純凈版的tomcat 下載鏈接:http://pan.baidu.com/s/1qYPYfe8 密碼:g9vd。然後還是按照上面的配置,應該就成功了。至於為啥有的tomcat不成功。。。 我也不清楚。反正版本兼容性問題什麽的最麻煩了。

最後,既然搞崩了tomcat,那就重新看看tomcat的知識把,然後關於tomcat的一些錯誤大全:http://how2j.cn/k/tomcat/tomcat-faq/1132.html tomcat 都在這個網址上了。

最後安利一下http://how2j.cn/這個網站,很實用,我大多數也都是按照上面的步驟來的,然後最後加一些自己的理解寫的博客。裏面的許多的知識很基礎,講的算比較詳細的了。

寫一個簡單的servlet