通过程序定义DispatcherServlet
以往我们在使用SpringMVC的时候都需要在web.xml中定义一个DispatcherServlet。基于Servlet3编程时我们也可以通过程序来注册DispatcherServlet,Servlet3的ServletContainerInitializer允许我们在容器启动的时候通过程序注册一些Servlet对象,Spring提供了一个实现,叫SpringServletContainerInitializer,同时对外开放了一个WebApplicationInitializer接口,如果需要通过程序来注册DispatcherServlet,我们只需自定义一个WebApplicationInitializer实现类,在其onStartup方法体中注册即可。容器启动的时候会自动调用其onStartup方法。
在下面的代码中我们自定义了一个WebApplicationInitializer实现类,并通过程序注册了DispatcherServlet。Spring也提供了WebApplicationInitializer的一个抽象实现,AbstractDispatcherServletInitializer,通过继承该抽象类,我们可以通过重写其中的方法的方式处理我们关心的某部分内容,比如可以通过重写getServletMappings方法指定servlet的映射路径;通过重写getServletFilters方法指定DispatcherServlet需要应用的Filter;也可以通过重写customizeRegistration自定义一些配置。
public class MyWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
XmlWebApplicationContext appContext = new XmlWebApplicationContext();
appContext.setConfigLocation("/WEB-INF/applicationContext-mvc.xml");
ServletRegistration.Dynamic registration = servletContext.addServlet("dispatcher", new
DispatcherServlet(appContext));
registration.setLoadOnStartup(1);
registration.setAsyncSupported(true);
registration.addMapping("/springmvc/*");
}
}
也可以选择直接继承AbstractDispatcherServletInitializer,然后实现其中的抽象方法。
(注:本文是基于Spring4.1.0所写)
相关推荐
DispatcherServlet通过全局ApplicationContext获取依赖的服务和数据访问组件,处理业务逻辑,而ContextLoaderListener则确保这些组件在Web应用启动时就已经准备就绪。 例如,MvcController.java文件可能就是一个...
Spring MVC 是一个强大的Java web应用程序框架,用于构建可维护、模块化且松散耦合的Web应用程序。在Spring MVC中,DispatcherServlet起着至关重要的作用,它是整个框架的前端控制器。DispatcherServlet的主要职责是...
浅谈SpringMVC的...通过配置DispatcherServlet和SpringMVC的配置文件,我们可以轻松地构建基于SpringMVC的Web应用程序。同时,Controller和视图的实现也非常重要,它们共同构成了SpringMVC的核心架构。
2. `webapp/WEB-INF/web.xml` - Web应用的部署描述符,定义DispatcherServlet的初始化参数。 3. `src/main/java/com/example/controllers` - 包含Controller类,处理HTTP请求。 4. `src/main/webapp/WEB-INF/views...
- 使用模板方法模式,基础行为在父类中定义,具体行为由子类通过实现模板方法进行扩展。这种设计使得框架的扩展性和灵活性得以保证。 开放封闭原则强调,软件实体(如类、模块、函数等)应该对扩展开放,对修改...
在配置文件中,我们需要定义 DispatcherServlet 并设置其映射路径。 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集...
通过实践这个小程序,你可以逐步了解Struts2的工作原理,以及如何将请求、业务逻辑和视图连接起来。记住,理解并熟练使用Struts2的配置文件、Action、结果和拦截器是掌握这个框架的关键。在实践中不断尝试和修改,将...
在Spring MVC中,Controller通常通过实现`@Controller`注解的类来定义。例如,UserTest可能就是一个处理用户相关的操作的Controller。 3. **Model**:模型层用于封装业务数据,它与数据库交互,提供数据服务。在...
在`user-servlet.xml`中,你可以通过`<bean>`标签定义控制器类的实例,也可以使用`@Controller`注解来标记Java类作为控制器。 - 视图解析器(ViewResolver)配置决定了如何将控制器返回的逻辑视图名映射到实际的...
- 它通过DispatcherServlet接收HTTP请求,映射到相应的Controller方法,执行业务逻辑,最后通过ViewResolver渲染视图。 4. **处理器(Controller)**: - 控制器是接收HTTP请求的入口点,定义了请求处理逻辑,...
3. **创建Spring配置**:创建一个XML配置文件(如`applicationContext.xml`),在这里定义bean,包括DispatcherServlet的配置、Controller类的bean等。 4. **编写Controller**:创建一个简单的Controller类,使用`@...
要配置 Spring MVC,我们需要在 Spring 配置文件中定义 DispatcherServlet、视图解析器以及其他必要的组件,例如 Bean 定义。在现代的 Spring Boot 应用中,这些配置可以自动化,只需要添加适当的依赖和配置类。 ...
它通过DispatcherServlet接收请求,然后利用HandlerMapping将请求映射到相应的Controller。Controller中处理业务逻辑,调用Service层的方法,Service层则与DAO层交互,实现对数据库的操作。 MyBatis是一个轻量级的...
- SpringMVC:负责接收前端请求,通过DispatcherServlet调度,将请求分发到对应的Controller处理。 - MyBatis:作为持久层框架,简化了SQL操作。通过Mapper接口和XML配置文件定义SQL语句,实现DAO层的功能。 - ...
通过这个SSM框架的入门小程序,初学者能够逐步掌握Java Web开发的基本流程,理解MVC架构,熟悉Spring的依赖注入,以及MyBatis的SQL映射。在实践中不断积累经验,将有助于提升开发技能,为后续更复杂的项目开发打下...
7. **配置**:在Spring MVC中,我们通常会有一个或多个配置文件(如web.xml和Spring的配置XML)来定义DispatcherServlet、HandlerMapping、HandlerAdapter等组件,以及视图解析器和其他服务。 8. **注解驱动**:...
通过深入研究这个“Spring MVC例子程序”,开发者不仅可以学习到 Spring MVC 的基本架构,还能了解到注解驱动的编程方式,以及如何将 Spring MVC 应用于实际项目。同时,通过调试和测试代码,可以进一步理解 Spring ...
3. **配置Spring MVC**:定义DispatcherServlet,配置视图解析器、拦截器、Controller等。 4. **配置MyBatis**:编写MyBatis的核心配置文件,指定数据源、事务管理器和Mapper映射文件位置。 5. **创建数据库和表**:...
SpringMVC通过DispatcherServlet作为前端控制器,实现了请求分发。 4. **MyBatis**: MyBatis是一个轻量级的持久层框架,它允许开发者直接编写SQL语句,同时提供了强大的映射框架,将结果集自动映射到Java对象。 ...
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过DispatcherServlet来将请求分发到对应的处理器。为了更好地理解Spring MVC的程序结构和调用流程,下面将详细介绍其核心组件及其...