[JSP] 서블릿

:)·2024년 4월 11일

개발

목록 보기
15/19
post-thumbnail

서블릿

  • 클라이언트의 요청을 받으면 서버에서 처리한 후 응답으로 결과값만 보내는 구조
  • 자바 언어를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양
  • 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종
  • 서블릿: 기본적으로 JAVA→ HTML 작성시 불편 .. ↔ JSP: 기본적으로 HTML, 필요한 부분만 JAVA 삽입

  • MVC 패턴:하나의 서블릿이나 JSP로 처리하던 것을 컨트롤러와 뷰, 모델 영역으로 역할을 나눈 것
    • 컨트롤러(1개): HTTP 요청을 받아서 파라미터를 검증, 비즈니스 로직을 실행. →뷰에 전달할 결과 데이터를 조회, 모델에 저장
    • 모델: 뷰에 출력할 데이터 보관
    • 뷰: HTML을 생성하는 부분
    • 다이나믹 프로젝트 생성시

특징

  1. URL 매핑 필수

    1. 요청을 받아 처리하는 것이 jsp가 아니고 자바 클래스이므로 자바 클래스와 연결되는 url 이 필요(url 설계: 프로젝트 시작시에 설계)
      1. 애노테이션 사용 : @WebServlet(urlPatterns = {배열})
      2. web.xml 에서 servlet 태그로 설정하기
  2. 서블릿 클래스는 javax.servlet.http.HttpServlet 를 상속한다.

  3. 생명 주기(life cycle) 존재, 이에 따른 메소드 동작

    • init() : 메모리에 없을 때 요청을 받았다면 초기화 메소드로 가장 먼저 실행
    • service() : 요청이 오면 실행되는 메소드. GET과 POST 모두 처리, service()메소드가 구현한 내용이 실행되면(재정의 메소드로 정의되어 있으면)
      doGet() 또는 doPost()는 실행 X
    • doGet() : Get 요청일 때 실행하는 메소드
    • doPost() : POST 요청일 때 실행하는 메소드
    • destroy() : 메모리에서 서블릿이 제거가 될때 실행되는 메소드
      • 일반적으로 service() 만 사용하거나 또는 doGet() 과 doPost() 만 사용
  4. service, doGet, doPost 메소드의 인자 : 메소드로 전달해 사용

    • HttpServletRequest request : 요청
    • HttpServletResponse response : 응답
  5. jsp 내장객체는 요청,응답 외에는 서블릿에서 직접 선언해서 사용

    • session 은 HttpSession 객체로 선언
    • out 은 PrintWriter 객체로 선언

    * 주의 사항 : 서블릿의 url 이름이 동일하거나 url 에 오류가 있으면 톰캣 시작 X

코드

  • @WebServlet(urlPatterns = {"/"},description = "모든 요청을 받는 서블릿")
  • urlPatterns = {"/customers.cc"} → .cc 라는 임의의 페이지를 만들어냄 →해당 주소로 a 태그를 통해 이동 가능
  • doGet(req,resp) & throws 필수
@WebServlet(urlPatterns = {"/customers.cc"}, description="고객 전체 조회")
public class CustomerServlet extends HttpServlet{

	private static final long serialVersionUID = 1L;
	private static final Logger logger = LoggerFactory.getLogger(CustomerServlet.class);

@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}

JSP와 서블릿 차이

  • 서블릿에서는 jdbc 관련된 실행만 하고, 조회결과는 jsp에서 웹페이지 만들어 확인
서블릿JSP
자바코드 안에서 전체 HTML 작성HTML 코드 안에서 필요한 부분만 자바코드를 스크립트 형태로 추가 <% %>
변수 선언 및 초기화 필수 선행기능을 내장 객체로 제공, 즉시 사용가능
컨트롤러를 만들때 사용처리된 결과를 보여주는 뷰 만들때 사용
profile
:) GITHUB: https://github.com/YJ2123412

0개의 댓글