Servlet 과 JSP 의 역할
Sun Microsystems가 제시한 웹 개발 표준에서는 ,
Servlet : 실행코드 방식 ➡️ Controller 역할
JSP : 스크립트 코드 방식 ➡️ View 역할
Servlet
:MVC 구조의 Controller
Servlet은 Java로 작성된 서버 측 프로그램으로, 클라이언트 요청을 받아들이고 응답을 생성하는 Controller 역할
HttpServlet 클래스를 상속하여 구현되며, 네트워크 프로그래밍 없이도 간단히 웹 요청을 처리할 수 있다.
네트워크 프로그래밍을 사용하지 않고 라이브러리를 사용하여 손쉽게 사용할 수 있게 되었다.
✔️ HttpServlet: response와 request 객체를 사용해 요청과 응답을 처리하는 서블릿 클래스
서블릿 실행 파일 경로
컴파일 된 파일(.class)은 build 라는 폴더에 classes 안에 있고 ,
작업 파일 (.java)은 src 폴더 안에 있다.
서블릿의 멀티 스레딩 지원
하나의 서블릿 인스턴스가 여러 스레드를 통해 동시에 클라이언트 요청을 처리할 수 있어 효율적이다.
HttpServlet 클래스
response와 request 객체를 사용해 요청과 응답을 처리하는 서블릿 클래스
계층도
Object → 인터페이스: Servlet, ServletConfig, Serializable
GenericServlet(추상 클래스) → HttpServlet(추상 클래스)
Servlet 클래스의 실행 방식
클라이언트의 요청에 자동반응하는 이벤트 드리븐 방식으로 작동
요청이 GET 방식이면 doGet(), POST 방식이면 doPost()가 호출된다.
URL 매핑 및 네이밍 규칙
URL 매핑을 통해 특정 URL 요청을 서블릿과 연결할 수 있다.
어노테이션(@WebServlet)과 web.xml 설정 파일 모두 매핑을 설정할 수 있지만,
프로젝트 전체에서 중복된 매핑 네임은 허용되지 않는다.
매핑 네임 중복시 아래와 같다.
@ 설정 (@WebServlet(""))
- 단일 설정
@WebServlet("/hello")
- 다중 설정
url 배열 형태로 복수 선언가능 → 배열로→ urlPatterns
@WebServlet(urlPatterns = {"/slist", "/안녕", "/123", "/7seven"})
그러나 프로젝트 전체 기준 중복되면 안됨 : server Start 안된다.
숫자, 한글 사용시 오류는 없으나 비추 !
web.xml 설정 <servlet>
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>servlet01.Ex02_StudentList</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/slist</url-pattern>
<url-pattern>/123</url-pattern>
</servlet-mapping>
위 XML 설정은 @WebServlet(urlPatterns = {"/slist", "/123"})와 동일한 역할
서블릿 클래스 법칙
1. 모든 서블릿 클래스는 반드시 상속받아야한다.
2. 상속받은 서블릿은 doGet() , doPost()를 반드시 구현해야한다.
3. 서블릿 엔진은 사용자의 요청을 받았을 때, service() 메서드를 호출하여 doGet 또는 doPost 메서드를 실행
4. 파라미터는 HttpServletRequest , HttpServletResponse 두개의 클래스를 사용한다.
'Developer > Spring eGov4.0 (Java11, Tomcat9)' 카테고리의 다른 글
Servlet 알아보기 3 (lifecycle) (0) | 2024.11.01 |
---|---|
Servlet 알아보기 2 (메서드 사용) (0) | 2024.11.01 |
webProgramming이란 ? WAS란 ? (0) | 2024.10.31 |
Spring , AOP란 ? (0) | 2024.10.31 |
Servlet - jsp, Dynamic web project 시작 !, servlet 시작 ! (0) | 2024.10.30 |