一、Spring MVC

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

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

二、第一个Spring MVC 

  2.1首先需要添加jar包

    

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

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5. http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6. version="3.1"
  7. metadata-complete="true">
  8. <display-name>SpringMVC</display-name>
  9. <welcome-file-list>
  10. <welcome-file>index.html</welcome-file>
  11. <welcome-file>index.htm</welcome-file>
  12. <welcome-file>index.jsp</welcome-file>
  13. <welcome-file>default.html</welcome-file>
  14. <welcome-file>default.htm</welcome-file>
  15. <welcome-file>default.jsp</welcome-file>
  16. </welcome-file-list>
  17.  
  18. <!-- 配置前端控制器 -->
  19. <servlet>
  20. <servlet-name>springmvc</servlet-name>
  21. <servlet-class >
  22. org.springframework.web.servlet.DispatcherServlet
  23. </servlet-class>
  24. <!-- 初始化时加载配置文件,该配置文件是在src目录下创建的。 -->
  25. <init-param>
  26. <param-name>contextConfigLocation</param-name>
  27. <param-value>classpath:springmvc-config.xml</param-value>
  28. </init-param>
  29. <!-- 当前servlet与容器一起加载 -->
  30. <load-on-startup>1</load-on-startup>
  31. </servlet>
  32. <!-- 所有请求都会被前端控制器拦截-->
  33. <servlet-mapping>
  34. <servlet-name>springmvc</servlet-name>
  35. <url-pattern>/</url-pattern>
  36. </servlet-mapping>
  37. </web-app>

控制类:需要实现Controller接口

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

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

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. ${msg}
  11. </body>
  12. </html>

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

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

1.1(Spring MVC学习笔记)初识SpringMVC及SpringMVC流程的更多相关文章

  1. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  2. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  3. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  4. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  5. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  6. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  7. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  8. Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】

    Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...

  9. Spring MVC学习笔记--认识SpringMVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...

随机推荐

  1. D. Sorting the Coins

    Recently, Dima met with Sasha in a philatelic store, and since then they are collecting coins togeth ...

  2. angular js自定义service的简单示例

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 几种list集合的区别

    SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector.ArrayList和LinkedList.有关这些List类的性能差别是一个经常被问及的问题.在这 ...

  4. bzoj 2425 [HAOI2010]计数 dp+组合计数

    [HAOI2010]计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 451  Solved: 289[Submit][Status][Discus ...

  5. oracle获取主机服务器IP

    --要获取服务器端的IP :: SYS@XXX> select utl_inaddr.get_host_address from dual; GET_HOST_ADDRESS --------- ...

  6. jQuery操纵DOM

    一.基本操作 1.html() - 类似于原生DOM的innerHTML属性 *获取 - html(); *设置 - html("html代码"); 2.val() - 类似于原生 ...

  7. 【poj3734】矩阵乘法

    题解: 若当前有i个格子.2个是偶数的方案数为a[i]1个是偶数的方案数为b[i]0个是偶数的方案数为c[i] a[i+1]=2*a[i](i+1染成黄或蓝)+b[i](把奇数变为偶数)b[i+1]= ...

  8. c:forEach 如何输出序号

    关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...

  9. mysql常用函数示例

    CREATE TABLE `orders` ( `OrderId` INT(10) NOT NULL AUTO_INCREMENT COMMENT '编号', `ProductName` VARCHA ...

  10. 【 Linux 】I/O工作模型及Web服务器原理

    一.进程.线程     进程是具有一定独立功能的,在计算机中已经运行的程序的实体.在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6) ...