2 回答

TA貢獻17條經(jīng)驗 獲得超21個贊
你重寫了service()方法。
在 HttpServlet 中已存在 service()方法.缺省的服務(wù)功能是調(diào)用與 HTTP 請求的方法相應(yīng)的 do 功能。
例如,如果 HTTP 請求方法為 GET,則缺省情況下就調(diào)用 doGet()。
service方法是接口中的方法,servlet容器把所有請求發(fā)送到該方法,該方法默認行為是轉(zhuǎn)發(fā)http請求到doXXX方法中,如果你重載了該方法,默認操作被覆蓋,不再進行轉(zhuǎn)發(fā)操作!?
service()是在javax.servlet.Servlet接口中定義的, 在 javax.servlet.GenericServlet中實現(xiàn)了這個接口, 而 doGet/doPost 則是在 javax.servlet.http.HttpServlet 中實現(xiàn)的, javax.servlet.http.HttpServlet 是javax.servlet.GenericServlet 的子類.
Servlet 應(yīng)該為 Servlet 支持的 HTTP 方法覆蓋 do 功能.因為HttpServlet.service() 方法會檢查請求方法是否調(diào)用了適當(dāng)?shù)奶幚矸椒?不必要覆蓋 service() 方法。只需覆蓋相應(yīng)的 do 方法就可以了。

添加回答
舉報