SpringMVC访问controller报错404的解决办法(总结超详细)

问题描述:

纯注解配置SpringMVC程序,使用tomcat8.5.95版本启动,能启动成功并且访问index.jsp页面,但是访问/save时出现404无法访问,程序如下

解决办法:

一.更换高版本tomcat

以下的所有方法我全部都尝试过,但还是访问controller 404,最后更换了最新版本的tomcat才解决,所以在此把该方法列到第一个

二.检查jdk与spring版本是否兼容

Spring 框架的不同版本对于 JDK 的要求是有所区别的。一般来说,每个 Spring 框架版本都会声明它所支持的 JDK 版本范围。以下是一些常见的 Spring 框架版本对 JDK 的要求:

1. Spring Framework 5.x:

- Spring 5.x 支持 JDK 8 及以上版本。这意味着你可以在 JDK 8、9、10、11、12、13、14、15 和 16 上运行 Spring Framework 5.x

2. Spring Framework 6.x:

- Spring Framework 6基于JDK 17构建。换句话讲,若想使用Spring Framework 6那么你的JDK环境最低要求JDK 17

因此,如果你在使用 Spring MVC 6.x 版本,需要确保你的 JDK 版本符合其要求。当然,具体的兼容性要求最好还是查阅官方文档或者发布说明,以确保 JDK 和 Spring 版本之间的兼容性。

三.删项目重写一个

这一步骤是一种常见的排查问题的方法,通常用于排除项目中可能存在的难以定位的问题。通过删除并重新编写项目,你可以确保项目的结构和配置是干净的,并且可以排除一些潜在的问题

操作起来很简单,文件夹里找到项目直接删除即可

四.WEB-INF中导入lib

在传统的基于 Servlet 的 Web 应用中,通常会将项目所需的第三方库(JAR 文件)放置在 WEB-INF/lib 目录下。这些 JAR 文件包含了项目所需的各种依赖库

在现代的 Maven 或 Gradle 项目中,这些依赖通常会被管理工具自动下载并放置在项目的类路径中,而不需要手动放置在 WEB-INF/lib 目录下。但是IDEA有时会出错,导致WEB-INF下没有lib目录,这时候就需要自己手动添加了

在设置的项目结构中,选择工件

在WEB-INF目录下手动添加一个名称为lib的文件

lib的位置别错了

选择库文件,里面的东西全部添加

保存,退出,重新运行tomcat查看访问controller是否报错404

五.如果返回的数据为json,确保引入jackson依赖

在一个典型的 Spring MVC 应用中,当你向客户端返回一个对象时,Spring MVC 默认使用 HTTP 消息转换器(HTTP Message Converters)来将对象转换为合适的响应格式。这意味着,如果你的控制器方法返回一个对象,Spring MVC 将根据请求的 Accept 头部信息,将该对象转换为适当的响应格式,比如 JSON 或 XML

在默认情况下,Spring MVC 提供了一些内置的消息转换器,用于处理各种格式的数据。但是,如果你想要返回 JSON 格式的数据,通常会引入 Jackson 库(如 jackson-databind)来实现 JSON 的序列化和反序列化。Jackson 库提供了 MappingJackson2HttpMessageConverter,它可以将 Java 对象转换为 JSON 格式的数据,并且能够与 Spring MVC 集成

因此,当你在 Spring MVC 中想要返回 JSON 格式的数据时,通常会引入 Jackson 库,并确保 Spring MVC 配置正确地使用了 MappingJackson2HttpMessageConverter,以便将对象转换为 JSON 格式的响应

如果在一个纯注解的 Spring MVC 应用中,你想要返回 JSON 格式的数据,通常需要引入 Jackson 库,并且在控制器方法上使用 @RestController 或 @ResponseBody 注解来指示该方法返回 JSON 格式的数据。如果没有正确引入 Jackson 库或配置 Spring MVC 来处理 JSON 格式的数据,可能会导致返回的数据格式不符合预期,或者在访问控制器方法时出现 404 错误

六.确保所有的注解都加上了

1.Bean相关

检查@Controller注解,将该类注册为Bean

检查@RequestMapping是否加上,和后面的访问路径是否写错

检查@ResponseBody是否加上,无返回值可忽略

2.config相关

(1) SpringMvcConfig

是否扫到了bean所在的包

(2)  AbstractDispatcherServletInitializer实现是否正确

七.删除.m2文件下的repository

在 Java 开发中,".m2" 目录通常是 Maven 的本地仓库,用于存储项目的依赖库。当你在项目中使用 Maven 进行依赖管理时,Maven 会从远程仓库下载所需的依赖,并将其缓存到本地的 ".m2" 目录下。这样做可以加快构建过程,并在没有网络连接时也能够构建项目

有时候本地的依赖库可能会因为各种原因而损坏或不完整,导致构建失败或者出现奇怪的行为。通过删除并重新下载,可以确保本地的依赖库是完整的

八.webapp文件未被设为资源

仔细看看webapp文件夹上有没有这个小点,没有的话需要重新设置

还是在设置里的项目结构中,选择Fact

选择+新建web,选择你所创建的webapp的路径,确认返回,即可设置成功

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果在使用Spring MVC访问controller时遇到404错误,通常是因为controller没有正确映射到请求路径。确保使用了@RequestMapping或@GetMapping注解来映射请求路径,并且路径是正确的。还要检查是否在Spring配置文件中正确配置了路径映射。 ### 回答2: Spring MVC框架是一种基于MVC设计模式的Java Web应用框架,可以快速开发Web应用程序。在使用Spring MVC框架开发Web应用过程中,有时候会发现在访问Controller的时候会出现404的错误。 出现这种问题的原因一般有以下几个方面: 1. URL映射错误:在Spring MVC框架中,Controller的URL映射是根据@RequestMapping注解来完成的。如果URL映射设置错误或者Controller没有正确的映射,就会出现404错误。 2. Controller没有在Spring MVC配置文件中进行配置:当我们创建一个Controller类的时候,需要将该类注册到Spring MVC框架中。如果没有在Spring MVC配置文件中进行配置,就会出现404错误。 3. 没有编写视图页面:当Controller找到了相应的处理方法并经过处理之后,需要将结果返回给浏览器。这个结果一般是一个视图页面。如果没有编写相应的视图页面,就会出现404错误。 解决上述问题的方法如下: 1. 检查URL映射是否正确:需要检查Controller的@RequestMapping注解设置是否正确,并且需要注意大小写。如果发现设置有误,需要进行修改。 2. 将Controller注册到Spring MVC框架:需要在Spring MVC配置文件中将Controller进行配置,例如可以使用@ComponentScan注解进行扫描并注册。 3. 编写相应的视图页面:需要对于每一个Controller的处理方法都编写相应的视图页面,并且可以根据业务逻辑进行模板化编写,提高代码的复用性。 总之,出现Spring MVC访问Controller 404错误的原因一般有很多种,需要根据具体情况进行排查,找到问题的根源,并采取相应的解决措施。只有理解了错误的原因,才能够顺利地解决问题。 ### 回答3: Spring MVC框架是一种开源的、基于MVC(Model-View-Controller)模型的Web框架,它在Java EE平台上提供了一种优雅而灵活的方式,帮助我们构建Web应用程序。在使用Spring MVC框架时,我们希望访问的处理器(Controller)可以被正确的映射,并正确的处理请求。但有时候会遇到Spring MVC访问Controller出现404错误的情况,接下来我们来分析一下Spring MVC访问Controller404解决办法。 1.配置错误:我们在Spring MVC的配置文件中,可能会出现一些配置错误,如Controller类路径或方法名错误、请求路径配置错误等导致404错误。这时候我们需要仔细查看配置文件,确认配置是否正确,如在RequestMapping注解中路径拼写错误等。 2.包名与访问路径不匹配:在Spring MVC中,只有请求地址正确与Controller类的包名匹配时,才能访问到正确的Controller。如果Controller类的包名与请求地址不匹配,就会出现404错误。解决方法可以在Controller类上使用RequestMapping注解,指定正确的请求路径。 3.缺少必要的组件:当我们在执行Spring MVC项目时,需要一些必要的组件来支持此框架的运行,如JSP/HTML,Tomcat等,如果这些组件缺失或者配置错误,就会出现404错误。 4.访问路径有误:我们在访问Controller时,可能会出现访问路径出错的情况,要检查访问的URL地址是否正确,是否携带了必要的参数等。 总之,在解决Spring MVC访问Controller 404错误时,需要先仔细检查代码、配置等问题,逐一排查,找到具体原因,然后进行针对性的修复。同时也需要对错误有一个良好的分析能力,找到根源。只有这样,才能顺利的运行一个Spring MVC框架项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值