هل هناك طريقة لرسم خريطة java servlet إلى */؟
سؤال
أريد أن أتعاطف مع Servlet
إلى عناوين URL التي تنتهي /
, ، مثل /user/register/
, /user/login/
, ، ولكن ليس أي مورد آخر تحت هذا المسار ، لا /*
.
حاولت /*/
, ، لكنه لا يعمل.
المحلول
قد أكون مخطئًا ، لكنني لست متأكدًا من أن هذا ممكن. يستخدم Wildcard * فقط في نهاية أنماط عنوان URL:
# this is a valid pattern to match anything after root:
*/
# this does not match anything because nothing can come after *
/*/
# this would match anything after the . that was htm
*.htm
نصائح أخرى
خريطة أ Filter
على /*
ودعه يحدد ما إذا كان الطلب يحتاج إلى تمرير عبر servlet أم لا.
if (request.getRequestURI().endsWith("/")) {
request.getRequestDispatcher("/servleturl").forward(request, response);
} else {
chain.doFilter(request, response);
}
بهذه الطريقة يمكنك فقط تعيين المطلوب Servlet
على /servleturl
.
قائمة الترحيب هي ما تبحث عنه. تحت قائمة الترحيب ، يمكنك تحديد قائمة بملفات الترحيب (كل منها تحت علامة ترحيبها الخاصة). عندما ينتهي عنوان URL للطلب /، سيبحث التطبيق عن وجود أحد تلك الملفات التي ذكرتها في قائمة ترحيب ملفات (بالترتيب الذي حددته هناك) تحت المجلد الذي أشار إليه عنوان URL ، و خدمة هذا المورد.