欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springmvc不進(jìn)入Controller導(dǎo)致404的問(wèn)題

 更新時(shí)間:2022年02月22日 09:40:01   作者:叫我呂小布  
這篇文章主要介紹了springmvc不進(jìn)入Controller導(dǎo)致404的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

?

一.摘要

emmmm..

對(duì)springmvc不太熟練的情況下,如果不出意外的話,項(xiàng)目啟動(dòng)后出現(xiàn)404頁(yè)面是很煩人。

在這里,我記錄一下可能會(huì)導(dǎo)致出現(xiàn)這種情況的原因<因?yàn)橹暗奈恼陆Y(jié)構(gòu)不算是很清晰,所以這次做一些修改>

二.出現(xiàn)404的分類以及會(huì)導(dǎo)致的原因

1.啟動(dòng)項(xiàng)目后,無(wú)法訪問(wèn)主頁(yè)出現(xiàn)的404

2.1.1.查看項(xiàng)目是否啟動(dòng)成功;

2.1.2.確認(rèn)項(xiàng)目地址的正確性;

2.1.3.作為項(xiàng)目主頁(yè)的html頁(yè)面應(yīng)該放到工程的WebContent的根目錄下;

2.項(xiàng)目啟動(dòng)并且成功進(jìn)入主頁(yè)后,訪問(wèn)其他頁(yè)面出現(xiàn)的404

2.2.1. 相關(guān)操作訪問(wèn)路徑是否正確;

2.2.2. Controller層是否被注解@Controller標(biāo)注為組件;

2.2.3. springmvc配置文件中,是否配置了對(duì)@Controller標(biāo)簽的支持:<mvc:annotation-driven />;

2.2.4. springmvc配置文件中,是否配置了對(duì)Controller層的掃描: <context:component-scan base-package="controller">;

2.2.5. sprinmvc的配置文件中,視圖解析器路徑是否配置異常;

2.2.6. 檢查web.xml中的相關(guān)配置是否正確:

1.是否配置了spring的監(jiān)聽(tīng),以及正確加載spring相關(guān)配置文件

2.是否正確加載springmvc的配置文件

三.分情況詳細(xì)說(shuō)明

3.1.先附上并簡(jiǎn)單介紹一下我的工程結(jié)構(gòu)目錄圖

簡(jiǎn)單介紹一下applicationContext-*為什么會(huì)有三個(gè):

  • applicationContext-dao:  里面配置了數(shù)據(jù)源,以及對(duì)mybatis的相關(guān)支持<注意我的項(xiàng)目是ssm>
  • applicationContext-service:里面配置了事務(wù)管理
  • applicationContext-trans:  配置了對(duì)Service層的掃描

如果沒(méi)有對(duì)Service層的掃描,就無(wú)法使用到@Service標(biāo)注的組件,從而導(dǎo)致Controller中的出現(xiàn)空指針情況。

emmm,,,稍微考慮了一下,我決定把a(bǔ)pplicationContext-trans的配置截圖附上:

你看把,真的是只配置了對(duì)Service層注解的掃描

3.2.啟動(dòng)項(xiàng)目后,無(wú)法訪問(wèn)主頁(yè)出現(xiàn)404

3.2.1. 查看項(xiàng)目是否啟動(dòng)成功;

    略<sorry,沒(méi)什么可說(shuō)的>

3.2.2.確認(rèn)項(xiàng)目地址的正確性;

    略

3.2.3.作為項(xiàng)目主頁(yè)的html頁(yè)面應(yīng)該放到工程的WebContent的根目錄下;

   參照上面項(xiàng)目結(jié)構(gòu)

3.3.項(xiàng)目啟動(dòng)并且成功進(jìn)入主頁(yè)后,訪問(wèn)其他頁(yè)面出現(xiàn)404; 3.3.1.相關(guān)操作訪問(wèn)路徑是否正確;

檢查包括:

①. 頁(yè)面的請(qǐng)求路徑

②. Controller層的路徑

③. web.xml是否配置了對(duì)前端請(qǐng)求的攔截路徑<怎么這么多情況....>

截個(gè)圖,給個(gè)案例:

①. index.jsp如下

②. Controller如下

③. 前端攔截器:

注意攔截路徑:   /表示攔截一切路徑,不能是/* 

(如果你要問(wèn)為什么,抱歉,人家這么規(guī)定我也無(wú)能為力)

3.3.2.Controller層是否被@Controller標(biāo)注為組件

顧名思義,略。(如果這個(gè)都不會(huì),你該考慮一下是不是還要把demo給進(jìn)行下去了)

3.3.3.springmvc配置文件中,是否配置了對(duì)@Controller標(biāo)簽的支持:<mvc:annotation-driven />

①. <mvc:annotation-driven />我配置在了springmvc-config.xml文件中,在下面講解合適的時(shí)候我會(huì)附上代碼截圖

<為什么老是截圖?因?yàn)槲以敢?..>

②. 什么是<mvc:annotation-driven/>

相當(dāng)于注冊(cè)了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter兩個(gè)bean,配置一些messageconverter。

簡(jiǎn)單來(lái)說(shuō)就是: 提供了使用并且能夠識(shí)別@Controller注解的前提.

3.3.4.springmvc配置文件中,是否配置了對(duì)Controller層的掃描:<context:component-scan base-package=" ">

既然上面配置了對(duì)@Controller的支持,現(xiàn)在就需要配置對(duì)@Controller注解的掃描

值得注意的是(比如在我的demo里),

base-package="controller",而不是bask-package="controller.*";

3.3.5.springmvc配置文件中,是否正確配置了視圖解析器的路徑

<!-- 配置視圖解析器 -->  
<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/jsp/"/>   //value路徑配置的是jsp所在的文件夾目錄
    <property name="suffix" value=".jsp"/>            //value配置的是頁(yè)面的后綴
</bean> 

現(xiàn)在,附上springmvc配置文件springmvc-config的代碼截圖(現(xiàn)在就是合適的時(shí)候):

在這里面包括了上述說(shuō)的1.注解的支持;2.掃描@Controller注解所在包的配置;3.視圖解析器的配置

3.3.6.檢查web.xml中的相關(guān)配置是否正確

注意:我的配置文件在一個(gè)資源文件夾下,具體路徑還請(qǐng)根據(jù)自己的結(jié)構(gòu)目錄來(lái)配置

①. 是否配置了spring的監(jiān)聽(tīng),以及正確加載spring相關(guān)配置文件

//配置spring相關(guān)配置文件
<context-param>
	<param-name>contextConfigLocation</param-name>  //不可修改
	<param-value>classpath:config/spring/applicationContext-*.xml</param-value>
</context-param>
 
//配置spring監(jiān)聽(tīng)
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

附上截圖,方便查看:

②. 是否正確加載springmvc的配置文件

標(biāo)簽概念及代碼如下:

//配置servlet
<servlet>
    <servlet-name>springmvc</servlet-name>   //可以理解為剛給當(dāng)前servlet起名字,可自定義
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>//springmvc的核心處理器,不可自定義
	<init-param>
		<param-name>contextConfigLocation</param-name> //核心處理器的初始化,不可自定義
		<param-value>classpath:springmvc/springmvc-config.xml</param-value> //springmvc配置文件的目錄,根據(jù)自己結(jié)構(gòu)目錄自定義
	</init-param>
</servlet>
 
//配置servletMapping
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>  //可以理解為指定被Mapping的servlet的名稱(代碼第二行中的名稱相同)
	<url-pattern>/</url-pattern>  //配置攔截路徑,/表示全攔截
</servlet-mapping>

<url-pattern/> 攔截器路徑的配置方式包括: *.do 、*.action 、/ 

意思是分別:攔截以do、action、任意后綴或者是無(wú)后綴的前端請(qǐng)求

附上截圖,方便大家更直觀的看:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java反射機(jī)制的講解

    Java反射機(jī)制的講解

    今天小編就為大家分享一篇關(guān)于Java反射機(jī)制的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    這篇文章主要介紹了java的四種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2022-07-07
  • Springboot使用Redis中ZSetOperations實(shí)現(xiàn)博客訪問(wèn)量

    Springboot使用Redis中ZSetOperations實(shí)現(xiàn)博客訪問(wèn)量

    在日常的網(wǎng)站使用中,經(jīng)常會(huì)碰到頁(yè)面的訪問(wèn)量,本文主要介紹了Springboot使用Redis中ZSetOperations實(shí)現(xiàn)博客訪問(wèn)量,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Spring IOC創(chuàng)建對(duì)象的兩種方式

    Spring IOC創(chuàng)建對(duì)象的兩種方式

    這篇文章主要給大家介紹了關(guān)于Spring IOC創(chuàng)建對(duì)象的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 分享5個(gè)Java接口性能提升的通用技巧

    分享5個(gè)Java接口性能提升的通用技巧

    作為后端開(kāi)發(fā)人員,我們總是在編寫各種API。這些API在服務(wù)初期可能表現(xiàn)不錯(cuò),但隨著用戶數(shù)量的增長(zhǎng),一開(kāi)始響應(yīng)很快的API越來(lái)越慢,這時(shí)候你就需要考慮如何優(yōu)化你的API性能了。在這篇文章中,我總結(jié)了一些行之有效的API性能優(yōu)化技巧,希望能給有需要的朋友一些幫助
    2023-01-01
  • SpringBoot超詳細(xì)講解Thymeleaf模板引擎

    SpringBoot超詳細(xì)講解Thymeleaf模板引擎

    這篇文章主要分享了Spring Boot整合使用Thymeleaf,Thymeleaf是新一代的Java模板引擎,類似于Velocity、FreeMarker等傳統(tǒng)引擎,關(guān)于其更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-07-07
  • Java的AQS基本原理詳細(xì)分析

    Java的AQS基本原理詳細(xì)分析

    這篇文章主要介紹了Java的AQS基本原理詳細(xì)分析,AQS是Abstract Queued Synchronizer的簡(jiǎn)稱,AQS提供了一種實(shí)現(xiàn)阻塞鎖和一系列依賴FIFO等待隊(duì)列的同步器的框架,本文主要講解分析其基本原理,需要的朋友可以參考下
    2024-01-01
  • @RequestBody,@RequestParam和@Param的區(qū)別說(shuō)明

    @RequestBody,@RequestParam和@Param的區(qū)別說(shuō)明

    這篇文章主要介紹了@RequestBody,@RequestParam和@Param的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java下載文件時(shí)文件名亂碼問(wèn)題解決辦法

    Java下載文件時(shí)文件名亂碼問(wèn)題解決辦法

    我最近在開(kāi)發(fā)時(shí)遇到了文件另存為時(shí)文件名出現(xiàn)亂碼,在火狐上正常的文件名,在IE中又出現(xiàn)亂碼問(wèn)題,然后好不容易在IE下調(diào)試好了文件名亂碼問(wèn)題,在火狐下又出現(xiàn)亂碼,最后終于感覺(jué)這樣是能解決了。具體如下:
    2013-04-04
  • Spring Gateway自定義請(qǐng)求參數(shù)封裝的實(shí)現(xiàn)示例

    Spring Gateway自定義請(qǐng)求參數(shù)封裝的實(shí)現(xiàn)示例

    這篇文章主要介紹了Spring Gateway自定義請(qǐng)求參數(shù)封裝的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論