javajavax。面孔。网络应用。FacesServlet在HTTP上工作?
javax。面孔。网络应用。FacesServlet。java没有如下方法
doGet(), if the servlet supports HTTP GET requests
doPost(), for HTTP POST requests
doPut(), for HTTP PUT requests
doDelete(), for HTTP DELETE requests
它唯一的have service()方法
doGet()/doPost()/doPut()/doDelete()方法仅特定于javax。servlet。http。HttpServlet。java类
javax。servlet。http。HttpServlet。java被扩展为通过HTTP协议为j2ee web应用程序进行通信。 而javax。面孔。网络应用。FacesServlet。java还用于通过HTTP进行j2ee web应用程序通信
我的问题是JSF应用程序在javax中如何通过HTTP进行通信。面孔。网络应用。FacesServlet。java没有特定于HTTP的方法吗
# 1 楼答案
那些
HttpServlet#doXxx()
方法只是一种抽象。不使用它们并不意味着servlet不使用HTTP(此外,如果这是真的,servlet将不会首先被调用)如果servlet只覆盖} 确定实际使用的HTTP方法。这种方法可以避免程序员在所有
Servlet#service()
方法,那么这就意味着servlet对所有HTTP方法都有一个全局捕获点。如果有必要,它仍然可以通过^{doXxx()
方法上复制粘贴相同的代码如果您阅读^{} source code ,您将发现下面的块,其中确定了HTTP方法(行号与JSF2.2API匹配):
基本上,实际的HTTP方法只与
FacesServlet
相关,以确定它是否是受支持的方法。如果是,则servlet将继续以相同的方式处理HTTP请求,而不管使用何种方法