——给自己做备忘,不定时更新,相当于一个“检查表”,修改步骤会简洁写,不是唯一修改方式—
——如果我的文章中哪里有问题,也烦请评论指正、分享自己的见解,谢谢!——
——文中解决方法是我的成功记录,不一定适用于你——
不适合纯纯纯新手,给和我环境相同的人做一个参考
你也可以拿我分析的“原因/背景”去检查自己的,确定问题究竟出在哪。这样再去网上搜,找到正确解决方法的概率会提高
如果有问题/步骤没懂/这个解决方案没解决你的问题,还请自行搜索。本人也新手,别问我,大概率无法解答
我的环境:idea2023 tomcat8.5
1.JAVA: 错误: 不支持发行版本 5
一种解决方法:修改pom.xml
<properties>
<maven.compiler.source>jdk版本</maven.compiler.source>
<maven.compiler.target>jdk版本</maven.compiler.target>
</properties>
2.tomcat404
前提:
(1)直接运行tomcat(startup.bat)成功 想检验的话,在idea运行前检查。如果是idea运行失败后再检查,记得先关闭idea中的连接,否则因端口号占用(?)也会打不开。
(2)idea中成功连接,能打开网页(如果此处连接失败,应该是tomcat配置问题,在idea中重新配置、查相关资料)
可能原因(不全,仅我遇到的):
(1)jsp编写有问题,修改代码
(2)首页正常打开,但跳转失败,也许是jsp跳转路径有问题
怎样判断是否跳转问题:我的办法
在web.xml中修改默认欢迎界面,将各个页面依次设置为欢迎界面,测试各个页面能否正常打开。
<welcome-file-list>
<welcome-file>你要的页面名.jsp</welcome-file>
</welcome-file-list>
(3)看modules、facets里面web的路径等配置是否正确
(4)看项目运行生成的target里有无jsp页面, 我已经好几次在这儿出错了,网上也有多种解决方法
我的成功记录:
在pom.xml里加入
<packaging>war</packaging>
记得再刷一下maven(如果你在设置里面修改过自动更新,那就不用),运行tomcat
看看这个target有jsp了吗?没有更新的话,可以删掉原来的target再运行tomcat,会生成新的target
然后可以看一下project structure里的artifacts,你应该已经生成了一个新的artifact,再编辑tomcat里的deployment,换成新的artifact,再运行应该就没问题了。
如果还有问题:
情况1)
你的欢迎界面已经换成了一个复杂的自定义jsp,可以去掉那段代码/直接设置为原始的、不含java的index,如果这个index能成功,说明tomcat配成功了。
那就去检查欢迎界面的设置是否路径有误、欢迎界面是否代码有错
(5)相关的依赖jar包没有添加到项目当中
这个看到好多博主都在说,需要在web-inf下加入lib,把包全部导入
project structure-artifacts在output layout里点击web-inf,右键create directory,输入lib,再add copy of-library files,ctrl+a把包全选
3.tomcat500,网页提示在xx行出现问题
这行代码有问题,检查,修改
(1)遇到的一个问题,没有理解为什么,但修改后能打开网页了,但好像没成功访问数据库。
copy别人jsp页面的代码,但访问失败:
i下方有下划线,不知道是什么意思 在此处换了别的变量名依旧有下划线
List<Student> allStudents = (List<Student>)session.getAttribute("allStudents");
for (int i = 0; i < allStudents.size(); i++) {
Student s = allStudents.get(i);
//在此省略一些操作,总之是对list中元素的一些操作,不影响
}
不知道为什么500,在网上搜,有人提出空指针的问题...但我学艺不精,没太理解,自己一次次试着改,最后改成这样就访问成功了:
List<Student> allStudents = (List<Student>)session.getAttribute("allStudents");
if(allStudents!=null)
for (Student s:allStudents) {
//继续省略一些操作
}
网页能成功访问了,但想要的数据还是没显示。估计还是没正常读取数据库,所以可能依旧没改成功
4.编写jsp时session.getAttribute标红
解决方法:导入servlet-api.jar和jsp-api.jar 包在tomcat/lib下找
5.创建的webapp文件没有蓝点
解决:在project structure-modules添加web、修改路径
project structure-modules 点击+,选择web(注意path要配置到web.xml,左下角的directories配置到webapp)
另:有博主提出,这个文件尽量命名为webapp,而不是其他的。不懂原因,但我的实践中,似乎确实这样问题会少,感谢!
6.部署Tomcat提示:Warning no artifacts configured
缺少artifacts
解决:project structure-artifacts,点击+,选择web application :exploded,右侧的output layout里选择dictionary content,然后有博主说要选择(在tomcat文件目录下)webapp 文件夹,但我记得自己是选了一整个项目,好像也成功了?
7.本来没报错,配完tomcat后突然报错
(1)java: 程序包javax.servlet.http不存在
project structure-modules点击项目,dependencies下如果有标红的tomcat包,删除;没有,点击+ ,library-application sever libraries,导入需要的tomcat 注意:这个操作在maven刷新后可能会丢失?需要重新导(总之我遇到过)
(2)dispatcherservlet标红
在网上找了好几篇博客,有各种方法,但我每次都是这样解决的:
project structure-facets看这个web文件的path是否为你web-inf下的web.xml