JSP Container(Tomcat)는 invoke 메소드 내에서 서블릿 클래스의 로드, service 메소드 호출, session 관리,
error 메세지의 로딩 등 다양한 일을 한다.

 

public abstract void invoke(Request request, Response response)

org.apache.catalina.connector.Request
org.apache.catalina.connector.Response

 

API link :
http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Container.html#invoke(org.apache.catalina.connector.Request,%20org.apache.catalina.connector.Response)

 

________________________________________________________________

 

invoke
void invoke(Request request,
            Response response)
            throws java.io.IOException,
                   javax.servlet.ServletExceptionProcess the specified Request, and generate the corresponding Response, according to the design of this particular Container.

Parameters:
request - Request to be processed
response - Response to be produced
Throws:
java.io.IOException - if an input/output error occurred while processing
javax.servlet.ServletException - if a ServletException was thrown while processing this request


________________________________________________________________

 

<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>

 

==============================================================================================


출처 - http://blog.naver.com/PostView.nhn?blogId=estern&logNo=110012023046&widgetTypeCall=true


서블릿 Invoker

  Servlet Invoker는 서블릿을 web.xml에 설정하지 않아도 서블릿 클래스를 classes아래에서 찾아서 호출하여 줍니다. 3.x대에서는 이러한 방식으로 개발을 많이 하였습니다.

예를들어 다음과 같은 요청은 example.HelloServlet라는 서블릿 클래스를 CLASSPATH에서 찾아서 호출하여 줍니다. 하지만 보안상의 이유 등으로 권장사항이 아닙니다.

 

   http://localhost/servlet/example.HelloServlet 

 

Tomcat 4.1.x
 
  4.1.12 이후로 부터는 디폴트로 Servlet Invoker가 설정되어 있지않습니다. 따라서 4.1.12 이후 버젼에서 invoker를 사용하고자 할 경우는 /conf/web.xml 파일에서 주석 처리된 servlet-mapping의 주석을 제거하거나 주석내의 내용을 Context의 WEB-INF 폴더 아래의 web.xml에 추가해야합니다.
 

 

    <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>
 
 
<!--
    이 부분이 4.1.12 부터는 이와 같이 주석처리 되어 있습니다.
    물론 이전 버젼에서는 주석 처리가 되어 있지않습니다.
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
-->
 
 
 
Tomcat 5.0
 
  5.0에서는 서블릿 매핑 뿐만 아니라 invoker 서블릿 설정도 주석 처리되어 있습니다.  invoker를 사용하고자 할 경우는 /conf/web.xml 파일에서 주석 처리된 servlet 정의 부분 및 servlet-mapping의 주석을 제거하거나 주석내의 내용을 Context의 WEB-INF 폴더 아래의 web.xml에 추가해야합니다.
권장 사항은 conf/web.xml의 내용을 변경하기 보다는 Context의 WEB-INF 폴더 아래의 web.xml에 추가하는 것입니다.conf/web.xml의 설정을 변경하면 서버에 설정된 모든 Context에 적용되기 때문입니다.
 

 

<!--
    <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>
-->
 
<!-- The mapping for the invoker servlet -->
<!--
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
-->
 
 
 
Tomcat 5.5
  5.5는 5.0과 동일합니다.
  

 

<!--
    <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>
-->
 
<!-- The mapping for the invoker servlet -->
<!--
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
-->
       
Posted by linuxism
,