728x90
서블릿(Servlet)
자바에서 웹 애플리케이션을 개발하기 위한 클래스
웹 서버(WAS, tomcat)와 연동되어 클라이언트(브라우저)의 요청을 받아 동적으로 응답을 생성
보통 HttpServlet을 상속(extends) 받아 사용한다.
✅ 주요 객체
- HttpServletRequest request
클라이언트의 요청 정보를 담고 있는 객체. 서버가 요청을 객체로 생성 - HttpServletResponse response
서버가 클라이언트에게 응답을 보낼 때 사용하는 객체. 서버가 요청을 객체로 생성
✅ Servlet vs JSP
- Servlet
- 자바 코드로 웹 로직을 처리하기에 적합
- UI 구성의 어려움 (HTML 작성이 복잡함)
- 이후 JSP 출현
- JSP (Java Server Pages)
- HTML에 자바 코드를 삽입해 UI를 쉽게 구성
- 복잡한 비즈니스 로직 처리에는 적합하지 않음
Servlet + JSP를 함께 사용하여,로직(Servlet)과 UI(JSP)를 분리하는 방식이 일반적이다
servlet 흐름
1. 주소창 : http:// localhost:8090/simple 입력 시, web.xml을 참조한다
2. web.xml
<servlet>
<servlet-name>simplecontoller</servlet-name>
<servlet-class>com.SompleContoller</servlet-class> // com 폴더에 있는 SompleContoller 호출
</servlet>
<servlet-mapping>
<servlet-name>simplecontoller</servlet-name>
<url-pattern>/simple</url-pattern>
</servlet-mapping>
- web.xml 에 설정된 servlet-mapping을 근거로 요청이 오면 해당 servlet 파일을 컴파일후 실행
- get, post는 자동 실행
3. servlet
@WebServlet("/Simple")
public class SimpleContoller extends HttpServlet {
...
// 클라이언트의 요청이 Post일 경우 자동실행
protected void doGet() {
...
}
// 클라이언트의 요청이 Get일 경우 자동실행
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// 1. 한글로 변환
// 2. 데이터 받기
// 3. 데이터 가공
// 4. 결과 저장(session, request ...)
// 5. 뷰 지정
// getRequestDispatcher : view Page 지정
RequestDispatcher dis = request.getRequestDispatcher("/simpleview.jsp");
}
// 6. view 에게 forward 방식 전달
//Request, response 객체 주소값을 forward 로 전달
dis.forward(request, response);
}
4. JSP
...
<body>
<%= request.getContextPath() %>
<a href="<%=request.getContextPath()%>">
</body>
Model = Java
View = JSP
Controller = Servlet
요즘 기술은 아니지만 리팩토링 할 때에 사용하게 될 수 있으므로 알아둘 것
'Java' 카테고리의 다른 글
HttpSession(서버 세션) (0) | 2025.04.03 |
---|---|
Comparable VS Comparator (0) | 2025.03.02 |
[Java] Stream (0) | 2023.06.21 |
오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2023.06.09 |
모던 자바 알아보기(람다, 스트림, Optional) (0) | 2023.05.30 |