Mencegat semua permintaan satu WEBAPP menggunakan Java EE

Saya memiliki Aplikasi WEB yang diterapkan di Tomcat. Saya ingin mencegat semua permintaan masuk - mendapatkan atau memposting dan melakukan beberapa tugas. Saya ingin mencegat panggilan dari servlet, dari halaman JSP dll. Jadi saya membuat satu file web.xml yang terlihat seperti ini -

  <servlet>
    <description></description>
    <display-name>Transformer</display-name>
    <servlet-name>Transformer</servlet-name>
    <servlet-class>com.test.Transformer</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Transformer</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

Seperti yang bisa kita lihat, permintaan apa pun akan datang ke servlet pengontrol yang disebut Transformer. Sekarang servlet ini biasanya mencoba mengubah satu permintaan dari A ke B. Masalah yang saya hadapi adalah - Saya masuk ke dalam lingkaran. Saya hanya ingin mengubah permintaan untuk url /test.jsp menjadi /abc/test.jsp tetapi permintaan kedua /abc/test.jsp juga mengenai servlet Transformer dan akibatnya tidak berfungsi sebagaimana mestinya. Saya rasa saya bisa menggunakan Filter tetapi saya memiliki terlalu banyak servlet dan halaman JSP di aplikasi untuk memasang filter di mana-mana.


person Shamik    schedule 14.01.2010    source sumber


Jawaban (1)


Gunakan javax.servlet.Filter untuk mencegat. Anda dapat memetakannya ke /* dan itu akan mencegat semuanya.

<filter>
    <filter-name>YourFilterName</filter-name>
    <filter-class>com.package.YourFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>YourFilterName</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
person Bozho    schedule 14.01.2010
comment
Ya kamu benar. Saya bingung dengan penggunaan filternya. Itu memecahkan masalah saya. - person Shamik; 15.01.2010