2017. 3. 22. 21:15ㆍJava/web
서블릿 클래스를 작성하고, 클라이언트 Request를 처리해보자
브라우저에 'Hello world!'를 출력했을 때부터 시작해보기로 한다. 우선 Java Resources/src에 com.edu.bbs란 패키지를 생성하고, BBSServlet클래스를 만들어보자. BBSServlet클래스는 HttpServlet클래스를 상속받게 한다. HttpServlet클래스는 Java EE 7 API 문서에서 확인할 수 있다. Servlet은 웹 컨테이너(대표적으로 Tomcat, 서블릿 컨테이너라고도 부른다)에 의해 실행, 관리된다.
BBSServlet클래스에서 alt+shift+s를 눌러 Override/Implement Methods를 선택한다.
부모클래스인 HttpServlet클래스의 doGet, doPost메서드를 오버라이딩한다.
HttpServlet클래스의 부모클래스인 GenericeServlet클래스의 init(ServletConfig)메서드도 오버라이딩하자.
오버라이딩한 메서드들의 확인을 위해 콘솔에 찍히도록 바꿨다.
/** * BBSServlet.java * @Date 2017. 3. 23. */ package com.edu.bbs; import java.io.IOException; import java.util.HashMap; import java.util.Properties; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BBSServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("GET"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("POST"); } @Override public void init(ServletConfig config) throws ServletException { System.out.println("Initializing..."); } }
web.xml에 Servlet에 관해 정의해주자. 이제 URL패턴이 .bbs(확장자)인 요청을 bbsServlet이 처리하게 된다.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>bbs</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>bbsServlet</servlet-name> <servlet-class>com.edu.bbs.BBSServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>bbsServlet</servlet-name> <url-pattern>*.bbs</url-pattern> </servlet-mapping> </web-app>
브라우저에서 http://localhost/bbs/*.bbs로 접근하면 콘솔에 init, doGet메서드가 실행되는 것을 확인할 수 있다. URL에서 *(와일드카드)는 추후 login.bbs나 list.bbs 등 화면마다 매칭되게 만들 것이다.
'Java > web' 카테고리의 다른 글
[Web] 글쓰기 화면 만들기 (게시판 구현) (0) | 2017.04.05 |
---|---|
[Web] 싱글톤 패턴을 이용하여 데이터베이스 접근하기 (게시판 구현) (2) | 2017.04.04 |
[Web] 서블릿 생성하기(애노테이션) (0) | 2017.03.24 |
[Web] 톰캣이 웹 애플리케이션을 실행하는 순서 (0) | 2017.03.21 |
[Web] 톰캣 서버로 웹 애플리케이션 실행하기 (0) | 2017.03.15 |