Spring MVC篇一、搭建Spring MVC框架

本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容。

一、项目结构

Struts + Spring + Hibernate SSH

SpringMVC + Spring + Mybatis(Hibernate)

SpringMVC的核心组件
    DispatcherServlet(控制器,请求的入口)
    HandlerMapping(控制器,请求派发)
    Controller(控制器,请求处理流程)
    ModelAndView(模型,封装了业务处理的结果)
    ViewResovler(视图处理器)
    
Spring MVC处理流程
    1--浏览器向spring发出请求,请求交给前端控制器DispatcherServlet
    2--控制器通过HandlerMapping找到相应的Controller组件处理请求
    3--执行Controller组件约定的方法处理请求,在约定的方法中调用模型组件完成业务处理
        约定方法可以返回一个ModelAndView对象,封装了处理结果数据和视图名称信息
    4--控制器接收ModelAndView之后,调用ViewResolver组件,
        定位View(JSP)并传递数据信息,生成响应界面结束
        
Spring MVC的 Hello world!
    1--导入jar包
        commons-collections4-4.0.jar
        commons-dbcp2-2.1.1.jar
        commons-logging-1.2.jar
        commons-pool2-2.4.2.jar
        jstl-1.2.jar
        junit-4.10.jar
        mysql-connector-java-5.1.25-bin.jar
        spring-beans-3.2.8.RELEASE.jar
        spring-context-3.2.8.RELEASE.jar
        spring-context-support-3.2.8.RELEASE.jar
        spring-core-3.2.8.RELEASE.jar
        spring-expression-3.2.8.RELEASE.jar
        spring-jdbc-3.2.8.RELEASE.jar
        spring-tx-3.2.8.RELEASE.jar
        spring-web-3.2.8.RELEASE.jar
        spring-webmvc-3.2.8.RELEASE.jar
        standard-1.1.2.jar
    
    2--创建主配置文件
        默认情况下,Spring MVC会自动加载WEB-INF/(servlet-name)-servlet.xml
                                                Dispatcher-servlet
    3--在web.xml文件中配置控制器DispatcherServlet
            <servlet>
                <servlet-name>DispatcherServlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!-- <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>location</param-value>
                </init-param> -->
                <!-- 提高web容器处理该servlet的优先级 -->
                <load-on-startup>1</load-on-startup>
            </servlet>
        
            <servlet-mapping>
                <servlet-name>DispatcherServlet</servlet-name>
                <!-- /* 代表所有的请求都要经过我这个DispatcherServlet控制器 -->
                <!-- <url-pattern>/</url-pattern> -->
                <!-- *.action代表所有的后缀为.action的请求都要经过经过DispatcherServlet控制器 -->
                <url-pattern>*.action</url-pattern>
            </servlet-mapping>
    4--创建并配置HandlerMapping组件
        public class HelloWorldController implements Controller {
            @Override
            public ModelAndView handleRequest(HttpServletRequest request,
                    HttpServletResponse response) throws Exception {
                //业务逻辑
                System.out.println("hello world!");
                return new ModelAndView("helloworld");// /WEB-INF/helloworld/helloworld.jsp
            }
        }
        <bean id="helloWorldController" class="com.springmvc.controller.HelloWorldController"></bean>
    5--配置Spring MVC的视图解析器
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/helloworld/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    6--配置请求映射处理工具
        <!-- 映射处理器组件(控制器的范畴) -->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <!-- 意思是说, /helloworld.action这个请求过来了,就调用helloWorldController名称的Bean处理请求-->
                    <prop key="/helloworld.action">helloWorldController</prop>
                </props>
            </property>
        </bean>
        
    7--测试:访问地址是:http://localhost:8888/spring-MVC-day06/helloworld.action

原文地址:https://www.cnblogs.com/zy19930408/p/4923712.html