当前位置: 首页 > 工具软件 > xmlweb > 使用案例 >

SpringMVC配置文件web.xml和springmvc-config.xml

微生宝
2023-12-01

web.xml中配置的DispatcherServlet。
    该servelt会在服务启动的时候立即加载,并且在加载时需要一个springMVC配置文件,默认情况下,会去应用程序文件夹的web-info下找[servlet-name].xml文件,也可以把springMVC配置文件放到程序文件夹的任何地方,用init-param描述,contextConfigLocation描述的就是配置文件所在位置,这样DispatcherServlet会去加载springmvc-config.xml文件,并根据该文件信息创建一个WebApplicationContext容器对象,也成为上下文环境。这个对象继承与ApplicationContext容器,他的初始化与BeanFactory、ApplicationContext有所区别,因为WebApplicationcontext需要ServletContext实例,也就是说他必须在拥有Web容器的前提下才能完成启动SpringWeb应用上下文的工作。有了WebApplicationcontext,就可以使用spring的IOC和AOP等其他功能了。
  

 <?xml version="1.0" encoding="utf-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <!-- 定义springMvc的前端控制器 -->
        <servlet>
            <!-- 这段配置就是在启动服务加载springmvc的disservlet ,初始化了参数,就我画那部分-->
            <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>
        </servlet>
        <!-- 让springMVC的前端控制器拦截所请求 -->
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>


DispatcherSerlet是前端控制器,核心功能是分发请求,分发给对应的java类,在springMVC中称为Handle
spring2.5之前控制器唯一的方法就是实现org.springframework.web.servlet.mvc.Controller接口,并且只能只处理单一动作的单一请求spring2.5之后控制器可以支持注解的方式,并且无需实现任何接口,可以支持同时处理多个请求.

基于实现Controller接口的控制器的web应用,配置springmvc-config.xml。

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <!-- 配置Handel,映射"/hello"请求 -->
        <bean name="/hello" class="org.fkit.controller.HelloController"/>
        <!-- 处理映射器将bean的name作为url进行查找,需要在配置Handel时指定name(即url) -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
        <!-- SimpleControllerHandlerAdapter是一个处理器适配器,所有处理器适配器都要实现HandlerAdapter接口,-->
        <!--通过适配器实现对handlReqeust的调用 -->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
        <!-- 视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>


基于注解的控制器的web应用,配置springmvc-config.xml。

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans                             
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd        
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        http://www.springframework.org/schema/context                            
        http://www.springframework.org/schema/context/spring-context-4.2.xsd">

    <!-- spring 可以自动扫描base-pack下面的包或者子包下面的java文件,如果扫描到spring的相关注解类,则把这些类注册为spring的bean -->
    <context:component-scan base-package="org.fkit.controller" />
    <!-- 配置annotation类型的处理器映射 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <!-- 配置annotation类型的处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

视图解析器如果配置前缀和后缀,调用视图时会自动拼接前缀和后缀
 

<!-- 视图解析器 -->
    <bean id = "viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <!-- 前缀 -->
        <property name="prefix">
            <value>/WEB-INF/content/</value>
        </property>
        <!-- 后缀 -->
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

 

 类似资料: