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的安全审计。
相关文章
|
3月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
368 0
|
3月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
138 2
|
3月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
396 7
|
3月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
262 1
|
4月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
90 5
|
4月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
172 1
|
4月前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
164 5
|
4月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
204 3
|
4月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
108 1
|
4月前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
156 1