理解
Servlet:
1.??????
doGet()
和
doPost()
的區(qū)別:
參考資料
1
:
http://bbs.blueidea.com/viewthread.php?tid=891513&page=
l?????????
servlet
它有一個
方法
默認(rèn)
被執(zhí)行
在接到
用戶請求時
,
這個方法
就是
service()
它會
根據(jù)
用戶端
具體的
請求類型
自動選擇
使用哪種方法
反應(yīng)
.
?
l?????????
可以理解為針對
form
的
get ,post
來執(zhí)行相應(yīng)的
doGet,doPost
方法
?
l?????????
form
的
get
和
post
有什么區(qū)別...這個是重點(diǎn)..嘿~~謝了..
?
l?????????
get
是地址欄參數(shù)傳遞
,
并且沒有正文體內(nèi)容
,
它僅僅由一個方法語句和不同的請求標(biāo)題域
組成
.
例如
:
GET /login.html?userName=Iori&passWord=12345 HTTP/1.0
User-Agent:Mozilla/4.51[en](WinNT;1)
Accept:image/gif,image/jpeg.image/pjpeg,*/*
上面是表單
選擇方法為
get
時
點(diǎn)擊提交事件
自動添加到
地欄的
,
當(dāng)然
你也可以這自己寫
這樣的東東
.
post
的不同
在于
參數(shù)信息
保存在
正文體中
對用戶
是不可見的
.
不像
get
方法
,
不能通過改寫瀏覽器地址
來發(fā)送一個
post
請求
而前者可以
.
這樣不安全的
一個
post
請求的
例子
如下
:
POST /login.html HTTP/1.0
User-Agent:Mozilla/4.51 [en] (WinNT;1)
Accept:image/gif,image/jpeg,image/pjpeg,*/*
Content-Length:34
Content-Type:application/x-www-form-urlencoded
userName=Iori&passWord=12345
看到了吧
數(shù)據(jù)被存到
正文體中了
這就是它們之間
最大的區(qū)別
.
?
參考資料
2
:
http://book.77169.org/data/web5409/20050328/20050328__3854464.html
問題:
1,?
servlet
中處理的方法,有
doPost
()
doGet
()
中的方法,它們都有共同的參數(shù),那就是
HttpServletRequest HttpservletResponse
對象,可是我不知道這兩個方法有什么區(qū)別,什么該用
doPost()
什么時候該用
doGet()
呢??
2,?
servlet
中的
service
()方法又是干什么的呢??它和
doPost() doGet()
又有什么關(guān)系呢?
回答:
l????????
get
、
post
等那些是指瀏覽器傳給
Servlet
的方法,可以在
form
的
action
中指定,如
action="post",action="get"
之類的,默認(rèn)使用
get
,如在瀏覽器直接輸入
xxx?param1=xx¶m2=xx
,這種方式是
get
。
?
l????????
service()
和
doGet(),doPost()
的關(guān)系是:
servlet
先調(diào)用默認(rèn)執(zhí)行的
service()
方法,由它決定調(diào)用哪個處理方法。
l????????
我來解釋一下什么是Get、Post吧:
1.Post方式就是通過表單的submit()方法提交到服務(wù)器的,當(dāng)然servlet調(diào)用的是doPost();
2.Get方式就是自定義路徑傳參數(shù),比如:../servlets/XX.jsp?parameterName=parameterValue&...
這種形式提交到服務(wù)器的,對應(yīng)的是doGet()方法。這種方式一般有長度限制,打的參數(shù)多了提交不上去。
一般在servlet里面是不用管以哪知形式提交的,可以定義一個公共方法,在doPost()和doGet()方法里面都去調(diào)用,或者:doPost(){ doGet() }
?
l????????
get
方法我們可以在地址欄中直接輸入?yún)?shù)也可以的
但
post
方法在地址欄中直接輸入就不可以了
,
顯示不出頁面的
問題:
1. servlet
是一個接口嗎?是不是接口就必須對其所有方法實(shí)例化,也就是說,一一實(shí)例化
init(),service(),doGet(),doPost()
和
destroy()
方法?
2. doGet()
和
doPost()
方法什么時候可以統(tǒng)一調(diào)用?比如
doPost(){ doGet();}.
既然使用
doPost()
方法不能從地址欄里輸入?yún)?shù)訪問,那么為什么
doPost()
可以直接使用
doGet()
方法呢?反過來,
doGet()
可是使用
doPost()
方法嗎?
3. servlet
的方法有哪些?除了
init(),service(),doGet(),doPost()
和
destroy()
方法之外還有別的嗎?如果只有這五個方法,那么是不是說,寫一個
servlet
,就是要實(shí)現(xiàn)
doGet()
和
doPost()
方法?(因?yàn)?/span>
service
方法是默認(rèn)一定啟動的)
4. java
中接口和
c++
中虛函數(shù)的區(qū)別是什么?
參考資料
1
:
http://www.51dibs.com/html/2006/article/info4/a_11af20782d07b7b7.htm
什么是接口?
在
Java中,接口是不相關(guān)的對象相互交互的設(shè)備。Java接口與
協(xié)議很相似。實(shí)際上,其它面向?qū)ο笳Z言也有Java的接口的
功能,但是它們稱為協(xié)議。
Java接口定義了一套方法,但沒有實(shí)現(xiàn)它們。一個實(shí)現(xiàn)接口的
類可以實(shí)現(xiàn)定義在這個接口中的所有方法,因此可以實(shí)現(xiàn)一定
的行為。
定義:接口是方法定義(而不實(shí)現(xiàn))的被命名的集合。接口也
可以包括常量定義。
參考資料
2
:
http://www.umlchina.com/best/g30/u1144079.htm#1144178
l???????
Java中的接口和抽象類的區(qū)別,在于接口中沒有屬性,而且所有的方法都是抽象的,而抽象類可以有屬性,而且可以有抽象方法,也可以有實(shí)現(xiàn)的方法。但兩者都不能被實(shí)例化。
使用的時候,一個類可以繼承多個接口,但只能繼承一個抽象類。
l???????
抽象類與接口的重大區(qū)別就在于它能提供一部分實(shí)現(xiàn),包括方法和屬性。在某些情況下這是非常有用的,比如在
template method模式中。
你說“有了單純的接口,就不應(yīng)該使用抽象類了”,這種說法未免過于絕對了。
在邏輯上,抽象類表示了抽象的概念,它們的一部分行為需要在具體的子類中定義,但同時又定義了子類的一部分分共性的行為和屬性。
l???????
我認(rèn)為抽象類基本就是個“實(shí)現(xiàn)機(jī)制”。
我們在分析的時候會去管一個類是不是抽象類嗎?不會吧?
它的意義在于提供了一個安全的機(jī)制,把一些類的共同行為抽象到一個“半成品”類中,又組織人們使用這個“半成品”類。
?
自己的理解:(結(jié)合例子來理解)
理解接口:
接口中沒有屬性,而且所有的方法都是抽象的;
比如說Servlet都是通過實(shí)例化接口實(shí)現(xiàn)的,servlet接口定義了init(),service(),doGet(),doPost(),destroy()方法,但是只是定義,沒有去實(shí)現(xiàn)它們,實(shí)現(xiàn)一個servlet類時一一實(shí)現(xiàn)servlet接口定義的方法。
理解抽象類:
l????????
抽象類可以有屬性,而且可以有抽象方法,也可以有實(shí)現(xiàn)的方法。
l???????
邏輯上,抽象類表示了抽象的概念,它們的一部分行為需要在具體的子類中定義,但同時又定義了子類的一部分分共性的行為和屬性。
l???????
感覺是,接口沒有屬性也沒有已經(jīng)實(shí)現(xiàn)的方法,適合與servlet這種類型的類似的協(xié)議的機(jī)制;而抽象類提供了一個抽象和半成品的概念,定義了所有子類的共有屬性,并實(shí)現(xiàn)了所有子類的共有方法,子類只需要在此基礎(chǔ)上實(shí)現(xiàn)自己的特有屬性和方法,更安全,更方便。比如一個典型的例子,關(guān)于“車”類,定義成一個抽象類,并把所有車的共有屬性和方法都定義并實(shí)現(xiàn)了,子類(比如car)就可以在此基礎(chǔ)上繼承并定義和實(shí)現(xiàn)自己特有的屬性和方法就可以了。沒必要定義為接口,把共有的屬性和方法也要依次各自實(shí)現(xiàn)。
5. java
中為什么沒有多繼承?你是如何理解的?
6.extends
與
implent
的區(qū)別?