1. 程式人生 > >Eclipse下搭建Maven Servlet3.0環境

Eclipse下搭建Maven Servlet3.0環境

需求背景:

Servlet3.0的好處:
- 1. 非同步處理支援:有了該特性,Servlet 執行緒不再需要一直阻塞,直到業務處理完畢才能再輸出響應
- 2. 新增的註解支援(可以省略web.xml):該版本新增了若干註解,用於簡化 Servlet、過濾器(Filter)和監聽器(Listener)的宣告,這使得 web.xml 部署描述檔案從該版本開始不再是必選的了。
- 3. 可插性支援:開發者可以通過外掛的方式很方便的擴充已有 Web 應用的功能,而不需要修改原有的應用。
-

搭建方式:

Eclipse中如何建立Maven Servlet3.0/3.1環境

  • 匯入環境依賴Servlet3.1Jar
  • maven工程只支援Servlet2.3,所以修改配置檔案預設配置來支援Servlet3
  • 進入到工程目錄下,修改org.eclipse.wst.common.project.facet.core.xml
    • /.settings/org.eclipse.wst.common.project.facet.core.xml
    • <install facet=”jst.web” version=”3.1”/>
  • 修改配置:properties–>project facet–>Dynamic Web Module–>3.0/3.1
  • refresh project + update maven project

- 注意web容器要支援servlet3,並且JDK1.7+

注意:

  1. 雖然web3.0/3.1之後可以省略web.xml檔案,但是在Eclipse中,會有一個Deployment Descriptor:your project name
    這個檔案其實就相當於web.xml,如果不正確配置這個檔案,就會在工程中出現莫名的小紅叉,

  2. 選擇your project,滑鼠右鍵選擇Properties,輸入facet,檢索,點選結果中的Project Faced,檢查對應的版本是否正確

  3. 如果持續update maven project 出現jre版本經常異常變化,可以在pom中配置compile外掛的版本,依賴jdk version固定,並且與環境一致即可
  4. Servlet3.0需要JDK1.7以上

附3.0/3.1對應的標頭檔案:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    <display-name>Archetype Created Web Application</display-name>
</web-app>
<?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_3_1.xsd"
    version="3.1">
    <display-name>Archetype Created Web Application</display-name>
</web-app>