`
234390216
  • 浏览: 10232262 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462597
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775446
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398309
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394994
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679961
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530847
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183872
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467783
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151371
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68128
社区版块
存档分类
最新评论
阅读更多

通过程序定义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所写)

 

0
0
分享到:
评论

相关推荐

    DispatcherServlet 和 ContextLoaderListener 区别

    DispatcherServlet通过全局ApplicationContext获取依赖的服务和数据访问组件,处理业务逻辑,而ContextLoaderListener则确保这些组件在Web应用启动时就已经准备就绪。 例如,MvcController.java文件可能就是一个...

    Spring MVC之DispatcherServlet_动力节点Java学院整理

    Spring MVC 是一个强大的Java web应用程序框架,用于构建可维护、模块化且松散耦合的Web应用程序。在Spring MVC中,DispatcherServlet起着至关重要的作用,它是整个框架的前端控制器。DispatcherServlet的主要职责是...

    浅谈springmvc的DispatcherServlet分析

    浅谈SpringMVC的...通过配置DispatcherServlet和SpringMVC的配置文件,我们可以轻松地构建基于SpringMVC的Web应用程序。同时,Controller和视图的实现也非常重要,它们共同构成了SpringMVC的核心架构。

    Spring-MVC-DispatcherServlet-Example:Maven项目

    2. `webapp/WEB-INF/web.xml` - Web应用的部署描述符,定义DispatcherServlet的初始化参数。 3. `src/main/java/com/example/controllers` - 包含Controller类,处理HTTP请求。 4. `src/main/webapp/WEB-INF/views...

    SpringMVC源码剖析(二)- DispatcherServlet的前世今生1

    - 使用模板方法模式,基础行为在父类中定义,具体行为由子类通过实现模板方法进行扩展。这种设计使得框架的扩展性和灵活性得以保证。 开放封闭原则强调,软件实体(如类、模块、函数等)应该对扩展开放,对修改...

    springmvc入门程序

    在配置文件中,我们需要定义 DispatcherServlet 并设置其映射路径。 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集...

    struts2实例小程序1

    通过实践这个小程序,你可以逐步了解Struts2的工作原理,以及如何将请求、业务逻辑和视图连接起来。记住,理解并熟练使用Struts2的配置文件、Action、结果和拦截器是掌握这个框架的关键。在实践中不断尝试和修改,将...

    Spring mvc小程序

    在Spring MVC中,Controller通常通过实现`@Controller`注解的类来定义。例如,UserTest可能就是一个处理用户相关的操作的Controller。 3. **Model**:模型层用于封装业务数据,它与数据库交互,提供数据服务。在...

    SpringframeworkMVC配置[定义].pdf

    在`user-servlet.xml`中,你可以通过`<bean>`标签定义控制器类的实例,也可以使用`@Controller`注解来标记Java类作为控制器。 - 视图解析器(ViewResolver)配置决定了如何将控制器返回的逻辑视图名映射到实际的...

    HTTP访问页面程序

    - 它通过DispatcherServlet接收HTTP请求,映射到相应的Controller方法,执行业务逻辑,最后通过ViewResolver渲染视图。 4. **处理器(Controller)**: - 控制器是接收HTTP请求的入口点,定义了请求处理逻辑,...

    Spring3 第一个程序 (常用包下载)

    3. **创建Spring配置**:创建一个XML配置文件(如`applicationContext.xml`),在这里定义bean,包括DispatcherServlet的配置、Controller类的bean等。 4. **编写Controller**:创建一个简单的Controller类,使用`@...

    springmvc_first入门程序

    要配置 Spring MVC,我们需要在 Spring 配置文件中定义 DispatcherServlet、视图解析器以及其他必要的组件,例如 Bean 定义。在现代的 Spring Boot 应用中,这些配置可以自动化,只需要添加适当的依赖和配置类。 ...

    微信社团微信小程序ssm后端源码案例设计.zip

    它通过DispatcherServlet接收请求,然后利用HandlerMapping将请求映射到相应的Controller。Controller中处理业务逻辑,调用Service层的方法,Service层则与DAO层交互,实现对数据库的操作。 MyBatis是一个轻量级的...

    小说实体书商城微信小程序+ssm后端源码案例设计带文档说明.zip

    - SpringMVC:负责接收前端请求,通过DispatcherServlet调度,将请求分发到对应的Controller处理。 - MyBatis:作为持久层框架,简化了SQL操作。通过Mapper接口和XML配置文件定义SQL语句,实现DAO层的功能。 - ...

    SSM框架的入门小程序

    通过这个SSM框架的入门小程序,初学者能够逐步掌握Java Web开发的基本流程,理解MVC架构,熟悉Spring的依赖注入,以及MyBatis的SQL映射。在实践中不断积累经验,将有助于提升开发技能,为后续更复杂的项目开发打下...

    资料-10 Spring MVC入门程序.rar

    7. **配置**:在Spring MVC中,我们通常会有一个或多个配置文件(如web.xml和Spring的配置XML)来定义DispatcherServlet、HandlerMapping、HandlerAdapter等组件,以及视图解析器和其他服务。 8. **注解驱动**:...

    Spring mvc例子程序

    通过深入研究这个“Spring MVC例子程序”,开发者不仅可以学习到 Spring MVC 的基本架构,还能了解到注解驱动的编程方式,以及如何将 Spring MVC 应用于实际项目。同时,通过调试和测试代码,可以进一步理解 Spring ...

    springmvc+mysql+mybatis入门程序

    3. **配置Spring MVC**:定义DispatcherServlet,配置视图解析器、拦截器、Controller等。 4. **配置MyBatis**:编写MyBatis的核心配置文件,指定数据源、事务管理器和Mapper映射文件位置。 5. **创建数据库和表**:...

    基于ssm实习记录微信小程序源码数据库文档.zip

    SpringMVC通过DispatcherServlet作为前端控制器,实现了请求分发。 4. **MyBatis**: MyBatis是一个轻量级的持久层框架,它允许开发者直接编写SQL语句,同时提供了强大的映射框架,将结果集自动映射到Java对象。 ...

    spring-mvc 程序结构以及调用流程

    Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过DispatcherServlet来将请求分发到对应的处理器。为了更好地理解Spring MVC的程序结构和调用流程,下面将详细介绍其核心组件及其...

Global site tag (gtag.js) - Google Analytics