متغير "تطبيق" في url-pattern لرسم خرائط servlet
-
25-09-2019 - |
سؤال
أنا أتعلم Spring MVC (و Servlets بشكل عام) وبعد مثال MVC-Ajax من Springsource ، والذي يستخدم أساليب وحدة التحكم المشروحة. يبدو أن هناك فقط عنوان URL واحد (في web.xml) تم تعيينه إلى servlet في هذا المثال:
/برنامج/*
لقد قمت بنشر التطبيق كملف حرب ، وعنوان URL الفعلي القبيح الذي أطلبه هو http://127.0.0.1:8080/org.springframework.samples.mvc.ajax-1.0.0-20100407.233245-1/account.
لذلك ، يبدو أن "التطبيق" في "/app/*" هو متغير يتوافق مع "org.springframework.samples.mvc.ajax-1.0.0-20100407.233245-1 ، ومع ذلك ، فهو ليس عالمي "يمكن استخدامه في تطبيقي الخاص ، ويتناقض مع فهمي أن نماذج عنوان URL تحتوي على جزء من عنوان URL بعد اسم التطبيق. إذن ، ما هو "التطبيق"؟ أين تم تكوينه؟
المحلول
ألق نظرة على urlrewrite.xml ملف.
هذا هو المكان الذي يتم تعريفه على أن جميع عناوين URL الواردة (باستثناء تلك التي تبدأ /styles/
, /scripts/
, /images/
) سيتم إعادة كتابة مع /app/
في البداية
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
لذلك عندما يصل إلى servlet المرسل ، يكون عنوان URL في النموذج /app/myOriginalPath
.