servlet을 호출할때 어떤씩으로 호출 되는지 잘 모르고 사용 할 수도 있고,
헷갈리는 분들은 참고 하시면 좋습니다.


우선 Tomcat Server의 Web.xml 에서 보안상의 이유로 inveker 부분은 주석처리가 되어있다.

이부분은 어떤 페이지에서도 Servlet을 호출하여 사용 할 수 있도록 해주는 부분이다.

풀지 않고 프로젝트내의 Web.xml에 Servlet mapping작업을 하여 사용 해도 된다.


1. Tomcat Server의 invoker 주석 풀어서 Servlet사용하기

- Tomcat Server [ Web.xml ]

     invoker 부분을 찾아서 맵핑 부분까지 두군데의 주석을 제거
     
    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

- 프로젝트 내의 web.xml에서 servlet호출을 위한 별도의 작업은 필요 없다.

     jsp에서 form의 action 부분에 직접 작성하여 해당 Servlet을 호출 한다.
                  ex) action="/devTest/servlet/test.Servlet"
                  맵핑값이 /servlet/* 인데 좌우로 프로젝트명과 해당 Servlet의 경로를 작성하면 된다.


2. 프로젝트 내의 Web.xml을 사용하여 Servlet 호출하기

- Tomcat Server의 Web.xml에서 inverker쪽 주석은 풀지 않아도 된다.

- 프로젝트 내의 Web.xml에 servlet호출을 위해 추가한다.

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>test.Servlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>/action.do</url-pattern>
 </servlet-mapping>

  jsp에서 호출 할때 form의 action 부분에 맵핑명(url-pattern)을 작성하면 된다.
             ex) action="action.do"

   이 방식을 사용 할때는 리플렉션을 이용하여 baseServlet을 두고 호출시 넘어온 해당 servlet을 호출하고
   결과 값을 뿌려줄 jsp명을 받아서 넘겨 주어야 한다.
   하나의 servlet만 사용 하진 않을것이고 모든 servlet을 web.xml에 정의하기에는 불편함이 많기 때문이다.




'Xml' 카테고리의 다른 글

[XML] XML Load Test  (0) 2012.01.06
[Xml] JEUS - WS 와 WAS 연결  (0) 2011.03.10
[Xml] Web.xml - 2  (0) 2011.03.02
[Xml] Web.xml  (0) 2011.03.02
[Xml] Ant - FTP 파일 업로드 하기  (0) 2010.12.22

+ Recent posts