springmvc—handlermapping三種映射方式
springmvc—handlermapping三種映射
handlermapping負(fù)責(zé)映射中央處理器轉(zhuǎn)發(fā)給controller的映射策略,簡單說就是控制中央處理器的請(qǐng)求觸發(fā)哪一個(gè)controller。
handlermapping的配置也是在springmvc的配置文件中。
三種映射方式
1.BeanNameUrlHandlerMapping(默認(rèn))
按照controller的name來映射尋找controlller,它是默認(rèn)存在的。
<!-- 配置controller --> <bean id="testController" name="/hello.do" class="com.roy.controller.TestController"/> <!-- 按照controller的name來映射尋找controlller,默認(rèn)存在的 --> <beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
2.SimplerUrlHandlerMapping
使用簡單url映射,與默認(rèn)的映射可以各自獨(dú)立存在,但是默認(rèn)的不存在的時(shí)候,配置的controller不能使用。
可以使用此映射來分類配置controller和配置url的各自職責(zé)
<!-- 配置controller -->
<bean id="testController" class="com.roy.controller.TestController"/>
<!-- 按照url來映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">testController</prop>
</props>
</property>
</bean>
3.contraollerClassNameHandlerMapping
控制類的類名控制器,訪問時(shí)類名首字母需要小寫,需要加入.do,直接使用controller的首字母小寫類名訪問
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
controller中的代碼
package com.roy.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class TestController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("hello controller");
return new ModelAndView("index");
}
}
三種hanlermapping的配置
- 第一種是直接默認(rèn)存在的,可以不需要在配置文件中配置;
- 第二種可以使用此映射來分類配置controller和配置url 的各自職責(zé);
- 第三種直接使用controller的首字母小寫類名訪問。
對(duì)handlermapping的理解
handlerMapping:DispatcherServlet通過handlerMapping,為請(qǐng)求的url指向?qū)?yīng)的controll,也就是在瀏覽器地址欄輸入url請(qǐng)求之后,servlet.xml的<bean>節(jié)點(diǎn)會(huì)把請(qǐng)求映射到到對(duì)應(yīng)的controll
例如


用戶在輸入hehe之后,AbcControll就會(huì)被調(diào)用到
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
BeanUtils.copyProperties擴(kuò)展--實(shí)現(xiàn)String轉(zhuǎn)Date
這篇文章主要介紹了BeanUtils.copyProperties擴(kuò)展--實(shí)現(xiàn)String轉(zhuǎn)Date操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
關(guān)于ResponseEntity類和HttpEntity及跨平臺(tái)路徑問題
這篇文章主要介紹了關(guān)于ResponseEntity類和HttpEntity及跨平臺(tái)路徑問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Spring Cloud之注冊(cè)中心Nacos的使用詳解
本文介紹SpringCloud Alibaba中的Nacos組件,對(duì)比了Nacos與Eureka的區(qū)別,展示了如何在項(xiàng)目中引入SpringCloud Alibaba和Nacos,并配置負(fù)載均衡,通過實(shí)際操作,驗(yàn)證了服務(wù)注冊(cè)和負(fù)載均衡的功能,感興趣的朋友一起看看吧2025-03-03
idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)
這篇文章主要介紹了idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java 實(shí)現(xiàn)限流器處理Rest接口請(qǐng)求詳解流程
在工作中是否會(huì)碰到這樣的場景,高并發(fā)的請(qǐng)求但是無法全部執(zhí)行,需要一定的限流。如果你是使用的微服務(wù)框架,比如SpringCloud,可以使用Gateway增加限流策略來解決。本篇文章是在沒有框架的情況實(shí)現(xiàn)限流器2021-11-11
基于Spring實(shí)現(xiàn)零重啟自由編排任務(wù)的定時(shí)管理器
我們發(fā)現(xiàn),我們使用Spring自帶的定時(shí)任務(wù)如果要有修改,那么就要修改代碼,然后重啟項(xiàng)目,所以本文就帶大家實(shí)現(xiàn)一個(gè)零重啟自由編排任務(wù)的定時(shí)管理器吧2023-07-07

