หากคุณอยู่ใน servlet ตัวควบคุมด้านหน้าซึ่งแมปกับรูปแบบคำนำหน้าคุณก็สามารถHttpServletRequest#getPathInfo()
ใช้ได้
String pathInfo = request.getPathInfo();
// ...
สมมติว่ามีการแมป servlet ในตัวอย่างของคุณ/secure
แล้วสิ่งนี้จะส่งกลับ/users
ซึ่งจะเป็นข้อมูลที่น่าสนใจ แต่เพียงผู้เดียวภายใน servlet ตัวควบคุมด้านหน้าทั่วไป
หากมีการแมป servlet บนรูปแบบคำต่อท้าย (อย่างไรก็ตามตัวอย่าง URL ของคุณไม่ได้ระบุว่าเป็นกรณีนี้) หรือเมื่อคุณอยู่ในตัวกรอง (เมื่อยังไม่จำเป็นต้องกำหนด servlet ที่จะเรียกใช้ดังนั้นgetPathInfo()
สามารถส่งคืนได้null
) ทางออกที่ดีที่สุดของคุณคือการซับ URI คำขอด้วยตัวคุณเองตามความยาวของเส้นทางบริบทโดยใช้String
วิธีการปกติ:
HttpServletRequest request = (HttpServletRequest) req;
String path = request.getRequestURI().substring(request.getContextPath().length());
// ...