用eclipse右鍵new->other->web->web fragment project
確定后修改dynamic web project name為你要輸出到的項目,當然可以手動將項目打包成jar文件添加到另一個web項目的lib下,也是一樣的。
web fragment project:
web-fragment.xml
<?xml version="1.0" encoding="UTF-8"?> <web-fragment id="WebFragment_ID" version="3.1" 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-fragment_3_1.xsd"> <display-name>myFragmentTest</display-name> <name>myFragmentTest</name> <listener> <listener-class>com.listener.RequestListener</listener-class> </listener>
<!-- 設置web服務器對這個xml文件的讀取順序,一般在有多個web-fragment的時候會進行配置 -->
<ordering>
<before><others/></before>
</ordering>
</web-fragment>
requestListener.java
這是一個請求監聽器,每當你訪問一個頁面時就會觸發
package com.listener; import javax.servlet.ServletContext; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class RequestListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent event) { System.out.println("請求結束!"); } @Override public void requestInitialized(ServletRequestEvent event) { ServletContext application = event.getServletContext(); Integer count = (Integer) application.getAttribute("count"); if(null == count) { count = 0; application.setAttribute("count", count + 1); } else { application.setAttribute("count", count + 1); } System.out.println("請求的次數為:" + (count + 1)); } }
這就是另一個web項目
打包成jar的requestListener被加到了lib下
當web容器啟動的時候會實例化這個jar包里定義的listener
當你請求一個頁面的時候就會調用listener里的方法。