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
________________________________________________________________
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
<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> --> |
<!--
<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> --> |
<!--
<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> --> |
'Development > JSP & Servlet' 카테고리의 다른 글
jsp - *.jsp를 WEB-INF 아래에 숨겨라 (0) | 2012.03.23 |
---|---|
request.setCharacterEncoding (0) | 2012.03.23 |
JSP (0) | 2012.02.05 |
JSP와 HTTP 주석 (0) | 2010.12.12 |
page디렉티브 contentType="charset=euc-kr"과 pageEncoding="euc-kr"의 차이 (0) | 2010.12.12 |