/******************************************************************************
* 파일 : HelloServlet.java
* 용도 : 초간단 서블릿 프로그램
* 작성자 : 성홍제
* 작성일 : 2006. 08. 24
* Version : 1.0
******************************************************************************/
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet
{
// 서버가 입력받은 정보는 req에 - 클라이언트가 request했으므로, 서버가 보낼 정보는 res에 - 서버가 response하므로.
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
// 현재 클라이언트에 보낼 문서는 text/html이고 euc-kr로 인코딩되어있다고 알림
res.setContentType("text/html;charset=euc-kr");
PrintWriter out = res.getWriter(); // 출력 스트림을 얻는다.
// html body 작성
out.println("<html>");
out.println("<head>");
out.println("<title>Hello, World</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello, World!!!");
out.println("</body>");
out.println("</html>");
out.close();
}
}
익스플로러에서 실행 시
1. http://localhost:8080/ITEA/servlet/HelloServlet
localhost:8080 으로 들어갔으므로, 아파치를 통하지 않고 바로 톰캣으로 들어간다.
/ITEA/ 는 톰캣에 deploy한 context를 말한다.
/servlet/ 은 class 파일이 있는 위치를 말한다.
HelloServlet 은 만들어서 D:\www\Tomcat 5.5\webapps\ITEA\WEB-INF\classes
에 넣어놓은 class파일명.
여기서 제대로 보이지 않으면 톰캣 설정에서 문제
D:\www\Tomcat 5.5\webapps\ITEA\WEB-INF\web.xml 파일을 찾아보자
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
오타는 없는가?
2. http://localhost/ITEA/servlet/HelloServlet
localhost 로 들어갔으므로 아파치를 통해 톰캣으로 연동된 것.
위의 경우에는 제대로 되는데, 2번의 경우 되지 않는다면 연동에서 실패한 것.
관련 문서들을 찾아보자.
D:\www\Apache2\conf\httpd.conf 파일을 제대로 설정했는가
특히 이 부분
JkMount /*servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /Mail ajp13
/*servlet/* 을 확인해 볼 것. 요청한 주소에 servlet/ 이 있다면 톰캣에서 처리하게 하겠다는 의미