springmvc—handlermapping三種映射方式
springmvc—handlermapping三種映射
handlermapping負(fù)責(zé)映射中央處理器轉(zhuǎn)發(fā)給controller的映射策略,簡單說就是控制中央處理器的請求觸發(fā)哪一個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)的不存在的時候,配置的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
控制類的類名控制器,訪問時類名首字母需要小寫,需要加入.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的首字母小寫類名訪問。
對handlermapping的理解
handlerMapping:DispatcherServlet通過handlerMapping,為請求的url指向?qū)?yīng)的controll,也就是在瀏覽器地址欄輸入url請求之后,servlet.xml的<bean>節(jié)點(diǎn)會把請求映射到到對應(yīng)的controll
例如


用戶在輸入hehe之后,AbcControll就會被調(diào)用到
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)反向代理的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)反向代理的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Spring(二):Spring通過IOC來創(chuàng)建對象
下面小編就為大家?guī)硪黄斦凷pring對IOC的理解(推薦篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-07-07
Java?Spring?boot日期和時間統(tǒng)一設(shè)置三種方法
時間和日期的統(tǒng)一設(shè)置在項(xiàng)目中經(jīng)常是會遇到的,下面這篇文章主要給大家介紹了關(guān)于Java?Spring?boot日期和時間統(tǒng)一設(shè)置的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
java配置多個過濾器優(yōu)先級以及幾個常用過濾器操作
這篇文章主要介紹了java配置多個過濾器優(yōu)先級以及幾個常用過濾器的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
新手小白入門必學(xué)JAVA面向?qū)ο笾鄳B(tài)
說到多態(tài),一定離不開其它兩大特性:封裝和繼承,下面這篇文章主要給大家介紹了關(guān)于新手小白入門必學(xué)JAVA面向?qū)ο笾鄳B(tài)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
Java?C++刷題leetcode1106解析布爾表達(dá)式
這篇文章主要為大家介紹了Java?C++刷題leetcode1106解析布爾表達(dá)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

