zoukankan      html  css  js  c++  java
  • 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";
        }
    }
  • 相关阅读:
    用SQL查询方式显示GROUP BY中的TOP解决方法[转]
    三大UML建模工具Visio、Rational Rose、PowerDesign的区别
    Eclipse HTML Editor
    [转]跨平台开发:PhoneGap移动开发框架初探
    取消开机显示登陆页面
    PhoneGap开发环境搭建
    显示器不能全屏及开机慢解决方案
    调用webservice超时问题的解决[转]
    最简单的JAVA解析XML字符串方法
    适用于vue项目的打印插件(转载)
  • 原文地址:https://www.cnblogs.com/accc111/p/11449811.html
Copyright © 2011-2022 走看看