前言:
昨天用javaSE手动部署了一个servlet,本以为自己已经初步窥探了,结果一用eclipse生成javaweb项目 然后部署到Tomcat就问题多多。这一天也算是栽在这上面了。
java后台自学ing的弊端就初见了。找不到人指教,只能通过google和百度一页一页翻找答案。
不过总算是完成了:Eclipse创建web项目并且部署到Tomcat 不报错。
创建JAVAWeb项目:
有个问题得提醒大家 :eclipse是分版本的
如果你的是se版的,就不能创建web项目
如果你的是ee版的,可以创建web项目和java项目。
然后:
点击Java EE(Default)切换javaweb模式,即可创建web项目。
具体的就不写了,这块百度就行。
链接:Eclipse配置关联Tomcat并运行项目以上内容是基本的配置,但是会有问题。
问题1:
独立启动tomcat后再浏览器输入http://localhost:8080
可以成功访问到tomcat主页
但是当在Eclipse中启动tomcat时,虽然可以启动成功,
可以访问到自己所建的项目的页面 ,
但是却访问不了http://localhost:8080
原因:
创建项目后本应该存放在
D:\apache-tomcat-9.0.8\webapps
可是Eclipse默认是存放在其他地址,相当于重定位了。
所以当你外部浏览器打开 http://localhost:8080就访问不了主页,
但是可以访问到自己所建的项目的页面,
这个时候是导航到了那个默认的地址,
所以D:\apache-tomcat-9.0.8\webapps下并没有该项目。
我是这么理解的:
http://localhost:8080坚挺的是Tomcat的webapps目录,默认情况下
eclipse打开tomcat后导航到其他位置,所以找不到webapps目录
但是当全目录的时候 http://localhost:8080/xx/z.html
可以导航到那个位置 所以可以显示。
参考: https://www.cnblogs.com/DreamDrive/p/5765645.html
解决方案:
首先 Eclipse中window-》preferences—》server-->Runtime Environments
检查使用的时Eclipse自带的tomcat还是外部自己下载的。
修改Eclipse默认存放项目地址,改为Tomcat:
https://blog.csdn.net/leftfist/article/details/52926393
解决eclipse中Tomcat服务器的server location选项不能修改的问题:
http://blog.sina.com.cn/s/blog_804c1dce0102wxyd.html
问题2 :
运行web项目后 项目没有出现在
D:\apache-tomcat-9.0.8\webapps目录下
注意:
要修改
Server path为Tomcat位置,替换掉了原来的默认地址
Deploy path为Tomcat的项目存放绝对路径,而不能只写
webapps
这样子当你运行web项目的时候 项目就会出现在
D:\apache-tomcat-9.0.8\webapps
重点:Eclipse默认是ie 浏览器打开
问题3:
每次项目下src文件创建sevlet的时候出现这个问题:点击显示:
the import javax.servlet cannot be resolved
意思就是:这些头文件无效
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
项目:build path--》configure Build Path--》Libraries--》classpath--》Add
External JARS--》servlet-api.jar添加进来即可。
还可以添加Tomcat library
build path--》configure Build Path--》Libraries--》classpath--》Add library--》Server Runtime 添加 Tomcat就行
不明白 为什么每次创建都会报这个错……没法每次都自动导包
更新:
解决方案如下:
点击Edit 然后往里面添加Tomcat中lib的servlet-api.jar即可
效果图:
问题4:
但是 如果只是测试的话 直接不用修改
这样子效果就是:eclipse可以测试,外部浏览器打开地址可以测试,只是无法访问8080首页而已,还有tomcat下没有存放项目而已,如果要存放,到时候修改就行