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";
    }
}

猜你喜欢

转载自www.cnblogs.com/accc111/p/11449811.html