Hello Servlet — 실습 / 소요 시간: 약 30분
Eclipse 에서 Dynamic Web Project 를 만들고, Tomcat 서버를 연결한 뒤, 가장 단순한 Servlet 한 개로 브라우저에 「Hello, World」를 띄웁니다.
Window → PreferencesServer > Runtime Environments 선택File → New → Dynamic Web Projecthello-webhello-web 프로젝트가 보이나요?src, WebContent(또는 src/main/webapp) 가 보이나요?src(또는 src/main/java)에서 우클릭 → New → ClasshelloHelloServletpackage hello;
import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("<h1>Hello, World</h1>");
}
}
Servlet API 가 클래스패스에 없는 상태입니다. Project Properties → Project Facets 에서 Dynamic Web Module 이 켜져 있는지, Targeted Runtime 에 Tomcat 이 체크되어 있는지 확인.
@WebServlet 의 import 가 javax.servlet.annotation.WebServlet 로 되었나요?Run As → Run on Serverhttp://localhost:8080/hello-web/hello
※ 컨텍스트 경로(hello-web) 부분은 강사가 안내한 값과 다를 수 있습니다.
화면에 큰 글씨로 Hello, World 가 보입니다.
| 증상 | 원인 / 해결 |
|---|---|
| 404 Not Found | URL 경로 오타. /hello-web/hello 의 hello-web 이 프로젝트 컨텍스트와 다를 수 있음. |
| 500 Server Error | 코드 안에서 예외 발생. Console 의 빨간 글씨 스택 트레이스 확인. |
| 한글 깨짐 | resp.setContentType("text/html;charset=UTF-8") 누락. |
| 포트 충돌 | 8080 이 이미 사용 중. Tomcat 의 server.xml 에서 포트 변경 또는 사용 중 프로세스 종료. |