본문 바로가기

교재 실습249

42. 서블릿에서 뷰 분리하기 (3) 5. 뷰 컴포넌트 만들기 MemberListServlet 클래스로부터 받은 회원 목록 데이터를 가지고 화면을 생성하는 JSP를 web05 프로젝트에서 webapp폴더 아래에 member 폴더를 만들고 MemberList.jsp를 생성한다. 회원목록 신규 회원 , , , [삭제] page 지시자의 import 속성은 JSP 엔진이 서블릿 소스 MemberList_jsp.java를 생성할 때 다음과 같이 import 코드를 만든다. C:\javaide\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\web05\org\apache\jsp\member/MemberList_jsp.java import spms.. 2022. 6. 12.
41. 서블릿에서 뷰 분리하기 (2) 4. 서블릿에서 뷰 관련 코드 제거 web04 프로젝트의 src/main/java의 spms.servlets 패키지에서 MemberListServlet.java 파일을 복사하여 web05 프로젝트의 src/main/java에 spms.servlets 패키지를 만들어 복사한다. 이후 다음과 같이 MemberListServlet 클래스를 수정한다. package spms.servlets; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java... 2022. 6. 11.
40. 서블릿에서 뷰 분리하기 (1) 본격적으로 MVC 아키텍처를 경험하기 위한 첫 작업으로 기존 서블릿으로부터 뷰(View) 역할을 분리한다. 클라이언트로부터 요청이 들어오면 서블릿은 데이터를 준비(모델 역할)하여 JSP에 전달(컨트롤러 역할)한다. JSP는 서블릿이 준비한 데이터를 가지고 웹 브라우저로 출력할 화면을 만든다(그림 1). 1. 값 객체(VO) = 데이터 수송 객체(DTO) 데이터베이스에서 가져온 정보를 JSP페이지에 전달하려면 그 정보를 담은 객체가 필요한데, 이렇게 값을 담는 용도로 사용하는 객치를 '값 객체(value object)'라고 부른다. 값 객체는 계층 간 또는 객체 간에 데이터를 전달하는데 이용하여 '데이터 수송 객체(data transfer object)'라고도 부른다. 또한, 값 객체는 업무영역(busin.. 2022. 6. 9.
39. JSP의 주요 구성 요소 (3) - JSP 내장 객체 JSP 페이지에서 스크립트릿 이나 표현식 을 작성할 때 별도의 선언 없이 사용하는 자바 객체가 있다. 이런 객체를 JSP 내장 객체(Implicit Objects)라 한다. Calculator.jsp에 작성된 스크립트릿 태그의 일부 내용이다. request 객체가 바로 내장 객체에 해당한다. JSP 기술 사양서에는 스크립트릿이나 표현식에서 JSP 내장 객체의 사용을 보장한다고 되어 있으므로 객체를 선언하지 않고 바로 사용할 수 있다. 이것이 가능한 이유를 JSP 엔진이 만든 서블릿 파일의 _jspService()에 선언된 변수들을 확인한다. C:\javaide\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Ca.. 2022. 2. 5.
38. JSP의 주요 구성 요소 (2) - JSP 전용 태그 : 지시자 는 JSP 전용 태그로 '지시자(Directives)나 '속성'에 따라 특별한 자바 코드를 생성한다. JSP 지시자에는 page, taglib, include가 있다. page 지시자는 JSP 페이지와 관련된 속성을 정의할 때 사용하는 태그다. 2022. 2. 4.
37. JSP의 주요 구성 요소 (1) JSP의 작성법을 배우며 작성할 때 사용할 수 있는 JSP 전용 태그와 그 태그의 용도를 알아보며, JSP로 서블릿 파일을 만들 때 JSP 전용 태그가 어떤 자바 명령문으로 바뀌는지도 알아본다. JSP를 구성하는 요소는 크게 2가지로 템플릿 데이터와 JSP 전용 태그이다. 템플릿 데이터는 클라이언트로 출력되는 콘텐츠(HTML, 자바스크립트, 스타일 시트, JSON 형식 문자열, XML, 일반 텍스트 등)이고, JSP 전용 태그는 특정 자바 명령문으로 바뀌는 태그이다. 계산기 프로그램을 JSP로 구현하여 계산기 화면을 출력하고, 사용자가 입력한 값을 계산하여 결과를 출력하는 JSP를 만들어본다. web05 프로젝트의 WebContent 폴더에 calc 폴더를 만들고 이 폴더에 Calculator.jsp 파.. 2022. 2. 3.
36. 뷰 컴포넌트와 JSP (2) JSP 엔진은 JSP 파일로부터 서블릿 클래스를 생성할 때 HttpJspPage 인터페이스를 구현한 클래스를 만든다. HttpJspPage를 구현한다는 것은 결국 Servlet 인터페이스도 구현한다는 것이기 때문에 해당 클래스는 서블릿이 될 수 밖에 없다. 이 인터페이스에 선언된 메서드를 살펴보면, jspInit()는 JSP 객체(JSP로부터 만들어진 서블릿 객체)가 생성될 때 호출된다. 자동 생성된 서블릿 소스 코드를 보면 init()가 호출될 때 jspInit()를 호출하도록 코딩되어 있다. 만약 JSP 페이지에서 init()를 오버라이딩할 일이 있다면 init()대신 jspInit()를 오버라이딩한다. jspDestroy()도 마찬가지로 JSP 객체가 언로드(Unload)될 때 호출된다. 자동 생성.. 2022. 2. 2.
35. 뷰 컴포넌트와 JSP (1) MVC 아키텍처에서 뷰 컴포넌트를 만들 때 보통 JSP를 사용한다. 뷰 컴포넌트의 역할은 웹 브라우저가 출력할 화면을 만드는 일이다. JSP가 어떤 기술이기에 뷰 컴포넌트를 만들 때 사용하는지 알아본다. 이전 예제에서는 웹 브라우저에 보낼 화면을 만들고자 출력 메서드를 호출하였다. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(""); ou.. 2022. 2. 1.
34. MVC 이해하기 실무에서 다년간 다양한 업무 시스템에 적용되고 검증되어 좋다고 증명된 방법을 최선의 관행(best practice)이라고 한다. 실무 웹 애플리케이션 개발에 있어 최선의 관행으로 알려진 'MVC 아키텍처(Architecture)'에 대해 알아보며, 서블릿의 단점을 보완하기 위해 등장한 JSP(JavaServer Page)라는 기술도 함께 배운다. 먼저 MVC 아키텍처의 구성요소인 모델(model), 뷰(view), 컨트롤러(controller)의 역할과 구동원리를 알아본다. 이전까지의 예제에서는 클라이언트의 요청 처리를 서블릿 홀로 담당하는 올인원(All-in-one)방식이었다(그림 1). 글로벌 환경에서의 기업들은 더 짧은 주기로 제품이나 서비스를 제공하는데, 이를 위해서는 조직이나 업무 프로세스가 자.. 2022. 1. 31.