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用户看到具体页面。
1.1(Spring MVC学习笔记)初识SpringMVC及SpringMVC流程的更多相关文章
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
- 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 ...
- Spring MVC学习笔记--认识SpringMVC
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...
随机推荐
- D. Sorting the Coins
Recently, Dima met with Sasha in a philatelic store, and since then they are collecting coins togeth ...
- angular js自定义service的简单示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 几种list集合的区别
SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector.ArrayList和LinkedList.有关这些List类的性能差别是一个经常被问及的问题.在这 ...
- bzoj 2425 [HAOI2010]计数 dp+组合计数
[HAOI2010]计数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 451 Solved: 289[Submit][Status][Discus ...
- oracle获取主机服务器IP
--要获取服务器端的IP :: SYS@XXX> select utl_inaddr.get_host_address from dual; GET_HOST_ADDRESS --------- ...
- jQuery操纵DOM
一.基本操作 1.html() - 类似于原生DOM的innerHTML属性 *获取 - html(); *设置 - html("html代码"); 2.val() - 类似于原生 ...
- 【poj3734】矩阵乘法
题解: 若当前有i个格子.2个是偶数的方案数为a[i]1个是偶数的方案数为b[i]0个是偶数的方案数为c[i] a[i+1]=2*a[i](i+1染成黄或蓝)+b[i](把奇数变为偶数)b[i+1]= ...
- c:forEach 如何输出序号
关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...
- mysql常用函数示例
CREATE TABLE `orders` ( `OrderId` INT(10) NOT NULL AUTO_INCREMENT COMMENT '编号', `ProductName` VARCHA ...
- 【 Linux 】I/O工作模型及Web服务器原理
一.进程.线程 进程是具有一定独立功能的,在计算机中已经运行的程序的实体.在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6) ...