[Sevlet/JSP] Servlet / JSP (0725)

왕감자·2024년 7월 25일

KB IT's Your Life

목록 보기
102/177

Servlet

  • 웹 컨테이너에 의해 관리
  • 다양한 클라이언트 요청에 의해 컨텐츠로 응답 가능한 자바 기반의 웹 컴포넌트

1) @WebServlet

어노테이션을 이용한 서블릿 맵핑

🔸 서블릿 맵핑 설정

@WebServlet(value="/맵핑명") = @WebServlet("/맵핑명")

  • 여러 개의 맵핑명
    • @WebServlet(name="서블릿별명", urlPatterns={"/맵핑명1", "/맵핑명2"}
    • @WebServlet(name="서블릿별명", value={"/맵핑명1", "/맵핑명2"}
    • @WebServlet({"/맵핑명1", "/맵핑명2"})

🔸 HttpServletRequest API

  • getHeader(String name) : String
    • getHeader("Content-Type") ➔ application/x-www-form-urlencoded
  • getHeaderNames() : Enumeration
  • getRequestURI() : String
  • getServletPath() : String
  • setCharacterEncoding(String encoding)
    : 서버에 디폴트 인코딩 방식과 클라이언트가 보내는 문자열의 인코딩과 다를 경우 일치 시킴
  • getParameter(String name) : String
  • getParameterNames() : Enumeration
  • getParameterValues(String name) : String[ ]

🔸 HttpServletResponse API

  • addHeader(String name, String value)
  • getStatus() : 클라이언트에게 응답이 전송된 후 HTTP 응답 상태 코드를 반환
  • getWriter() : PrintWriter
  • setContentType(String type)
  • getOutputStream() : ServletOutputStream, binary(ex.이미지) 직접 내보냄

2) 서블릿 LifeCycle

🔸 메서드

  • init() : 인스턴스 처음 실행 될 때 단 한번 호출
  • service() : doGet 또는 dePost에서 주로 작업
  • destroy() : 인스턴스가 웹 컨테이너에서 제거 될 때 호출

3) 서블릿 응답 처리

✅ 클라이언트 ➔ 서블릿
✅ 서블릿은 처리한 결과를 html 형식으로 응답 처리

🔸 문자셋 설정

response.setContentType("text/html;charset=UTF-8")

🔸 응답 데이터 전송

  • 문자 데이터
    • response.getWriter()
  • 바이너리 데이터
    • response.getOutputStream()

3) 서블릿 작업 장단점

🔸 장점

  • java 기술을 그대로 사용 가능

🔸 단점

⇨ 대안: JSP




JSP (Java Server Page)

  • 태그 기반 웹 컴포넌트
  • 동적 실행
  • 개발: 텍스트 ➔ 운영: 서블릿으로 자동 변환되어 실행
  • MVC 패턴의 View

index.jsp ➔ index_jsp.class ➔ index_jsp.java

  • 자동으로 JSP를 통해 out.write 작성




MVC 패턴

  • 비지니스 로직 : Servlet (C)
  • 화면 출력 : JSP (V)

0개의 댓글