zoukankan      html  css  js  c++  java
  • 1.1(Spring MVC学习笔记)初识SpringMVC及SpringMVC流程

    一、Spring MVC

      Spring MVC是Spring提供的一个实现了web MVC设计模式的轻量级Web框架。

      Spring优点:网上有,此处不复述。

    二、第一个Spring MVC 

      2.1首先需要添加jar包

        

      2.2配置WEB-INF目录下的web.xml文件,如果没有直接新建一个。

      

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
      version="3.1"
      metadata-complete="true">
      <display-name>SpringMVC</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- 配置前端控制器 -->
      <servlet>
          <servlet-name>springmvc</servlet-name>
          <servlet-class >
              org.springframework.web.servlet.DispatcherServlet
          </servlet-class> 
          <!-- 初始化时加载配置文件,该配置文件是在src目录下创建的。 -->
          <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:springmvc-config.xml</param-value>
          </init-param>
          <!-- 当前servlet与容器一起加载 -->
          <load-on-startup>1</load-on-startup>
      </servlet>
      <!-- 所有请求都会被前端控制器拦截-->
      <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>

    控制类:需要实现Controller接口

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    public class FirstController implements Controller{
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
            // TODO Auto-generated method stub
            System.out.println("into modelandview");
            ModelAndView mv = new ModelAndView();//创建一个ModelAndView对象
            mv.addObject("msg", "first spring mvc");//设置属性名和属性值,
            mv.setViewName("/WEB-INF/jsp/first.jsp");//指定路径。
            return mv;
        }
    }

    在WEB-INF下新建一个jsp文件夹,在jsp文件夹下新建一个first.jsp文件。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        ${msg}
    </body>
    </html>

    在src目录下新建一个springmvc-config.xml文件。

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans     xmlns="http://www.springframework.org/schema/beans" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
             xsi:schemaLocation="  
                http://www.springframework.org/schema/beans 
                http://www.springframework.org/schema/beans/spring-beans-4.3.xsd "> 
           <!-- 配置处理器(Handle),映射/firstController请求 (Controller类)-->
           <bean name = "/firstController" class = "com.springmvc.firstmvc.FirstController"/>
           <!-- 配置映射处理器(handlerMapping) 将处理器(Handle)的name作为url进行查找 -->
           <bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
           <!-- 配置适配处理器(HandlerAdapter) 适配处理器会调用处理器(Handle)即FirstController类 -->
           <bean class = "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
           <!-- 处理器会返回一个ModelAndView,适配处理器将返回的ModelAndView交给前端控制器去处理了 -->
           <!-- 前端控制器根据ModelAndView选择一个视图解析器(ViewReslover) -->
           <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"/>
           <!-- 视图处理器解析后会将视图传递给前端控制器,前端控制对View进行渲染(将模型数据填入视图) -->
           <!-- 渲染结果会返回客户端浏览器显示 -->
    </beans>

     

    三、SpringMVC工作流程

      3.1用户发送请求,会被前端控制器(DispatcherServlet)拦截。

      3.2前端控制器拦截请求后会调用映射处理器(HandlerMapping)

      3.3映射处理器根据url寻找具体的处理器,然后将处理器对象返回给前端控制器。

      3.4前端控制器选择合适的适配处理器(HandlerAdapter)

      3.5处理适配器会调用处理器(Controller类)。

      3.6处理器执行完会返回一个ModelAndView(包含模型和视图名)。

      3.7适配处理器将ModelAndView返回给前端适配器。

      3.8前端控制器根据MdelAndView选择合适的视图解析器(ResloverView)。

      3.9视图解析器件解析的具体视图返回给前端控制器。

      3.10前端控制器将Model填充入视图。

      3.11用户看到具体页面。

  • 相关阅读:
    设计模式总结:单例模式(以及多线程、无序写入、volatile对单例的影响)
    android的WebView进度条
    三角形类内置成员函数(看看吧。。)
    VGA接口之显示彩色条
    Java I/O流操作(二)缓冲流
    oracle 单引号 双引号 连接符
    2013腾讯编程马拉松初赛(3月22)赛题及第2题代码(C++)
    Java I/O流操作(一)入门篇和System和Properties类介绍
    POJ 3264 Balanced Lineup
    成都行(二)
  • 原文地址:https://www.cnblogs.com/huang-changfan/p/10394582.html
Copyright © 2011-2022 走看看