博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC笔记系列(2)——@RequestMapping请求映射物理视图解析
阅读量:6430 次
发布时间:2019-06-23

本文共 2134 字,大约阅读时间需要 7 分钟。

hot3.png

上一篇的例子介绍了如何构建一个springMVC的请求映射的方法。但是@RequestMapping不仅可以修饰控制器类的方法,还可以可以修饰控制器类本身,它对请求的影响是:请求url的分段。

还是看一个例子吧。

假如现在有一个请求页面index2.jsp。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%>
RequestMapping Test
c1/m1
c1/m2
c1/m3

另有3个响应页面robot_baymax1.jsp、robot_baymax2.jsp、robot_baymax3.jsp在webapp的views文件夹下。

160920_NWtx_1156339.png

现在我们要做的就是用springMVC的DispatcherServlet来处理 请求页面的请求 到 响应页面的映射。

关于映射的详细过程请看上一篇。

springmvc.xml配置文件。(本文出自开源中国happyBKs的博客文章:http://my.oschina.net/u/1156339/blog/411861)

重点来了,我重新构造一个控制器类,来处理这种多段的请求。

定义控制器类RobotHandler。

@RequestMapping除了修饰方法,还可以来修饰类

类定义处:提供初步的请求映射信息。相对于web应用的根目录

方法定义处:进一步提供细分的映射信息。相对于类定义处的URL。若类定义处没有标注@RequestMapping,则方法处的@RequestMapping直接对应于web应用的根目录。

这里做个罗列,可能看得更清楚:

请求:(网站域名+web应用名)web应用根目录+类定义处@RequestMapping+方法定义处@RequestMapping

映射到

物理视图:webapp根目录+springmvc.xml配置的prefix+ 控制器方法的返回值 +springmvc.xml配置的sufix

这里的话是

请求:http://localhost:8080/mymvc/c1/m1

映射到

物理视图webapp/views/robot_baymax1.jsp就通过控制器上的

映射过程是:DispatchServlet在截获请求后,@RequestMapping提供额映射信息确认请求所对应对的处理方法。

package com.happyBKs.springmvc.handlers;import java.lang.annotation.Retention;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/*1.@RequestMapping除了修饰方法,还可以来修饰类类定义处:提供初步的请求映射信息。相对于web应用的根目录方法定义处:进一步提供细分的映射信息。相对于类定义处的URL。若类定义处没有标注@RequestMapping,则方法处的@RequestMapping直接对应于web应用的根目录请求:(网站域名+web应用名)web应用根目录+类定义处@RequestMapping+方法定义处@RequestMapping映射到物理视图:webapp根目录+springmvc.xml配置的prefix+ 控制器方法的返回值 +springmvc.xml配置的sufix这里的话是请求:http://localhost:8080/mymvc/c1/m1映射到物理视图webapp/views/robot_baymax1.jsp就通过控制器上的映射过程是:DispatchServlet在截获请求后,@RequestMapping提供额映射信息确认请求所对应对的处理方法。*/@RequestMapping("/c1")@Controllerpublic class RobotHandler {		@RequestMapping("/m1")	String handle1()	{		return "robot_baymax1";	}		@RequestMapping("/m2")	String handle2()	{		return "robot_baymax2";	}			@RequestMapping("/m3")	String handle3()	{		return "robot_baymax3";	}}

转载于:https://my.oschina.net/happyBKs/blog/411861

你可能感兴趣的文章
最新整理知识结构图
查看>>
linux安装mysql
查看>>
flask 2 进阶
查看>>
sentences in movies and teleplays[1]
查看>>
【20181023T1】战争【反向并查集】
查看>>
win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
查看>>
iOS9 未受信任的企业级开发者
查看>>
paper 40 :鲁棒性robust
查看>>
优化MySchool数据库(事务、视图、索引)
查看>>
使用笔记:TF辅助工具--tensorflow slim(TF-Slim)
查看>>
大话设计模式读书笔记3——单例模式
查看>>
实验三
查看>>
Vue 项目构建
查看>>
[Ruby on Rails系列]2、开发环境准备:Ruby on Rails开发环境配置
查看>>
android studio adb
查看>>
框架源码系列二:手写Spring-IOC和Spring-DI(IOC分析、IOC设计实现、DI分析、DI实现)...
查看>>
asp.net编译 懒人脚本
查看>>
二分答案经典入门题:)
查看>>
为什么你需要将代码迁移到ASP.NET Core 2.0?
查看>>
Servlet的多线程和线程安全
查看>>