요청에 의해 컨텐츠로 응답 가능한 자바 기반 웹 컴포넌트
- Server + Applet (Application + let(작은) = 작은 어플리케이션)
- 웹 컨테이너에 의해 관리
- 클라이 언트 요청 처리 후 동적 응답 HTML 생성
@WebServlet(name="MyServlet", urlPatterns={"/xxx", "/yyy" }) public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { } @Override public void destroy() { System.out.println("destroy 호출"); } @Override public void init() throws ServletException { System.out.println("init 호출"); } }
요청을 처리할 서블릿 지정
배포 서술자(web.xml)을 이용해 서블릿 등록/매핑
@WebServlet 어노테이션 이용한 서블릿 등록/매핑
@WebServlet(name="서블릿이름", value="/맵핑명"
서블릿을 URL에 매핑하여 등록
# 서블릿 맵핑 설정
@WebServlet("/맵핑명")
public class MyServlet extends HttpServlet { … }
# urlPattern 속성 여러개
@WebServlet(name="서블릿별명",
value={"/맵핑명", "/맵핑명2"})
public class MyServlet extends HttpServlet { … }

웹브라우저(url 요청/응답) ↔ Apache ↔ Tomcat ↔ DB

init()서블릿 초기화
service()doGet(), doPost()
destroy()서블릿 종료
Web Application Archive
.jsp확장자- 태그 기반의 웹 컴포넌트
- 클라이언트 요청 시 동적으로 실행
- 자동으로 Servlet(Java 코드)로 변환되어 실행
- 서블릿 → HTTP 통신 요청/응답 처리
- MVC 패턴에서 View 역할
index.jsp → index_jsp.java → index_jsp.class 로 컴파일

<% %>
| JSP 문법 |
|---|
<%-- 주석 --%> |
<%@ 지시자 %> |
<%! 자바 선언문 %> |
<% 자바 코드 %> |
<%= 자바 표현식 %> |
서블릿 JSP 형식 Java 코드 ⊃ HTML 코드 HTML 코드 ⊃ Java 코드 특징 java 코드 안에 html 코드 삽입되어 있는 형태
html 작성하는 java 코드 작업 복잡html 코드 안에 java 코드 삽입 되어 있는 형태
서블릿에 비해 html 코드 쉽게 작성 가능목적 java 코드 이용한 Business logic 처리에 적합
-> MVC 패턴의 Controller 역할tag 이용한 Presentation logic 처리에 적합
-> MVC 패턴의 View 역할
Form 태그<form action="action"> <!-- method 생략 기본값 get -->
<form action="action" method="get">
<form action="action" method="post">
http://서버IP:포트/컨텍스트명/경로명/login**?name=홍길동&age=20**http://서버IP:포트/컨텍스트명/경로명/login.jsp : <input type=”” name=”name명”/>.java : request.getParameter(name명)request.setCharacterEncoding("UTF-8");