环境:在Eclipse中配置的 Tomcat v9.0
暑假小学期进行Java Web开发时是在网上找的MyEclipse破解版,里面直接就配好了Tomcat,老师也给了一个模板,即使当时啥都不懂,也照葫芦画瓢地搭好了一个简易的商品购物平台网站。这学期学了互联网协议和Java网络编程的一些知识,感觉对之前小学期写的东西有了更好的理解。最近这次的Java网络编程的Lab也要写一个简易的能前后端交互的小程序。为了能更熟悉 Java web 开发,我选择了在Eclipse里配置Tomcat来写。
在配置Tomcat时主要遇到了以下三个值得记录的地方:
1.创建Web project时没有自动生成web.xml。右击创建的项目,在Java EE tools那里可以手动生成。
2.web.xml里url-pattern那块前面一定要加‘/’,表示当前项目,格式如下:<url-pattern>/*</url-pattern> (经lty同学提醒,此处有误导人的嫌疑,实际上不只有这种匹配方式,具体可见:理解web.xml中的 url-pattern标签及其使用范围)
当时运行Tomcat时报了很多错,A child container failed during start啥的,内心有些崩溃,以为是啥很复杂的问题。上网也看了一些解决方案,不太一样,后来才发现有一条Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> * in servlet mapping ,再结合网上看的内容和之前MyEclipse留存下来的小学期作业,解决了这个问题。
3. 打开网页发现404: 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。这个是自己的失误,不小心把网页文件放进了WEB-INF文件夹。网页文件应该与WEB-INF平级。
又遇到了些新问题。
- web.xml 里url不能直接命名为servlet的名称,比如ServletA不能就命名为/ServletA,不然启动tomcat时会出错。因为每个servlet本身就有个自带的url,就是这个自己的名字。即使没有在web.xml里给这个servlet配任何其他的url,都可以通过这个自带的url来访问。如果在web.xml还弄个重复的url就报错了。
- 尽量不要用Eclipse内置的浏览器来测试。
- 重启tomcat不会让还在存活时间之内的session失效。
上软件工程写大作业时装了Java 11,然后又重装了最新版的eclipse(2020-03)。在这个版本里进行Java Web开发时遇到了些问题:
- 想配置Tomcat服务器,但是没有Tomcat的创建选项。 解决方法是help->install new software加入网址是http://download.eclipse.org/releases/2020-03,最后一个是eclipse的版本。得到一系列的插件在Web, XML, and Java EE Development中找到 JST Server Adapters 和 JST Server Adapters Extensions,安装即可。
- 创建项目没有dynamic web project的选项。和上面的解决方法类似,装 Eclipse Java EE Developer Tools、Eclipse Java Web Developer Tools插件。
