Struts2與DWR在專案中的共存解決方案

2022-07-29 09:27:10 字數 1069 閱讀 1592

很多程式設計師在開發web專案中都會遇到乙個問題,就是struts

2無法與ajax框架dwr共存於專案中,其實,這是自然而然的事。

原因

首先,為何會衝突?其實原因很明顯,就是struts

2的過濾器和dwr的過濾器產生衝突,web server無法準確判斷準確的位址,

開啟web.xml會發現,我們配置了如下的資訊

首先是struts

2的過濾器

可以看到,在url-pattern中,我們將web專案下的所有路徑都交給了struts

2來處理

然而,我們又配置了dwr的過濾器

direct web remoter servlet/dwr/*下的所有路徑歸dwr,

但是,在前方已經配置了將web專案下的所有路徑交給struts

2,

因此,這就是產生衝突的根本原因。

《解決方案》

那麼,如何來解決這個衝突呢?struts

2和dwr誰也無法替代誰,在專案中必不可少,

我們能想到的最直接的方案就是:在struts

2所處理的路徑中,分出一部分讓dwr處理,這樣就兩全其美了。

要分出struts

2不處理的路徑,其實很簡單。

在struts

2中有個屬性叫excludepattern,也就是用來配置struts

2不處理的路徑

?看到這裡,我們突然恍然大悟,心情異常激動,

於是我們只需要在struts

.xml中新增配置

讓/dwr/*下的全部路徑歸dwr。

Struts2與DWR在專案中的共存解決方案

1.struts2和dwr為什麼會衝突?最近很多同學都在問同樣乙個問題,struts2和dwr該如何共存?我們先分析一下為什麼會出現衝突.struts2通過strutsprepareandexecutefilter過濾器來處理請求,常見的配置如下 struts2 org.apache.struts2...

Struts2與DWR在專案中的共存解決方案

1.struts2和dwr為什麼會衝突?最近很多同學都在問同樣乙個問題,struts2和dwr該如何共存?我們先分析一下為什麼會出現衝突.struts2通過strutsprepareandexecutefilter過濾器來處理請求,常見的配置如下 struts2 org.apache.struts2...

Struts2與DWR在專案中的共存解決方案

1.struts2和dwr為什麼會衝突?最近很多同學都在問同樣乙個問題,struts2和dwr該如何共存?我們先分析一下為什麼會出現衝突.struts2通過strutsprepareandexecutefilter過濾器來處理請求,常見的配置如下 struts2 org.apache.struts2...