1、基于XML Schema、Controller接口的spring mvc简单例子

1》创建一个动态Web项目,选择同时创建web.xml文件

2》在WEB-INF/lib中粘贴spring框架jar包,同时粘贴commons-logging-1.2.jar、servlet-api.jar(Tomcat的安装libs中可以找到)

3》编写核心控制器HelloController.java

package com.lfy.controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;/*** HelloController是一个实现Controller接口的控制器* 可以处理一个单一的请求动作* @author lfy* HttpServletRequest、HttpServletResponse的引入需要Tomcat的servlet-api.jar* 在构建路径中将其添加为外部jar即可。*/
public class HelloController implements Controller {private static final Log log=LogFactory.getLog(HelloController.class);/*** 该方法的参数对应请求的HttpServletRequest和HttpServletResponse。* 该方法必须返回一个包含视图名或模型的ModelAndView对象。*/@Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {log.info("handleRequest()被调用");ModelAndView mv=new ModelAndView();//添加模型数据,可以是任意的pojo对象mv.addObject("message","Hello World!");//设置逻辑视图名,视图解析器会根据名字解析到具体的视图页面mv.setViewName("/WEB-INF/content/welcome.jsp");//返回ModeAndView对象return mv;}
}

4》编写web.xml、springmvc-config.xml

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>springMVCTest-1.0.0</display-name><!-- 定义springMVC的前端控制器  --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- 让springMVC的前端控制器拦截所有请求  --><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

也可以将springmvc-config.xml文件放置在类路径下,此时配置的方式为:

<param-value>classpath*:config/springMVC/springmvc-config.xml</param-value>

springmvc-config.xml

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><!-- 配置Handle,映射"/hello"请求 --><bean name="/hello" class="com.lfy.controller.HelloController"/><!-- 处理映射器将bean的name作为url进行查找,需要在配置Handler时指定name(即url) --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- SimpleControllerHandlerAdapter是一个处理器适配器,所有处理器适配器都要实现HandlerAdapter接口 --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>

5》添加welcome.jsp简单返回页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
</head>
<body>${requestScope.message}
</body>
</html>

6》运行

2、基于注解的的spring mvc简单例子。在上面的例子上,进行修改。

1》HelloController.java

package com.lfy.controller;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;/*** 最简单的基于注解的springMVC* @author lfy**/
@Controller
public class HelloController {private static final Log log=LogFactory.getLog(HelloController.class);@RequestMapping(value="/HelloController/hello")public ModelAndView hello() {log.info("hello()被调用");ModelAndView mv=new ModelAndView();//添加模型数据,可以是任意的pojo对象mv.addObject("message","Hello World!");//设置逻辑视图名,视图解析器会根据名字解析到具体的视图页面mv.setViewName("/WEB-INF/content/welcome.jsp");//返回ModeAndView对象return mv;}
}

2》springmvc-config.xml

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- spring可以自动扫描base-package下面的包或者子包下的java文件,如果扫描到有spring的相关注解的类,则把这些类注册为spring的bean --><context:component-scan base-package="com.lfy.controller"/><!-- 配置annotation类型的处理映射器  --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/><!-- 配置annotation类型的处理器适配器   --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>

3》运行

 3、springMVC核心4类配置

配置文件总体上有4类配置:springmvc前端控制器、处理器映射器、处理器适配器、视图解析器。

前端控制器配置:
      第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析

第二种:/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析,如使用<mvc:default-servlet-handler/>。
  使用此种方式可以实现 RESTful风格的url。

处理器映射器:
     非注解处理器映射器(了解)
     注解的处理器映射器(掌握)
     对标记@Controller类中标识有@RequestMapping的方法进行映射。在@RequestMapping里边定义映射的url。使用注解的映射器不用在xml中配置url和Handler的映射关系。

处理器适配器:
     非注解处理器适配器(了解)
     注解的处理器适配器(掌握)
     注解的处理器映射器和注解的处理器适配器是配对使用。不能非注解的映射器和注解的适配器使用。

<!--使用<mvc:annotation-driven>,默认还加载了很多参数绑定的方法-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--可替代以下的映射器、适配器的注解配置声明-->
<!-- 配置annotation注解类型的处理映射器  -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 配置annotation注解类型的处理器适配器   -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

视图解析器:

主要是了解前缀、后缀的作用。

4、springMVC的一般运行步骤

第一步:发起请求到前端控制器(DispatcherServlet)
    第二步:前端控制器请求处理器映射器HandlerMapping查找Handler
            可以根据xml配置、注解进行查找
    第三步:处理器映射器HandlerMapping向前端控制器返回Handler
    第四步:前端控制器调用处理器适配器去执行Handler
    第五步:处理器适配器去执行Handler
    第六步:Handler执行完成给处理器适配器返回ModelAndView
    第七步:处理器适配器向前端控制器返回ModelAndView
    第八步:前端控制器请求视图解析器去解析视图
           根据逻辑视图名解析成真正的视图(jsp)
    第九步:视图解析器向前端控制器返回view
    第十步:前端控制器进行视图渲染
           数据填充到request域
    第十一步:前端控制器向用户响应结果。

转载于:https://www.cnblogs.com/ZeroMZ/p/11374398.html

Spring MVC-学习笔记(1)认识spring mvc相关推荐

  1. 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject

    本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...

  2. Spring框架学习笔记05:Spring AOP基础

    文章目录 一.Spring AOP (一)AOP基本含义 (二)AOP基本作用 (三)AOP与OOP (四)AOP使用方式 (五)AOP基本概念 任务:骑士执行任务前和执行任务后,游吟诗人唱赞歌 (一 ...

  3. Spring框架学习笔记06:Spring JdbcTemplate入门

    文章目录 一.JdbcTemplate概述 (一)JdbcTemplate作用 (二)JdbcTemplate操作数据库常用方法 二.数据库连接池 (一)连接池原理 (二)常见数据库连接池 1.DBC ...

  4. Spring MVC 学习笔记一 HelloWorld

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

  5. Spring MVC 学习笔记 对locale和theme的支持

    Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...

  6. springaop事务逻辑原理_太狠了!阿里大牛手写的Spring核心面试笔记:IOC+AOP+MVC+事务...

    Spring作为现在最流行的java 开发技术,其内部源码设计非常优秀.如果你不会Spring,那么很可能面试官会让你回家等通知. Spring是什么? 有一个工地,几百号人在用铁锹铲子挖坑. 如果开 ...

  7. Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客

    Spring MVC 学习总结(一)--MVC概要与环境配置 目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Maven新 ...

  8. Spring.NET学习笔记——前言

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及ASP.NET扩展等等.Sprin ...

  9. Spring Boot学习笔记-基础(2)

    Spring Boot学习笔记-基础(2) Spring Boot 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 – 使用嵌入式的Servlet容器,应用无需打成WAR包 – st ...

  10. Spring Boot学习笔记(1)

    文章目录 Spring Boot学习笔记(1) Spring Boot 整合 JSP Spring Boot HTML Thymeleaf 常用语法 Spring Boot 数据校验 Spring B ...

最新文章

  1. mysql查看修改记录_(转)MySql中监视增删改查和查看日志记录
  2. maya绑定控制器在大纲里是灰色的_3dsmax绑定转maya ADV插件
  3. Day20:绑定方法与非绑定办法、多态和多态性
  4. STM32H743+Cube-Keil上移植RTX5实时系统
  5. springboot报告如下一个异常
  6. 如何还原已经推送到远程分支的合并提交?
  7. UIPIckerView现实城市选择
  8. HTML5多文件上传插件----zyUpload
  9. SpringSecurity前后端分离
  10. 同事是竞合关系不是零和关系
  11. windows MSOCache删除
  12. iphone12文件管理连接服务器,iPhone手机打开服务器功能,和Windows电脑互传文件方法...
  13. java tld文件配置_Java Web应用因tld文件损坏出现的错误
  14. mac下hadoop环境的搭建以及碰到的坑点
  15. 关于安卓机型写串码 改串码 端口开启和基带qcn等一些经验
  16. 奇安信行业安全研究中心
  17. Android如何快速创建启动动画
  18. Docker学习--修改阿里云镜像
  19. 在springboot整合mybatis遇到的数据库连接不上问题解决
  20. 程序员职场规划之走向技术管理-安晓辉-专题视频课程

热门文章

  1. error: ‘PRIO_PROCESS’ undeclared
  2. 做出产品不难,做好产品必须高手
  3. 入住互联网酒店平台的体验
  4. “一沙一世界”的感悟
  5. 管理感悟:如何改造代码
  6. fork的写时复制1
  7. laravel 任务队列_Laravel 队列系统实现及使用教程
  8. 小米6twrp最新第三方rec_小米5(gemini:双子座)刷机
  9. linux 查看硬盘的uuid_ubuntu16.04 挂载新硬盘
  10. 青海师大有没有计算机系,计算机专业选择:北交、重邮实力强劲,青海师大性价比不错...