Spring MVC入门

Spring MVC组成

主要有以下几个部分组成:
DispatcherServlet(本质是Servlet)

HandlerMapping(处理器映射器)

Handler(处理器)

HandlerAdapter(处理器适配器)

ViewResolver(视图解析器)

环境搭建

导入jar包

aopalliance-1.0.jar
aspectjweaver-1.8.0.M1.jar
commons-logging-1.1.3.jar
hibernate-validator-4.3.0.Final.jar
jboss-logging-3.1.0.CR2.jar
jstl-1.2.jar(标签库)
spring-aop-4.1.7.RELEASE.jar
spring-beans-4.1.7.RELEASE.jar
spring-context-4.1.7.RELEASE.jar
spring-core-4.1.7.RELEASE.jar
spring-expression-4.1.7.RELEASE.jar
spring-web-4.1.7.RELEASE.jar
spring-webmvc-4.1.7.RELEASE.jar
validation-api-1.0.0.GA.jar

编辑spring-mvc.xml,放在src目录下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation=" http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context-4.1.xsd
                            http://www.springframework.org/schema/aop
                            http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
                            http://www.springframework.org/schema/mvc
                            http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

非注解开发

    <!--非注解开发  -->
    <!--1.处理器映射器(HandlerMapping,不需要程序员开发) -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

    <!--2.处理器 (Handler),设计业务逻辑,需要程序员开发,类路径自己写 -->
    <bean name="login.action" class="com.test.controller.UserController"></bean>
    <!--和web.xml的 *.action 相对应-->

    <!--3.处理器适配器(HandlerAdapter)按照规则开发  方式一-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

    <!--3.处理器适配器(HandlerAdapter)  方式二-原生态-->
    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>

    <!--4.视图解析器,不需要程序员开发  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 补充前后缀 -->

        <!-- 前缀 -->
        <property name="prefix" value="/"></property>

        <!-- 后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean> -->
</beans>

或者注解开发(这个需要修改)

<!--注解开发  -->
<!-- 处理器映射器 处理器适配器 他们两个可以通过注解进行配置,而且一个注解即可搞定 完成 1.处理器映射器和3.处理器适配器(HandlerAdapter) 的配置 -->
<mvc:annotation-driven></mvc:annotation-driven>

<!--2.处理器 (Handler),设计业务逻辑,需要程序员开发,这里使用了spring的组件扫描,扫描路径自己写 -->
<context:component-scan base-package="com.test.controller"></context:component-scan>

<!--4.视图解析器,不需要程序员开发  -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 补充前后缀 -->

        <!-- 前缀 -->
        <property name="prefix" value="/"></property>

        <!-- 后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean> -->
</bean>
编辑web.xml,放在WEB-INF下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>day01-springmvc-01</display-name>

    <!--配置所有符合条件的请求及响应 -->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 配置springMVC的核心配置文件的路径,使其加载spring-mvc.xml -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping> 
                     <!--用于映射一个已注册的Servlet的对外访问路径-->
        <servlet-name>springMVC</servlet-name> <!--用于指定访问路径的Servlet名称-->
        <url-pattern>*.action</url-pattern>    <!-- 用于指定Servlet的访问路径,配成/*时,会报404错误,因为映射器处理不了;*时,TomCat都启动不了-->

    </servlet-mapping>


    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

</web-app>