서블릿(Servlet)
JSP 표준을 사용하기 이전에 동적인 웹페이지를 만들려면 Java를 이용해 일일이 태그를 만들어서 서버로 전송해야 했다. 서버에서 클라이언트에 Java 코드를 이용해 태그를 만들어서 보내는 방식이었다.
이 작업은 네트워크 연결부터 각종 객체의 생성 등 해야 할 일이 너무 많아 개발자가 혼자 작업하려면 너무 많은 시간이 걸리기 때문에, 클래스를 따로 만들어 대부분의 내부적인 처리는 이 클래스가 맡고 나머지를 개발자가 채우는 방식으로 개발했다.
일반적인 서블릿의 개발 과정
- 서블릿 규약에 따라 자바코드를 작성한다.
- 자바코드를 컴파일해 클래스 파일을 생성한다.
- /WEB-INF/classes 폴더에 클래스파일을 패키지에 맞게 위치시킨다. (보통 자동으로 생성됨)
- web.xml 파일에 서블릿 클래스를 설정한다.
- 톰캣 등의 컨테이너를 실행한다.
- 웹 브라우저에서 확인한다.
주의사항
- 서블릿 클래스는 디폴트 패키지에 위치시킬 수 없다. 반드시 패키지 내에 기본 패키지를 생성하고, 그 안에 서블릿 클래스를 두어야 한다.
- 꼭 HttpServlet 클래스를 상속받고, doGet 메소드와 doPost 메소드를 오버라이딩 해야 한다.
- 서블릿에 접근할 수 있도록 매핑 정보를 꼭 등록해야 한다.
매핑방법
- web.xml로 매핑하기
x// web. xml 내에 작성해준다.
// 작성을 완료하고 저장한 뒤, 서버가 실행 중이었다면 반드시 서버를 재시작 해주어야 적용된다.
// 서블릿 클래스 등록
<servlet>
<servlet-name>해당 서블릿을 참조할 때 사용할 이름</servlet-name>
<servlet-class>서블릿으로 사용할 클래스의 이름</servlet-class>
</servlet>
// 서블릿 클래스 매핑정보 등록
<servlet-mapping>
<servlet-name>매핑할 서블릿명</servlet-name>
<url-pattern>매핑할 URL 패턴</url-pattern>
</servlet-mapping>
- @WebServlet애노테이션으로 매핑하기
xxxxxxxxxx
// Servlet class 위에 작성해준다.
urlPatterns = "/sample") // URL패턴을 /sample로 지정해주었다. (
public class SampleServlet extends HttpServlet {
}
// 두 개 이상의 URL 패턴을 지정하는 경우
urlPatterns = {"/sample", "/Sample"}) (
public class SampleServlet extends HttpServlet {
}
참고)
web.xml과 애노테이션 모두에서 매핑을 하면, web.xml 파일에서 지정한 클래스의 객체가 생성되고 애노테이션이 적용된 클래스의 객체가 생성되어 각각의 URL 패턴에 모두 매핑된다.
URL 패턴 매핑 규칙
- '/'로 시작하고 '/*'로 끝나는 url-pattern은 경로 매핑을 위해서 사용한다.
- '*.'로 시작하는 url-pattern은 확장자에 대한 매핑을 할 때 사용한다.
- '/'만 포함하는 경우 어플리케이션 기본 서블릿으로 매핑한다.
- 이 규칙 외의 나머지 다른 문자열은 정확한 매핑을 위해서 사용한다.
참고) 최범균 저. 최범균의 JSP 2.3 웹 프로그래밍 기초부터 중급까지. 2015.
'공부 > web' 카테고리의 다른 글
DI(의존성 주입)과 IoC(제어의 역행) (0) | 2018.05.01 |
---|---|
STS를 사용해서 Spring project 만들기 (org.apache.maven.plugin.war.WarMojo error 해결방법) (0) | 2018.05.01 |
MVC패턴과 모델1, 모델2 구조 (0) | 2018.04.27 |
[홈페이지 만들기] jQuery 마우스 이벤트 (0) | 2018.03.26 |
[홈페이지 만들기] 상단메뉴 만들기 (0) | 2018.03.20 |
댓글