spring-DispatcherServlet

    许多的MVC框架中,都还有一个用于调度控制的Servlet. springMVC也提供了一个名为org…….DispatcherServlet的servlet

充当前段控制器,且所有的驱动请求都围绕着DispatcherServlet来分派请求。

    DispatcherServlet是一个Servlet(它继承自HttpServlet基类),因此使用时需要将他配置在web应用的部署描述符web.xml

中,具体配置如下:(红色代码部分)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springmvc-config.xml</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

    以上是一个标准的javaEE Servlet的配置,该Servlet在web应用程序启动时立即加载,且DispatcherServlet加载时需要一个

SpringMVC的配置文件,默认情况下会去找web-inf下[servlet-name]-servlet.xml文件,如以上文件中的<servlet-name>是

springmvc,那么默认查找的就是/WEB-INF/springmvc-servlet.xml。(默认)

    当然也可以吧SpringMVC的配置文件放到项目中的任何地方,用servlet的init-param子元素描述,本例中的param-name

元素的值标识参数名称,param-value的值标识SpringMVC配置文件的路径名称。则DispatcherServlet会去找

/WEB-INF/springmvc-config.xml

    作为SpringMCV的配置文件,解析该文件并根据文件配置信息创建一个WebApplicationContext容器对象-(也成上下文环境),WebApplicationContext继承自ApplicationContext容器,他的初始化方式和BeanFactory、ApplicationContext有所区别,因为WebApplicationContext需要ServletContext实例,也就是说,必须有一个web容器的前提下才能启动Spring Web应用上下文的工作,有了WebApplicationContext容器就可以使用spring的IOC、AOP等功能了。

------------------------------------------------------------------------------------------------------

基于Controller接口的控制器

DispatcherServlet在spring中充当前端控制器的角色,他的核心功能是分发请求,请求会分发给对用的处理的java类,SpringMVC中称Handle。在Spring2.5之前,开发一个Handle唯一的方法就是实现Controller接口并实现其中的方法

ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception 

(注:Controller接口的实现类只能处理一个单一请求动作,在2.5版本之后的基于注解的控制器可以同时处理多个动作,并且无需实现任何接口,更加灵活。)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值