我对servlet和spring mvc有基本的了解。但是我不知道在spring mvc中是否有servlet的用法。在spring mvc中,我们有控制器类。我的想法是在spring mvc中使用servlet作为控制器。如果我说错了,请纠正我。
发布于 2016-01-13 20:56:06
是的,你是完全正确的。Servlet在Spring-MVC中使用。在Spring-MVC中,当您编写@Controller之类的注释时,您间接地使用了一个名为Dispatcher Servlet的Servlet。Dispatcher Servlet定义在web.xml文件中,带有属性和类名,映射到.jsp页面和控制器部分。
发布于 2016-01-13 20:41:29
与When to use Servlet or @Controller相关/重复。这个问题是不一样的,但你可以理解这个问题的解释:
如果您是对学习这门语言感兴趣的学生,那么我现在还是继续使用servlet。只使用servlet编写web应用程序是可能的,但在实践中,您可能也希望使用JSP。
JSP是一种编写servlet的便捷方法,它允许您混合使用html和脚本元素(尽管建议避免在jsp中使用Java代码,而应使用标记和el表达式)。在幕后,它将被编译为servlet,但它避免了您必须使用大量混乱的print语句。
对servlet和JSP至少有一个基本的了解是很重要的,Spring MVC是构建在servlet之上的众多框架中的一个,它试图使编写web应用程序的任务变得更容易一些。基本上,所有请求都映射到充当前端控制器的DispatcherServlet。
然后,DispatcherServlet将调用其注释与传入请求相匹配的控制器。这比必须自己在web.xml中编写这些映射更简洁(尽管现在使用Servlet3.0可以注释servlet )。但是你也可以获得许多其他的好处,比如将表单字段映射到一个对象,使用jsr303注解验证该对象,将输入和输出映射到xml或json等等。
值得注意的是,有太多的竞争框架构建在servlet之上。Spring MVC是最流行的一种,所以它是一个不错的选择。
发布于 2021-11-19 06:09:48
控制器不是Servlet!控制器是不扩展HttpServlet的普通Spring MVC bean。相反,Spring拥有的是一个名为DispacherServlet的HttpServlet自定义扩展。查看DispacherServlet的源代码,您可以看到类的层次结构是:DispatcherServlet extends FrameworkServlet FrameworkServlet extends HttpServletBean HttpServletBean extends HttpServlet→→。
与任何其他Servlet一样,DispatcherServlet是在web.xml中声明的。它处理所有传入的HTTP请求。它被称为前端控制器,它在应用程序中提供单一的入口点。它通过将请求委托给Spring MVC控制器的附加组件来负责请求处理,这些组件不扩展HTTP Servlet API。
请看下图

在这张图片中,DispacherServlet是唯一的HttpServlet。HandlerMapping和ViewResolver都是Spring MVC bean。
https://stackoverflow.com/questions/34763810
复制相似问题