最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springmvc不進入Controller導致404的問題

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

?

一.摘要

emmmm..

對springmvc不太熟練的情況下,如果不出意外的話,項目啟動后出現404頁面是很煩人。

在這里,我記錄一下可能會導致出現這種情況的原因<因為之前的文章結構不算是很清晰,所以這次做一些修改>

二.出現404的分類以及會導致的原因

1.啟動項目后,無法訪問主頁出現的404

2.1.1.查看項目是否啟動成功;

2.1.2.確認項目地址的正確性;

2.1.3.作為項目主頁的html頁面應該放到工程的WebContent的根目錄下;

2.項目啟動并且成功進入主頁后,訪問其他頁面出現的404

2.2.1. 相關操作訪問路徑是否正確;

2.2.2. Controller層是否被注解@Controller標注為組件;

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

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

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

2.2.6. 檢查web.xml中的相關配置是否正確:

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

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

三.分情況詳細說明

3.1.先附上并簡單介紹一下我的工程結構目錄圖

簡單介紹一下applicationContext-*為什么會有三個:

  • applicationContext-dao:  里面配置了數據源,以及對mybatis的相關支持<注意我的項目是ssm>
  • applicationContext-service:里面配置了事務管理
  • applicationContext-trans:  配置了對Service層的掃描

如果沒有對Service層的掃描,就無法使用到@Service標注的組件,從而導致Controller中的出現空指針情況。

emmm,,,稍微考慮了一下,我決定把applicationContext-trans的配置截圖附上:

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

3.2.啟動項目后,無法訪問主頁出現404

3.2.1. 查看項目是否啟動成功;

    略<sorry,沒什么可說的>

3.2.2.確認項目地址的正確性;

    略

3.2.3.作為項目主頁的html頁面應該放到工程的WebContent的根目錄下;

   參照上面項目結構

3.3.項目啟動并且成功進入主頁后,訪問其他頁面出現404; 3.3.1.相關操作訪問路徑是否正確;

檢查包括:

①. 頁面的請求路徑

②. Controller層的路徑

③. web.xml是否配置了對前端請求的攔截路徑<怎么這么多情況....>

截個圖,給個案例:

①. index.jsp如下

②. Controller如下

③. 前端攔截器:

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

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

3.3.2.Controller層是否被@Controller標注為組件

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

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

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

<為什么老是截圖?因為我愿意...>

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

相當于注冊了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter兩個bean,配置一些messageconverter。

簡單來說就是: 提供了使用并且能夠識別@Controller注解的前提.

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

既然上面配置了對@Controller的支持,現在就需要配置對@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配置的是頁面的后綴
</bean> 

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

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

3.3.6.檢查web.xml中的相關配置是否正確

注意:我的配置文件在一個資源文件夾下,具體路徑還請根據自己的結構目錄來配置

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

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

附上截圖,方便查看:

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

標簽概念及代碼如下:

//配置servlet
<servlet>
    <servlet-name>springmvc</servlet-name>   //可以理解為剛給當前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配置文件的目錄,根據自己結構目錄自定義
	</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、任意后綴或者是無后綴的前端請求

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    這篇文章主要介紹了方法參數相關屬性params、@PathVariabl和@RequestParam用法與區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • maven中no main manifest attribute的問題解決

    maven中no main manifest attribute的問題解決

    本文主要介紹了maven中no main manifest attribute的問題解決,這個錯誤通常意味著Spring Boot應用在啟動時遇到了問題,下面就來具體介紹一下,感興趣的可以了解一下
    2024-08-08
  • Java?easyexcel使用教程之導出篇

    Java?easyexcel使用教程之導出篇

    EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單,節(jié)省內存著稱,下面這篇文章主要給大家介紹了關于Java?easyexcel使用教程之導出篇的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • java中break和continue區(qū)別及使用場合分析

    java中break和continue區(qū)別及使用場合分析

    本文力圖通過實例加使用場合詳解來引導菜鳥重新認識break和continue語句,需要的朋友可以參考下
    2014-01-01
  • 使用RequestBodyAdvice實現對Http請求非法字符過濾

    使用RequestBodyAdvice實現對Http請求非法字符過濾

    這篇文章主要介紹了使用RequestBodyAdvice實現對Http請求非法字符過濾的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 基于Redis實現分布式應用限流的方法

    基于Redis實現分布式應用限流的方法

    本篇文章主要介紹了基于 Redis 實現分布式應用限流的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java8新特性時間日期庫DateTime API及示例詳解

    Java8新特性時間日期庫DateTime API及示例詳解

    這篇文章主要介紹了Java8新特性時間日期庫DateTime API及示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 淺談Spring Data Redis讀不到設進去的值

    淺談Spring Data Redis讀不到設進去的值

    本文主要介紹了Spring Data Redis怎么讀不到我剛才設進去的值,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • IntelliJ IDEA 2023.2正式發(fā)布新UI和Profiler轉正(最新推薦)

    IntelliJ IDEA 2023.2正式發(fā)布新UI和Profiler轉正(最新推薦)

    北京時間2023年7月26日,IntelliJ IDEA 2023.2正式發(fā)布,IntelliJ IDEA 2023.2 引入 AI Assistant(AI助手),通過一組由 AI 提供支持的功能助力開發(fā),今天給大家分享IntelliJ IDEA 2023.2正式發(fā)布新UI和Profiler轉正,感興趣的朋友一起看看吧
    2023-10-10
  • java實現簡單的驗證碼功能

    java實現簡單的驗證碼功能

    這篇文章主要為大家詳細介紹了java實現簡單的驗證碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

通榆县| 梓潼县| 大关县| 东阳市| 叙永县| 平果县| 嵩明县| 西平县| 东阳市| 汉源县| 文水县| 永胜县| 黑龙江省| 鹤岗市| 凉城县| 江源县| 永春县| 两当县| 赤城县| 大安市| 永安市| 呼和浩特市| 丹巴县| 宁波市| 西宁市| 静海县| 大石桥市| 上杭县| 石首市| 鹰潭市| 扎兰屯市| 常山县| 宁安市| 镇坪县| 宝坻区| 灵川县| 珲春市| 道真| 葫芦岛市| 宜川县| 大厂|