해당 글은 개인적인 공부 내용을 정리하는 것을 목적으로 하고있습니다. 설명이 다소 부족하거나 중간 내용이 생략될 수 있습니다.
WAS : web application server
에서 동작하는 프로그래밍 언어를 사용하면 가능하다.이클립스에서 제공하는 Dynamic web project
를 생성하면 쉽게 servlet 프로그램을 구현할 수 있다.
service
, doGet
, doPost
등이 있는데 먼저 service
메소드를 오버라이드해보자.import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
out.println("hello servlet");
}
}
HttpServletRequest
와 출력도구 HttpServletResponse
을 매개변수로 받아 활용 가능response
를 사용하여 사용자에게 hello servlet
문구를 응답하는 내용위의 클래스 파일은 바로 사용할 수 없다. 톰캣에게 web.xml의 내용을 통해 servlet 클래스라는 것을 명시해 주어야 한다. 명시하는 방법은 2가지가 있다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<!-- servlet mapping! -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
하단의 <!-- servlet mapping! -->
부분만 이해해보자.
build
라는 폴더가 있는데 해당 폴더의 .class 파일을 찾는 것 같다.<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="false"> <!-- 이부분 -->
@WebServlet("/hello") // <-- 다음과 같이 명시
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println("hello servlet");
}
}
위와 같이 작성하면 web.xml에서 설정한 것과 같이 작동한다.
위 설정들이 완료 되었다면 이클립스에서 톰캣에 해당프로젝트를 올려 실행하면 잘 작동할 것이다.