• 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

  • 相关阅读:
    Java开发必会的Linux命令
    为什么跳槽加薪会比内部调薪要高?
    程序员跳槽的最佳时机选择
    推荐!国外程序员整理的Java资源大全
    JavaScript最全编码规范
    window.open子窗口获取父窗口的值
    js获取iframe中的元素
    js数组合并为一个字符串
    js中for循环(原生js)
    js字符串截取为数组
  • 原文地址:https://www.cnblogs.com/zy19930408/p/4923712.html
Copyright © 2020-2023  润新知