springmvc不进入Controller导致404

摘要:
1、 摘要当emmm..不熟悉springmvc时,如果没有意外发生,那么在项目启动后看到404页是令人讨厌的。因为我愿意…˃② 等效于注册两个bean DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,并配置一些消息转换器。
一.摘要

emmmm..
对springmvc不太熟练的情况下,如果不出意外的话,项目启动后出现404页面是很烦人。
在这里,我记录一下可能会导致出现这种情况的原因<因为之前的文章结构不算是很清晰,所以这次做一些修改>

二.出现404的分类以及会导致的原因

1.启动项目后,访问项目无法进入主页,从而出现404;

2.1.1.查看项目是否启动成功;

2.1.2.确认项目地址的正确性;

2.1.3.作为项目主页的html页面应该放到工程的WebContent的根目录下;

2.项目启动并且成功进入主页后,主页上一些通过controller层跳转的操作无法找到网页,导致404;

2.2.1. 相关操作访问路径是否正确;

2.2.2. Controller层是否被标注为@Controller组件

2.2.3. 是否配置了对@Controller标签的支持:<mvc:annotation-driven />

2.2.4. 是否正确配置了对Controller层的扫描:<context:component-scan base-package="controller">

2.2.5. 检查web.xml中的相关配置是否正确

1.是否配置了spring的监听,以及正确加载spring相关配置文件

2.是否正确加载springmvc的配置文件

三.分情况详细说明

3.1.先附上并简单介绍一下我的工程结构目录图:

springmvc不进入Controller导致404第1张

简单介绍一下applicationContext-*为什么会有三个:

applicationContext-dao:  里面配置了数据源,以及对mybatis的相关支持<注意我的项目是ssm>

applicationContext-service:里面配置了事务管理

applicationContext-trans:  配置了对Service层的扫描

如果没有对Service层的扫描,就无法使用到@Service标注的组件,从而导致Controller中的出现空指针情况。

emmm,,,稍微考虑一下,我决定把applicationContext-trans的配置截图附上:

springmvc不进入Controller导致404第2张

你看把,真的是只配置了对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如下

springmvc不进入Controller导致404第3张

②. Controller如下

多说一句:

如果你喜欢在类名上(也就是@Controller下)也添加一个@RequestMapping(),

那么在类里面的子@RequetMapping注解中的路径是不能再有/的。

<我记得我之前试过,如果说的不对,或者是有人没看懂,就当我没说>

springmvc不进入Controller导致404第4张

③. 前端拦截器:

注意拦截路径: 

/表示拦截一切路径,不能是/* 

(如果你要问为什么,抱歉,人家这么规定我也无能为力)


springmvc不进入Controller导致404第5张

3.3.2.Controller层是否被标注为@Controller组件

顾名思义,略

3.3.3.是否配置了对@Controller标签的支持:<mvc:annotation-driven />

①. 该配置我配置在了springmvc-config.xml文件中,在下面讲解合适的时候我会附上代码截图

<为什么老是截图?因为我愿意...>

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

相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。

简单来说就是: 提供了使用并且能够识别@Controller注解的前提.

3.3.4.是否正确配置了对Controller层的扫描:<context:component-scan base-package=" ">

①. 既然上面配置了对@Controller的支持,现在就需要配置对@Controller的扫描

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

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

②. 现在,附上springmvc-config的代码截图:

springmvc不进入Controller导致404第6张

3.3.5.检查web.xml中的相关配置是否正确

注意:我的配置文件在一个资源文件夹下,具体路径还请根据自己的结构目录来配置

①. 是否配置了spring的监听,以及正确加载spring相关配置文件

<param-name />标签:contextConfigLocation是固定的;

<param-value />标签:加载spring配置文件(注意路径问题)

springmvc不进入Controller导致404第7张

②. 是否正确加载springmvc的配置文件

先解释<servlet />标签中的内容

<servlet>

<servlet-name />:先不说,会在下面(紧挨<init-param />)解释

<servlet-class />:springmvc的核心,可以理解为对spirngmvc的支持,固定非修改

<init-param>:可以理解为对springmvc的初始化,即为springmvc指定需要加载的xml配置

<param-name />:固定非修改

<param-value />:加载springmvc配置文件(具体根据自己的结构目录配置)

<init-param/>

<servlet/>

<servlet-name />:将加载到的springmvc.xml文件起一个别名

<servlet-mapping>

<servlet-name />:

与上面的servlet-name标签保持一致,表示对上面的springmvc.xml做mapping配置

<url-patter />: 配置前端拦截器路径。

拦截器路径的配置方式包括: *.do 、*.action 、/ 

意思是分别:拦截以do、action、任意后缀或者是无后缀的前端请求

<servlet-mapping/>

springmvc不进入Controller导致404第8张

如果有书写错误的地方,或者是有问题的地方请及时评论或者是私信,只要我看到就一定会回复,

以免误导个别萌新。

虽然,我也是个萌新。


你好,我叫吕小布。









免责声明:文章转载自《springmvc不进入Controller导致404》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇My Sql 获取数据库所有表及表内的字段信息ambari安装hdp时,新建的ambari-hdp-1.repo中baseurl无值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MyBatis与Spring MVC结合时,使用DAO注入出现:Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

错误源自使用了这个例子:http://www.yihaomen.com/article/java/336.htm,如果运行时会出现如下错误: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessi...

关于springMVC

一 mvc设计模式 MVC 全名是 Model View Controller,是 模型(model)-视图(view)-控制器(controller) 的缩写, 是⼀种⽤于设计创建 Web 应⽤程序表现层的模式。 MVC 中每个部分各司其职:Model(模型):模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业务。View(视图): 通...

spring mvc 的jpa JpaRepository数据层 访问方式汇总

本文转载:http://perfy315.iteye.com/blog/1460226和http://jishiweili.iteye.com/blog/2088265 AppleFramework在数据访问控制层采用了Spring Data作为这一层的解决方案,下面就对Spring Data相关知识作一个较为详细的描述。1.Spring Data所解决的...

SpringMVC上传视频等大文件

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一. Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出...

Spring和Spring MVC包扫描

在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器有上下层关系,目前最常见的一种场景就是在一个项目中引入Spring和SpringMVC这两个框架,那么它其实就是两个容器,Spring是父容器,SpringMVC是其子容器,并且在Spring...

Spring MVC相关

配置文件说明 web.xml, 相当于一个java web项目的配置文件 applicationContext.xml, spring配置文件, mybatis连接mysql配置文件 sql-map-config-mysql.xml,mybatis配置文件 application.properties, 配置文件常量 web.xml Servlet相...