자바를 사용해서 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다.
클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에 전달한다.
JSP랑 비교
일반 자바 객체랑 비교
예시
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
// urlPatterns = "/hello" : 해당 URL이 호출되면 서블릿 코드 실행
// 아래처럼 xml로 등록해도 되고, 위처럼 어노테이션으로 해도 된다.
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// HttpServletRequest : 이를 통해 HTTP 요청정보 확인 가능
// HttpServletResponse : 이를 통해 HTTP 응답정보 확인 가능
System.out.println("Do Get");
resp.getWriter().println("<html>");
resp.getWriter().println("<header>");
resp.getWriter().println("</header>");
resp.getWriter().println("<body>");
resp.getWriter().println("<h1>Hello</h1>");
resp.getWriter().println("</body>");
resp.getWriter().println("</html>");
}
@Override
public void destroy() {
System.out.println("Servlet Destroy");
}
@Override
public void init() {
System.out.println("Servlet Init");
}
}
<!--web.xml-->
<web-app>
<display-name>Web Application</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>me.doflamingo.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>