Java Web项目架构

servlet

以servlet容器(如tomcat)为基础,业务逻辑通过servlet来实现

JSP

JSP最终还是会被编译成一个servlet,可以看作为一个特殊写法的servlet。JSP解决需要输出HTML数据的servlet代码编写混乱的问题

MVC

Spring MVC通过ContextLoaderListener实现Spring IoC容器的初始化和清理工作,ContextLoaderListener实现了ServletContextListener接口,在servlet上下文初始化时初始化WebApplicationContext并且存放在ServletContext的属性中。然后使用DispatcherServlet来统一处理所有业务,DispatcherServlet需要使用到的bean由WebApplicationContext来提供。DispatcherServlet在内部实现MVC设计模式,分离控制代码、业务代码和视图代码,解决不同代码混写在同一个源文件的问题