碼上快樂
1秒登錄
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
servlet、genericservlet、httpservlet之間的區別
本文轉載自
查看原文
2013-08-27 16:53
2985
web開發
轉自:
http://blog.csdn.net/rat9912345/article/details/5161789
當編寫一個servlet時,必須直接或間接實現servlet接口,最可能實現的方法就是擴展javax.servlet.genericservlet或javax.servlet.http.httpservlet當實現javax.servlet.servlet接口時必須實現5個方法init(servletconfig config) service(servletrequest req,servletresponse resp) destroy() getservletconfig() getservletinfo()service是執行應用邏輯的入口點,包容器調用此方法來響應進來得請求,只是在servlet被成功初始化后才能調用它
其實servlet和applet差不多,當一個servlet被實例化后,包容器自動去調用固定的方法首先是init(),然后是service().....
genericservlet類提供了servlet接口的基本實現,所以他的子類都必須實現service()方法
httpservlet類擴展了genericservlet並且提供了servlet接口中具體於http的實現,它更象一個其他所有的servlet都要擴展的類,其中他定義了兩種形式的service方法:
service(servirequest req,servletresponse resp)
此方法是genericservlet的service()方法的實現,他把resquest,response對象分別轉化為httpservletrequest和httpservletresponse並且調用下面重載的service()方法,所以不應當重載上面的service()方法:
protect void service(httpservirequest req,httpservletresponse resp)
他用http的request,response對象作為參數,並且由上面的方法調用,httpservlet實現這個方法后就成為一個http請求的分發者,他把請求代理給doget(),dopost().....等doxxxx()方法
當包容器為一個servlet收到一個請求時,包容器調用公共的service方法在把參數轉換為httpservirequest,httpservletresponse 后,這個公共的方法調用保護的service根據http請求方法的類型,保護的service方法調用doxxxx()方法之一.
doget()方法是當得到一個get類型的請求時調用 dopost()方法是當得到一個post類型的請求時調用
httpservlet是從genericservlet繼承而來,因此httpservlet也有init和destroy這兩個生命周期函數以及service方法,只是httpservlet還有兩個重要的dopost方法和doget方法,並用他們來支持http的post和get方法,就是說如果要支持http的get方法,就要覆蓋doget方法,如果要支持http的post方法,就要覆蓋dopost方法。而get方法和post方法的主要區別在於:
post方法的數據傳遞方式比較安全,不會將傳遞的信息顯示在瀏覽器的網址后,而get方法則會將傳遞的信息顯示在瀏覽器的網址后
,例如用get方法的瀏覽器網址:
http://127.0.0.1:8080/response.jsp?name=myself
;而用post方法則為:
http://127.0.0.1:8080/response.jsp
;這種區別當用在密碼傳輸時就顯的更為重要。
×
免責聲明!
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。
猜您在找
GenericServlet和HttpServlet有什么區別?
Servlet——使用HttpServlet的Form表單
Servlet簡介與Servlet和HttpServlet運行的流程
servlet、filter、listener、interceptor之間的區別和聯系
新建一個servlet類,繼承HttpServlet,但是無法導入HttpServlet包
關於servlet類,繼承HttpServlet,但是無法導入HttpServlet包的原因和解決方法
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
java.servlet.http.httpservlet was not found on the Java Build Path
The superclass "jakarta.servlet.http.HttpServlet" was not found on the Java Build Path
jsp和servlet之間傳數據
粵ICP備18138465號
© 2018-2025 CODEPRJ.COM