[jsp] jsp VS servlet VS javabean

전주은·2022년 12월 2일
0
post-thumbnail

JSP, Servlet, JavaBean은 모두 Java 웹 개발에서 사용되는 기술이지만, 각각의 역할과 특징이 다르다.

✔ JSP(Java Server Pages)

  • HTML 코드와 Java 코드를 혼합하여 Dynamic Web Page를 생성하는 데 사용되는 서버 측 웹 기술이다.
  • Servlet을 보완하면서도 HTML과 유사한 구문을 사용하여 웹 애플리케이션을 작성하기에 편리하다.

JSP 장점

  1. 쉬운 개발: JSP는 HTML 페이지 내에 Java 코드를 삽입하여 개발할 수 있으므로, 일반적인 HTML과 마찬가지로 작성이 가능하다.

  2. 데이터베이스 연동 용이성: JSP는 데이터베이스와의 연동이 쉽다. JDBC(Java Database Connectivity) API를 사용하여 데이터베이스와 연동할 수 있다.

  3. 대용량 트래픽 처리 용이성: JSP는 대용량 트래픽 처리에 용이하다. JSP는 컨테이너에서 미리 컴파일되기 때문에, 매 요청마다 컴파일하지 않아도 된다. 따라서, 많은 양의 트래픽을 처리할 때, 서버의 부하를 줄일 수 있습니다.

JSP 단점

  1. 떨어지는 코드 가독성: JSP에서는 HTML 코드와 자바 코드가 섞여 있기 때문에 코드 가독성이 떨어진다다. 특히 복잡한 로직을 처리하는 경우 코드가 길어지고 복잡해져 유지보수가 어려워질 수 있다.

  2. 유지보수 어려움:JSP는 웹 페이지의 디자인과 로직이 하나의 파일에 섞여 있어 디자인 변경이 필요한 경우 로직 코드도 함께 변경해야 하므로 유지보수에 어려움을 겪을 수 있다.

  3. 성능 저하:JSP는 클라이언트의 요청마다 JSP 파일을 컴파일하여 실행하기 때문에 서버 부하가 매우 커진다. 또한 JSP 파일에 자바 코드가 많이 들어가면서 서버의 메모리 사용량도 높아지는 문제가 있다.

  4. 보안 문제:JSP 파일에서는 HTML 코드와 자바 코드가 함께 실행되므로, 사용자가 입력한 값에 대한 검증이 제대로 이루어지지 않으면 보안 문제가 발생할 수 있다.

✔ 서블릿(Servlet)

  • 자바를 사용하여 웹 애플리케이션을 만들 때, HTTP 요청 및 응답을 처리하기 위한 서버 측 웹 기술이다.
  • HTTP 프로토콜을 통해 클라이언트와 통신하고, 요청된 정보를 처리하여 결과를 반환한다.
  • JSP와 함께 사용될 수 있으며, JSP에서는 HTML 코드에 Java 코드를 삽입하여 Dynamic Web Page를 생성하고, Servlet에서는 JSP에서 처리할 수 없는 다양한 로직을 처리한다.
  • 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술이다.

서블릿의 특징

  • 클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트이다.
  • HTML을 사용하여 Response를 한다.
  • Java의 쓰레드를 이용하여 동작한다. 요청이 들어올 때마다 새로운 스레드가 생성된다.
  • MVC 패턴에서의 컨트롤러로 이용한다.
  • HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpSevelt 클래스를 상속한다.
  • HTML 변경시 Servelt을 재 컴파일해야하는 단점이 있다.(서버는 다시 내렸다 올려야함)
  • 세션 관리, 쿠키 처리 등 다양한 기능을 제공한다.
  • HTML, XML, JSON, 이미지 등 다양한 형식의 데이터를 처리할 수 있다.

서블릿 컨테이너

  • 서블릿을 담고 관리해주는 컨테이너
  • 서블릿의 실행 환경을 제공하는 프로그램으로, 서블릿의 생명주기 관리, 스레드 관리, 요청 및 응답 관리, 보안 관리 등을 수행
  • HttpServletRequest
    request 정보를 서블릿에게 전달하기 위한 목적으로 사용하며 헤더정보, 파라미터, 쿠키 , URI, URL등의 정보를 읽어 들이는 메소드와 Body의 Stream을 읽어 들이는 메서드를 가지고 있다
  • HttpServletResponse
    WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServletResponse 객체를 생성하여 서블릿에게 전달하고 이 객체를 활용하여 content type, 응답코드, 응답메세지등을 전송한다.

서블릿 동작 과정

  1. 클라이언트 요청이 서블릿 컨테이너로 전달된다.
  2. 서블릿 컨테이너는 요청을 처리하기 위해 HttpServletRequest와 HttpServletResponse 객체를 생성한다.
  3. 서블릿 컨테이너는 요청 URL과 매핑된 서블릿 클래스를 찾는다.
  4. 서블릿 클래스의 인스턴스가 존재하지 않으면 init() 메소드를 호출하여 인스턴스를 생성한다.
  5. 새로운 스레드를 생성하여 service() 메소드를 실행합니다. 이때 HttpServletRequest와 HttpServletResponse 객체를 인자로 전달한다.
  6. 서블릿 클래스는 요청에 대한 처리를 수행하고, HttpServletResponse 객체를 통해 클라이언트에게 응답한다.
  7. 요청 처리가 완료되면 destroy() 메소드를 호출하여 서블릿 인스턴스를 소멸시킨다.
  8. 서블릿 컨테이너는 HttpServletRequest와 HttpServletResponse 객체를 소멸시킨다.

✔ JavaBean

  • 자바에서 사용하는 소프트웨어 컴포넌트의 일종으로, 자바 객체를 단순하고 재사용 가능한 모듈로 만들어주는 클래스이다.
  • 특정 작업을 수행하기 위해 다른 클래스에서 사용할 수 있는 메서드와 속성을 제공한다.
  • 주로 비즈니스 로직, 데이터베이스 처리 등의 기능을 담당하며, JSP나 Servlet 등의 웹 프로그램에서 활용됩니다.

결론

JSP와 Servlet은 웹 애플리케이션 개발에 주로 사용되며, JavaBean은 비즈니스 로직, 데이터 처리 등을 모듈화하여 코드의 재사용성을 높이기 위해 사용된다.

0개의 댓글