美好的一天!
我正在阅读Head First Servlets和JSP,它说99%的servlet都使用了HttpServlet。另外1%是什么?它说在现实世界中,99.9%的servlet都会覆盖doGet()或doPost()方法。其他0.1%是什么?或者不值得一提的是这本书为什么没有提到它?
谢谢。
答案 0 :(得分:7)
1%不使用抽象HttpServlet
类。因此,他们使用Servlet
接口而不扩展HttpServlet
。
目前在Java EE API中,只有一个Servlet
执行此操作:FacesServlet
是Java EE提供的MVC框架JavaServer Faces(JSF)背后的核心控制器。 JSF使您可以跳过所有繁琐的过程和样板代码,这是收集,转换和验证参数,更新模型值和调用特定操作方法所必需的。
但在撰写本书时,作者可能没有意识到这一点。截至目前,JSF肯定不占1%。在理论中,可以为除HTTP之外的其他协议实现Servlet
,如FTP。这不是标准Java EE API提供的,但是有一些第三方“FtpServlet”类。我相信一些Portlet API也使用非HttpServlet
类(他们只是实现Servlet
而不扩展HttpServlet
)。
关于HTTP methods,HTTP GET
和POST
旁边还有HEAD
,PUT
,OPTIONS
等。但是我认为0.1%被低估了。 HEAD
肯定是经常使用的,想想servletcontainer自己的DefaultServlet
(就像Tomcat一样)。 HEAD
在浏览器缓存请求中起着重要作用。但是当涉及到“本土”servlet时,确实GET
和POST
会引起人们的注意。
答案 1 :(得分:1)
您可以使用servlet编写FTP。这可能是其他的0.1%。
答案 2 :(得分:0)
您可以使用
protected void service(HttpServletRequest request, HttpServletResponse response)
可以处理GET和POST请求。 这只是一个附录。 =]