Mac初次使用idea2021新建JavaWeb问题汇总
#0x00 前言
这学期在学JavaWeb,突然被疫情封校在宿舍上网课,只能在自己电脑上装环境了。
并不是没有学过,只是上课用的都是Eclipse + tomcat8,但之前用过idea做Java,确实感觉比Eclipse好用,所以想着在idea搭建环境
在此也是各种碰壁,把一些遇到的问题总结给大家
#0x10 正文
#0x11 快速创建Java web项目
我创建的是JavaEE 快捷方便 目前没发现啥大区别
直接在新建项目中选择Java Enterprise 选择好项目模板伟 Web applica 选择好tomcat版本(强烈建议9 ,10还有一些问题)
如果Application server这边没有tomcat版本,可以点击右边的New...按钮 然后选择 Tomcat Server ,继续选择tomcat路径即可
#0x12 tomcat无法正常运行
大概率是没有给tomcat权限,打开tomcat所在路径(我这边直接放在了根目录下),执行sudo chmod -R 755 ./(你的tomcat文件夹名)
【如果不知道路径的话,打开访达的文件夹位置,直接拖入就好了】
然后回车输入mac的密码就可以了
#0x13 直接运行index.jsp报错404
创建好Javaweb项目之后,在index.jsp右键运行会直接报404
正确的运行方式是在下面的tomcat环境中右键运行
#0x14 运行tomcat后报错404
大概率是端口占用问题,你在此前运行过tomcat环境,跟idea启动的tomcat端口冲突导致
需要cd 到tomcat/bin 路径下 运行shutdown.sh脚本 关闭在系统中运行的tomcat环境,这样才能让idea启动的tomcat正常运行
#0x15 HelloServlet报错404
大概率是没有添加映射,打开web(webapp)/WEB-INF/web.xml 然后添加映射
然后就成功servlet到了
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>helloServlet</servlet-name>
<!--servlet名字 跟包下的HelloServlet类中name对应-->
<servlet-class>com.denceun.javawebone.HelloServlet</servlet-class>
<!--包名类名-->
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<!--servlet名称,跟上面对应-->
<url-pattern>/hello-servlet</url-pattern>
<!--路径-->
</servlet-mapping>
</web-app>
#0x16 HelloServlet 报错500
HTTP状态 500 - 内部服务器错误
类型 异常报告
消息 实例化Servlet类[com.denceun.tomcat10.HelloServlet]异常
描述 服务器遇到一个意外的情况,阻止它完成请求。
原因是tomcat10之后包名不再"javax.servlet”,改为"jakarta.servlet"
因此将Tomcat版本改为9即可 或者 “javax.servlet”改为"jakarta.servlet”
这里参考了CSDN中skfqyd大佬的文章:类com.fqyd.servlet.HelloServlet不是ServletHTTP状态 500 - 内部服务器错误
我并没有尝试下面的操作,只是直接把tomcat10删除 换成了tomcat9 这样跟方便不是,以后都要改一下很麻烦
#0x20 后记
学习过程中,总会遇到各种问题,为了解决这些小问题,也是用了各种办法。
也许会不断百度:
又或者去请教大神:
又还是直接花钱去解决(太贵了最终没有花):
等等方式,总之遇到问题冷静下想办法解决才是关键,要多想自己是哪里做错了,没有找对方法,也许这次一帆风顺的成功,下次依旧奔溃,这些在编程中的稀奇古怪问题总是司空见惯。正因遇到问题才能有所提升,还是那句话:成功的经验与失败的教训同等重要!