สกัดกั้นคำขอทั้งหมดของ WEBAPP หนึ่งรายการโดยใช้ Java EE

ฉันมีแอปพลิเคชันเว็บที่ใช้งานใน Tomcat ฉันต้องการสกัดกั้นคำขอที่เข้ามาทั้งหมด - รับหรือโพสต์และดำเนินการบางอย่าง ฉันต้องการสกัดกั้นการโทรจากเซิร์ฟเล็ต จากหน้า JSP เป็นต้น ดังนั้นฉันจึงสร้างไฟล์ web.xml หนึ่งไฟล์ซึ่งมีลักษณะเช่นนี้ -

  <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>

ดังที่เราเห็นแล้ว คำขอใดๆ จะมาที่เซิร์ฟเล็ตคอนโทรลเลอร์ที่เรียกว่า Transformer ตอนนี้เซิร์ฟเล็ตนี้มักจะพยายามแปลงคำขอหนึ่งรายการจาก A เป็น B ปัญหาที่ฉันเผชิญคือ - ฉันกำลังเข้าสู่วงวน ฉันแค่ต้องการแปลงคำขอสำหรับ url /test.jsp เป็น /abc/test.jsp แต่เป็นคำขอที่สอง /abc/test.jsp กำลังกดปุ่ม Transformer servlet เช่นกัน และด้วยเหตุนี้จึงไม่ทำงานตามที่ตั้งใจไว้ ฉันคิดว่าฉันสามารถใช้ตัวกรองได้ แต่ฉันมีเซิร์ฟเล็ตและหน้า JSP มากเกินไปในแอปพลิเคชันที่จะใส่ตัวกรองทุกที่


person Shamik    schedule 14.01.2010    source แหล่งที่มา


คำตอบ (1)


ใช้ javax.servlet.Filter เพื่อสกัดกั้น คุณสามารถแมปมันกับ /* และมันจะดักจับทุกอย่าง

<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
ใช่คุณถูกต้อง. ฉันสับสนกับการใช้ตัวกรอง มันแก้ปัญหาของฉันได้ - person Shamik; 15.01.2010