web.xmlへのServlet登録について
こんばんは。EOAです。
今日は掲題の件についての備忘録。ちょっとだけ。
復習がてら、Servletをweb.xmlに登録する流れを書いていたんだけど、ふと気になった。
「これって、同じservlet-name要素に対して、複数のServlet登録しておいて、あるurl-pattern要素で呼び出した時に、複数登録しておいたServletが、web.xmlの記載順に実行されるなんてことが起こったりするのだろうか???」
というわけで、書いてみた。
・web.xml
<web-app> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>TestServlet01</servlet-class> <servlet-class>TestServlet02</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/TestServlet</url-pattern> </servlet-mapping> </web-app>
・TestServlet01.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet01 extends HttpServlet { // over ride method public void doGet( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); out.println("This is test01"); } }
・TestServlet02.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet02 extends HttpServlet { // over ride method public void doGet( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); out.println("This is test02"); } }
要はこれで、「コンテキストパス/TestServlet」のリクエストに対して、
This is test01 This is test02
って出るの?ということを見るのが今回の目的。
動かしてみた。その結果、
おおっ!!(興奮)