天天看點

建構maven動态web 工程

項目建構

總體參考:

http://www.java2blog.com/2015/09/how-to-create-dynamic-web-project-using.html

https://stackoverflow.com/questions/10888068/java-dynamic-web-project-with-maven-and-eclipse

遇到maven報錯但是隻有項目前有錯誤符号

點選右鍵update maven project

建立maven 動态網頁工程

沒有src\main\java和src\main\resources

然後在Java build path裡切換下jre環境

工程裡就有了

 或者

https://stackoverflow.com/questions/18790106/eclipsemaven-src-main-java-not-visible-in-src-folder-in-package-explorer

點選

 Java build path-order and export

将maven dependencies和jre system library選上

建構maven動态web 工程

出現cannot change dynamic web model to 2.5

原因在于web.xml裡配置的是

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"

如何穩定的改變呢?

參考

https://stackoverflow.com/questions/25551213/cannot-change-version-of-project-facet-dynamic-web-module-to-2-5

這個答案說原因是在于在project facets裡dynamic web model 已經選上不能變了,就算maven update也隻能增加module而不能改變module,是以先不選擇dynamic web model 

建構maven動态web 工程

然後再maven update 就好了

有關dynamic web module和 tomcat關系

http://www.cnblogs.com/beijingstruggle/p/5461146.html

下面轉載自上面的部落格

寫的很好!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、Dynamic web project時選擇2.5和3.0是指servlet的版本,是2.5的還是3.0的

    servlet3.0以後支援異步

2、dynamic web module和對應的TOMCAT 版本

     dynamic web module 2.4  對應Tomcat 5.5

     dynamic web module 2.5  對應Tomcat 6.0

     dynamic web module 3.0 對應Tomcat 7.0

 具體可以參考如下博文:

     http://blog.sina.com.cn/s/blog_529aacbd01014cc8.html

3、不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 頭資訊

參考:

http://blog.csdn.net/z69183787/article/details/36008097

4、Servlet和Tomcat的基礎知識

參考:

http://blog.csdn.net/pirateleo/article/details/8574973

5、Servlet 3特性:異步Servlet

參考:

http://www.importnew.com/8864.html

6、tomcat裡邊的servlet.jar對應哪個版本的java API?

建構maven動态web 工程

追問:

這張表我看到了,但是看不太明白,裡邊的那個servlet/jsp 的版本是怎麼回事呀?servlet-api.jar 裡邊的.class檔案不是javaee 的servlet包裡邊的類的實作嗎?      

追答:

servlet/jsp當然有自己的版本。每次重大的更新,都會意味着版本的更新。 可能你現在多半在糾結servlet-api和javaee的關系。下面舉個例子: MyEclipse 8建立webProject後,
MyEclipse自動在項目中引用了Java EE 5 Libraries,裡面包括了 javaee.jar,jsf-impl.jar,jsf-api.jar,jstl-1.2.jar這四個包,其中javaee.jar包中包括了編寫servlet的類,
在項目中建立一個servlet。 用MyEclipse的釋出功能把項目釋出到Tomcat後,其中的 jsf-impl.jar,jsf-api.jar,jstl-1.2.jar 這三個包也一同釋出到了應用的lib目錄中,
javaee.jar卻并沒有一同釋出到lib中。Tomcat啟動應用正常,可是應該報錯找不到HttpServlet才對啊。 原來在Tomcat安裝目錄下的lib裡有一個servlet-api.jar,
在這個包裡也包括了編寫servlet的類,是以Tomcat啟動應用并沒有因為找不到HttpServlet而報錯。      

追問:

嗯,您說的這些我明白,基本上也解決了我的疑問,謝謝,我還想再問下,上面你給的那個圖最後一列中的 "Minimum java version" 指的是javaee 的版本,還是javase的版本?我認為是javaee的版本,對嗎?      

追答:

javaSE. 你要知道tomcat也是用java編寫的      

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

change dynamic web module問題解決:

https://stackoverflow.com/questions/18122336/cannot-change-version-of-project-facet-dynamic-web-module-to-3-0/20146436

右鍵項目名-properties-project facets-dynamic web module-右鍵check version-選擇版本号

或者将前面打鈎去掉-更改web.xml配置然後maven-update project

轉載于:https://www.cnblogs.com/hong2016/p/7307458.html