• SpringMVC-初学习


    传统MVC模式

    全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
      通常模型对象负责在数据库中存取数据。
    View(视图)是应用程序中处理数据显示的部分。
      通常视图是依据模型数据创建的。
    Controller(控制器)是应用程序中处理用户交互的部分。
      通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
     
    SpringMVC
    大致流程如图

    需要导入一些核心jar包

     web.xml中DispatcherServlet的配置

    <servlet>
            <servlet-name>springMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springMVC.xml</param-value>
            </init-param>
            
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springMVC</servlet-name>
            <url-pattern>/</url-pattern>
            
        </servlet-mapping>

    默认会去WEB-INF下找(servlet-name)-servlet.xml

    也可以使用如下配置(文件名需要和(servlet-name)中值一样)

     <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springMVC.xml</param-value>
            </init-param>

    接下来配置SpringMVC的配置文件

    1.默认(根据Bean中name)

    2.SimpleUrlHandlerMapping(根据id)

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/a.do">my1</prop>
                    <prop key="/b.do">my2</prop>
                </props>
            </property>
        </bean>
        <bean id="my1" class="com.zhiyou100.xf.controller.MyController1">
            
        </bean>
        <bean id="my2"  class="com.zhiyou100.xf.controller.MyController2">
            
        </bean>

    3.ControllerClassNameHandlerMapping(类名除最后一个Controller小写)

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

    对应的Controller

     4.使用注解(需要额外的aop包)

            <!-- 扫描包 -->
        <context:component-scan
            base-package="com.zhiyou100.xf.controller.annotation">
        </context:component-scan>
        <!-- 开启注解 -->
        <mvc:annotation-driven />    

    controller

    @Controller
    public class MyController {
        @RequestMapping("/login.do")
        public String login(String name) {
            System.out.println("登陆");
            return "login";
        }
        @RequestMapping("/exit.do")
        public String exit(String sex) {
            System.out.println("退出");
            return "login";
            
        }
        @RequestMapping("/select.do")
        public String select() {
            System.out.println("查询");
            return "login";
        }
    }

    Springmvc的流程.

    1. 客户发出请求。http://localhost:8080/springmvc-01/my.do
    2. 到达web.xml文件中 DispatcherServlet.查看是否符合url的要求
    3. DispatcherServlet就会查询springmvc的配置文件。找HandlerMapping.

      根据bean的名称查找相应的controller.

     

      4.找到我的MyController类。执行该类中handleRequestInternal方法。

     

      5.根据返回的modelAndView在找springmvc配置文件中视图解析器。

       

      把viewName和prefix以及suffix做了一个拼接。把拼接的页面展示给客户。

    ##########################################

    通过SpringMVC来接收参数

    @Controller
    @RequestMapping("/user")
    public class MyController {
        @RequestMapping("/login.do")//对应的路径
        public String login(String name) {//参数名必须和请求参数名相同
            System.out.println("登陆");
            return "login";
        }
        @RequestMapping("/exit.do")
        public String exit(User u) {//属性名和请求参数名相同
            System.out.println("退出");
            return "login";
            
        }
        @RequestMapping("/select.do")
        public String select() {
            System.out.println("查询");
            return "login";
        }
    }
  • 相关阅读:
    浅入了解GCD 并发 并行 同步 异步 多线程
    XSD
    想在Images.xcassets 只能用 imageNamed 加载里边的素材 其他方法 你就别费老劲了
    如何在SCENEKIT使用SWIFT RUNTIME动态加载COLLADA文件
    编译 wxWidgets3.0.2 on Mac OS X Yosemite 出错?!的解决方法
    3、技术积累方面总结
    2、日常计划管理总结
    站在客户的角度考虑问题
    公司管理的一点思虑
    项目管理一定要规范阿
  • 原文地址:https://www.cnblogs.com/accc111/p/11449811.html
Copyright © 2020-2023  润新知