ทำความเข้าใจกับการจับคู่รูปแบบ URL ในเซิร์ฟเล็ตและตัวกรอง [ซ้ำกัน]

ฉันมีข้อสงสัยบางประการในการทำความเข้าใจว่าค่าใน <url-pattern> ถูกตีความให้ตรงกันใน <servlet-mapping> หรือ <filter-mapping> อย่างไร โดยพื้นฐานแล้วความสงสัยเกิดขึ้นจากการตีความ * อย่างไร

สมมติว่าฉันปรับใช้ web-application(.war) ด้วยบริบท root /firstweb

พิจารณา <url-pattern> ต่อไปนี้ที่กำหนดไว้ใน web.xml

(1) <url-pattern> /* </url-pattern>
(2) <url-pattern> /test/abc </url-pattern>
(3) <url-pattern> /test/abc/* </url-pattern>
(4) <url-pattern> /*/abc </url-pattern>

สิ่งที่ฉันทราบคือ "*" ตรงกับสตริง/ข้อความใดๆ ด้วยเหตุนี้ฉันจึงมีข้อสงสัยบางประการ

Q1) สำหรับกรณี (1) ได้แก่ /* จะตรงกับสิ่งใดหรือไม่ หากเป็นเช่นนั้น รายการนี้จะตรงกับ /test, /text/abc, /test/abc ฯลฯ เมื่ออยู่ใน URL หรือไม่

Q2) ตอนนี้สำหรับกรณี (2) ได้แก่ /test/abc มันจะตรงกันหรือไม่เมื่อ url เท่ากับ /test/abc แล้ว /* ล่ะ เพราะอย่างที่ฉันเชื่อว่า * หมายถึงข้อความใดๆ ก็ตาม นี่จะไม่ทำให้รูปแบบการจับคู่คลุมเครือใช่ไหม

คำถามที่ 3) นอกจากนี้ ฉันเชื่อว่า URL ทั้งหมดเหล่านี้เกี่ยวข้องกับบริบทรูท เช่น URL ทั้งหมดมีลักษณะดังนี้: /firstweb/xxx' ,/firstweb/test/abc,/firstweb/`

เรายินดีเป็นอย่างยิ่งที่จะตอบทุกคำตอบด้วยคำพูดง่ายๆ เพื่อขจัดข้อสงสัยนี้

แก้ไข

ทำการค้นคว้าเพิ่มเติม ลิงก์ต่อไปนี้มีประโยชน์ในการทำความเข้าใจวิธีตีความ <url-pattern>

ก) จะเกิดอะไรขึ้นถ้ารูปแบบ url ตรงกับหลายเซิร์ฟเล็ต

ข) http://docs.roguewave.com/hydraexpress/3.5.0/html/rwsfservletug/4-3.html


person CuriousMind    schedule 15.04.2016    source แหล่งที่มา
comment
การถามคำถามหนึ่งข้อต่อคำถามช่วยให้ค้นหารายการที่ซ้ำกันได้ง่ายขึ้น คำถามแต่ละข้อเหล่านี้เคยถูกถามแยกกันมาก่อนแล้ว คำแนะนำ: เรียกดูรายการที่เกี่ยวข้องทางด้านขวามือ   -  person BalusC    schedule 16.04.2016
comment
@BalusC: ฉันเห็นด้วย แต่บางครั้งคำถามก็มีความสัมพันธ์กันซึ่งจำเป็นต้องรวมไว้ในที่เดียว ฉันดูลิงก์แล้วความสงสัยของฉันยังไม่ชัดเจน หากคุณสามารถตอบข้อ (1) และ (2) ได้จะดีมาก โดยส่วนตัวแล้วฉันตรวจสอบ Tomcat สำหรับ * และ /test/abc และดูเหมือนว่า * สามารถใช้ URL อินพุตใด ๆ /test /text /test/abc/xyz ...   -  person CuriousMind    schedule 16.04.2016
comment
1) ได้รับคำตอบใน stackoverflow.com/q/4140448 2) ได้รับคำตอบทางอ้อมด้วยคำตอบของ 1)   -  person BalusC    schedule 16.04.2016
comment
ขอบคุณสำหรับลิงค์นี้ ได้เห็นสิ่งนี้แล้ว .. ให้ฉันตรวจสอบอีกครั้ง .. ขอบคุณมาก!   -  person CuriousMind    schedule 16.04.2016