这是一个两部分问题[请耐心等待]:
最近有人和我争辩说,Spring MVC注释@Controller是一个完全不同的品种,并且在任何时候都不会实现Servlet。
我一直在实施Servlets作为控制器,因为我还是个孩子,并没有遇到过类似的事情(至少与Java有关)。
问题1:@controller是否有任何指向servlet的链接?
问题2:是否有其他机制可以在没有servlet的情况下实现请求/响应?我知道JSP / JSF等,但核心是它们仍然是servlet所以不是那样的。
答案 0 :(得分:2)
servlet是Servlet
。
@Controller
注释引用控制器的概念,并且独立于javax.servlet.Servlet
。 Spring documentation非常明确(强调我的):
@Controller
注释表示特定类充当控制器的角色。 Spring不要求您扩展任何控制器基类或引用Servlet API。但是,如果需要,您仍然可以引用特定于Servlet的功能。
从那以后,你的标题问题的答案是:不。(你也问过#34; Java和#34;中的所有控制器,但请注意Spring!=所有Java。)
关于"其他实施请求/响应的方法的问题"太模糊了,无法回答。有无限的方法来实现任何东西。如果您愿意,可以用Java编写原始HTTP服务器。您可以完全使用与HTTP不同的协议。如果这是您的要求的一部分,您可以做一些不基于网络的事情。您可以使用不是Java的不同语言/框架。更具体。
答案 1 :(得分:1)
答案 2 :(得分:0)
问题1:@controller是否有任何指向servlet的链接?
从你在web.xml文件中配置的名为DispatcherServlet的servlet调用控制器。
您的请求首先由Dispatcher servlet处理,调度程序servlet根据ur url映射决定应该调用哪个控制器。
答案 3 :(得分:0)