Web應用部署
一、Web應用在IDE中的目錄結構
注意:如果將JSP放在WEB-INF目錄下,測用戶不可以直接訪問該頁面,但是在容器內部可以直接訪問該頁面。
二、一些常見的DD配置
1、Servlet映射
<servlet>
<servlet-name>Beer</servlet-name>
<servlet-class>com.example.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Beer<servlet-name>
<url-pattern>/Beer/SelectBeer.do</url-pattern>
</servlet-mapping>
客戶發送請求與<url-pattern>裏面的內容匹配,然後找到<servlet-mapping>裏面的<servlet-name>,根據這個值到<servlet>裏面尋找和該<servlet-name>值相同的<servlet-name>,然後執行對應的<servlet-class>。
2、在DD中配置歡迎文件
<web-app....>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<web-app>
注意:頁面直接文件名即可,不能以“/”開頭或結束。
3、在DD中配置錯誤頁面
(1)聲明一個普通型錯誤頁面
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorPage.jsp</location>
<error-page>
(2)爲明確的異常頁面聲明一個錯誤頁面
<error-page>
<exception-type>java.lang.ArithmeticException</exception-type>
<location>/arithmeticException.jsp</location>
<error-page>
(3)根據一個HTTP狀態碼聲明錯誤頁面
<error-page>
<exception-code>404</exception-code>
<location>/notFoundError.jsp</location>
<error-page>
4、在DD中配置servlet初始化
<servlet>
<servlet-name>Beer</servlet-name>
<servlet-class>com.example.BeerSelect</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
注意:只要數字大於0,就表示在部署時或者服務器啓動時初始化這個servlet,而不是等到第一個請求到來時才初始化。數值越小越先加載。
5、與EJB有關的DD標記
(1)本地bean的引用
<ejb-local-ref>
<ejb-ref-name>ejb/Customer</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.baidu.CustomerHome</local-home>
<local>com.baidu.Customer</local>
</ejb-local-ref>
(2)遠程bean的引用
<ejb-ref>
<ejb-ref-name>ejb/Customer</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.baidu.CustomerHome</home>
<remote>com.baidu.Customer</remote>
</ejb-ref>
6、JNDI <env-entry>的DD標記
<env-entry>
<env-entry-name>rates/discountRate</env-entry-name>
<env-entry-name>java.lang.Integer</env-entry-name>
<env-entry-value>10</env-entry-value>
</env-entry>