如果我在servlet的主體內寫入自己的方法會發生什麼? servlet容器是否負責照顧它?如果是,如何?如果不是,爲什麼?如果我在Servlet中編寫自己的方法,會發生什麼?
回答
不,該servlet不支持由瀏覽器調用的自定義Http方法。
請閱讀的servlet 2.5規範的第2章支持的方法
http://download.oracle.com/otndocs/jcp/servlet-2.5-mrel2-eval-oth-JSpec/
是Servlet容器支持自定義Http方法。當任何方法被調用時,容器將調用service()方法。並且它爲HttpServlet.service()方法返回HttpServletResponse.SC_NOT_IMPLEMENTED狀態碼,用於除GET,POST等標準Http方法以外的http方法。
如果您想要定製http方法。覆蓋service()方法,使用HttpServletRequest.getMethod()獲取方法,並調用您的自定義方法。
對於防爆,
public class CustomMethodServlet extends HttpServlet{
public void service(HttpServletRequest req, HttpServletResponse res) {\
if(request.getMethod().equals("foo")){
//invoke your custom method
doFoo(request,response);
}else {
super.service(request, response);
}
}
public void doFoo(HttpServletRequest req, HttpServletResponse res) {
//implement your custom method
}
}
在Servlet的上述方法可使用foo
HTTP方法被調用。
什麼是廢話。 – BalusC
對不起,我錯了。我想默認情況下,Servlet容器調用自定義http方法。但可以編寫自定義http方法,覆蓋service()方法並使用HttpServletRequest.getMethod()使用反射調用自定義方法。 –
聽起來像是你指的是JSP頁面,而不是一個servlet。一個servlet是一個Java類並且沒有主體。一個servlet有一個服務方法和一些方法。 Java不支持你在另一箇中寫入一個方法。
OP似乎更多地談論[HTTP方法](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html),而不是Java方法。 – BalusC
- 1. 如果我自己調用run()方法會發生什麼?
- 2. 如果我重寫window.scrollTo方法會發生什麼?
- 3. 編寫我自己的拆分方法
- 4. 編寫我自己的塊方法
- 5. 方案 - 編寫我自己的追加會產生一個奇怪的結果
- 6. 如果我不執行部分方法會發生什麼?
- 7. 如果我們直接調用run方法會發生什麼?
- 8. 如果我從AsyncTask調用一個方法會發生什麼?
- 9. 如果start()方法在它自己的body中調用,Thread程序中會發生什麼?
- 10. 當makefile編輯自己時會發生什麼?
- 11. 在Java中重寫方法時會發生什麼?
- 12. 在Java中爲我自己的LinkedList類編寫自己的peek()方法
- 13. 如果我們不在init方法中檢查「if(self)」會發生什麼?
- 14. 在產生懶惰列表的方法中,如果我什麼都不返回會發生什麼?
- 15. 即使我編寫自己的currentTimeMillis方法,如何從TimeStamp中逃生?
- 16. 如果兩個ObjC類別重寫相同的方法會發生什麼?
- 17. 如果你在python中單獨編寫變量名稱,會發生什麼?
- 18. 如果基本方法在VB中調用重寫的方法會發生什麼?
- 19. 如果對象調整其自己的容器,會發生什麼情況?
- 20. 如果你的服務器對自己做XHR會發生什麼?
- 21. 如果HttpClient.execute()中斷會發生什麼?
- 22. 如果我致電退貨會發生什麼;來自Runnable?
- 23. 在.NET中發生了什麼事如果發生在釋放方法(〜法)
- 24. 在C中編寫我自己的shell
- 25. 在js中寫我自己的確認最好的方法是什麼?
- 26. 如果CImage :: Load方法失敗會發生什麼情況?
- 27. 當我編譯時會發生什麼?
- 28. 如果我在自己的構造函數中實例化一個對象,會發生什麼?
- 29. 如果我在子進程中使用wait()會發生什麼?
- 30. 如果我在XCODE中重命名文件會發生什麼?
你是什麼意思?你可以發佈代碼示例嗎?或者說明你想達到什麼目的? –
@ JB Niaet:這個問題在接受採訪時問道。我回答說我們可以編寫,但容器不按照servlet的生命週期來處理該方法。我想檢查這個答案是否正確 – Raj