Idea访问servlet404问题(java学习日志)

简介: Idea访问servlet404问题(java学习日志)

java学习日志——Idea访问servlet404问题

**

最近学了servlet后开始尝试自己部署项目,无论是eclipse还是idea我都试过。但一路上的坎坷只有自己清楚。其中部署项目时最心酸也是困扰我最久的给servlet发送请求时出现404的问题。

可能你把网上的方法试了遍,可依旧没解决你的问题。无论是注解配置(当然也可以是xml配置)还是服务器部署上都没什么问题,但就是出现404(很不幸,我就是那个人)。经过我不断尝试,最终发现了问题所在。以下方案可以给你一种新的思路:


w2.png

你也许会很奇怪,明明我注解配置好了,各项检查(包括各种配置文件)都没有任何问题,可是就是会报404,就像下图:

w1.png

作为自学者的我遇到这情况也是相当的崩溃。查互联网,没有得到我想要的答案;问老师同学,由于我是超前学习(大一就开始学习java),根本无人可问(都是别人来问我的…)。那时候可谓是叫天天不灵,叫地地不应。

几天后我尝试创建一个新的项目,开始部署,随后发现servlet居然能访问了,然后我开始对比,注意到了访问路径的不同。

q5.png

虽然是500,但至少是访问到了。然后我开始关注到application context这个选项

q4.png

这个设置默认为”/”,然后我开始上网查资料发现这个跟访问路径有关。

要解释这个application context,就要谈谈eclipse(毕竟原本用的eclipse)。

eclipse访问项目的路径一般localhost:8080/projectName, 当把IDE换成idea以后,访问路径一般情况下就变localhost:8080,路径没有了后面的项目名。tomcat在发布项目的时候不考虑用虚拟路径的话,一般都是把项目放在webapps里面,这个时候具体放置的位置就会影响访问路径了。如果是直接放在webapps目录下,那么访问路径就是和eclipse相同的访问路径了,但是这时候如果把项目放在tomcat的webapps里的root文件夹下,那么这个时候这个项目就成为了tomcat的默认项目,直接用localhost:8080就可以访问,安装tomcat时检查tomcat是否正常安装出现的项目其实就是root。

 localhost:8080/projectName或者是localhost:8080就是我们平常所说的应用上下文,项目中的路径名都是相对于这个应用上下文来说的。在idea下开发的时候,有时候我们可能需要让访问路径带上项目名,但是idea默认是为每个项目单独配置tomcat的,eclipse是把项目统一放到某个配置好的tomcat中,所以默认配置的访问路径就出现了差别。如何将idea的应用上下文路径也带上项目名呢?

其实这个application context就是idea默认的上下文,要想让idea的应用上下文改变,这时候将这个application context改成你需要的项目名就行了,改完后如下

q3.png

重启服务器(这个配置只有重启才会更改)

这时候如果访问这个路径就会

q2.png

q1.png

哈哈,成功了!!!!

问题就出在发送的请求和项目部署的位置不一致上面。

总结一下,我犯这次错误的原因就是我拿eclipse的思维去在idea上部署项目,而实际上两者的部署方式是由很大区别的。至于两者的区别,在这里就不多赘述了,感兴趣的可以去搜相关资料了解一下。

希望本文对你有所帮助。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
11月前
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
1822 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
932 6
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1534 78
|
12月前
|
IDE Java 开发工具
JetBrains IntelliJ IDEA 2025.1 发布 - 领先的 Java 和 Kotlin IDE
JetBrains IntelliJ IDEA 2025.1 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE
741 2
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
3116 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
14938 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
470 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
1669 0
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
509 6