본문 바로가기

728x90
반응형

개발

[JAVA - WEB] JSP 정의와 구성 요소 JSP 등장 서블릿으로 화면을 구성하는건 역시나 비효율적이죠. 개발자가 화면을 구성하기도 어렵고 디자이너가 자바 코드를 보기에는 너무 어려운 부분이니까요. 디자이너가 화면에 보여주는 부분을 쉽게 작업하게 하기 위해서 JSP 가 등장하였습니다. 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML 과 자바스크립트로 화면을 구현했으나 JSP 는 HTML, CSS 와 자바스크립트를 기반으로 JSP 요소들을 사용해 화면을 구현합니다. JSP 구성 요소 JSP 는 주로 웹 프로그램의 화면 기능과 모델 2 기반 MVC 에서 뷰(View) 의 기능을 담당합니다. JSP 구성요소는 다음과 같습니다. - HTML, CSS, 자바스크립트 - JSP 기본 태그 - JSP 액션 태그 - 커스텀 태그(프레임워크나 개.. 더보기
[JAVA - WEB] 서블릿 리스너(Listener) 서블릿 관련 Listener API 자바 프로그램의 이벤트 핸들러처럼 서블릿에서도 서블릿에서 발생하는 이벤트에 대해 적절한 처리를 해주는 여러가지 리스너를 제공합니다. Listener 메서드 기능 ServletContextAttributeListener attributeAdded() attributeRemoved() attributeReplaced() Context 객체에 속성 추가/제거/수정 이벤트 발생 시 처리 HttpSessionListener sessionCreated() sessionDestroyed() 세션 객체의 생성/소멸 이벤트 발생 시 처리 ServletRequestListener requestInitialized() requestDestroyed() 클라이언트 요청 이벤트 발생 시 처리.. 더보기
[JAVA - WEB] 서블릿 필터(Filter) 서블릿 속성과 스코프(scope) 속성은 앞에서 보았듯이 서블릿 API 의 setAttribute 로 바인딩하고 getAttribute 로 바인딩 된 속성을 가져와서 사용합니다. 그리고 속성을 제거할때는 removeAttribute 를 이용해 제거할 수도 있습니다. 서블릿 스코프는 서블릿 API 에 바인딩 된 속성에 대한 접근 범위를 의미합니다. 스코프 종류 서블릿 API 스코프 설명 애플리케이션 스코프 ServletContext 애플리케이션 전체에 대해 접근할 수 있습니다. 세션 스코프 HttpSession 브라우저에서만 접근할 수 있습니다. 리퀘스트 스코프 HttpServletRequest 해당 요청/응답 사이클에서만 접근할 수 있습니다. // setAttribute ... String ctxMesg.. 더보기
[JAVA - WEB] 세션(Session) 세션 세션 역시 웹 페이지들 사이의 공유 정보를 서버에 저장해두고 웹 페이지들을 매개해주는 방법이라는 점에서는 쿠키와 같습니다. 차이점은 쿠키는 보안에 취약하지만, 세션은 서버의 메모리에 생성되어 정보를 저장하므로 보안이 용이하여 웹 페이지에서 사용되는 정보 중에 로그인 정보처럼 보안이 요구되는 정보는 대부분 세션을 이용합니다. 세션은 각 브라우저 당 한개, 즉 사용하당 한 개가 생성됩니다. 단 브라우저를 Chrome 과 Explorer 를 사용하게 된다면 브라우저 별로 생성이 되겠죠? 세션의 특징은 다음과 같습니다. - 브라우저의 세션 연동은 세션 쿠키를 이용합니다. - 서버에 부하를 줄 수 있습니다. - 세션은 유효시간을 가집니다.(기본 유효시간은 30분 입니다) 로그인 상태 유지 기능이나 쇼핑몰의 .. 더보기
[JAVA - WEB] 쿠키(Cookie) 쿠키에 대해서 설명하기 전에 웹 페이지 연동 시에 알아야 할 부분이 있습니다. 세션 트래킹(Session Tracking) 세션 트래킹이란 사용자 입장에서 웹 페이지 사이의 상태나 정보를 공유하도록 하기 위해 프로그래머가 구현해야 하는 웹 페이지 연결 기능입니다. HTTP 프로토콜은 각 웹 페이지의 상태나 정보를 다른 페이지들과 공유하지 않는 stateless 방식으로 통신을 합니다. 따라서 웹 페이지나 서블릿끼리 상태가 정보를 공유하려면 웹 페이지 연결 기능, 즉 세선 트래킹을 이용해야 합니다. 웹 페이지를 연동하는 방법 중 쿠키를 이용하는 방법과 세션을 이용하는 방법이 있습니다. 쿠키 : 클라이언트 PC 의 Cookie 파일에 정보를 저장한 후 웹 페이지들이 공유합니다. 세션 : 서버 메모리에 정보를.. 더보기
[JAVA - WEB] 서블릿 바인딩(binding) 바인딩 바인딩의 사전적 의미는 '두 개를 하나로 묶는다' 입니다. 웹 프로그램 실행 시 데이터를 서블릿 관련 객체에 저장하는 방법으로 주로 HttpServletRequest, HttpSession, ServletContext 객체에서 사용되며 저장된 데이터는 프로그램 실행 시 서블릿이나 JSP 에 공유하여 사용합니다. 따라서 서블릿에서 다른 서블릿 또는 JSP 로 대량의 데이터를 공유하거나 전달하고 싶을때 바인딩 기능을 사용합니다. 바인딩 관련 메서드 메서드 기능 setAttribute(String name, Object obj) 데이터를 각 객체에 바인딩합니다. getAttribute(String name) 각 객체에 바인딩 된 데이터를 name 으로 가져옵니다. removeAttribute(Strin.. 더보기
[JAVA - WEB] 서블릿 포워드(forward) 포워드 기능 포워드란 하나의 서블릿에서 다른 서블릿이나 JSP 와 연동하는 방법입니다. 쇼핑몰을 예를 들면 상품관리 서블릿과 조회된 상품을 화면에 표시하는 JSP 는 각각 따로 존재합니다. 따라서 사용자가 상품 조회를 요청하면 상품 관리 서블릿은 데이터베이스에서 상품 정보를 조회한 후 다시 JSP 에게 전달하여 상품 정보를 표시하는 것이죠. 기능을 요약하면 다음과 같습니다. - 요청에 대한 추가 작업을 다른 서블릿에게 수행하게 합니다. - 요청에 포함된 정보를 다른 서블릿이나 JSP 와 공유할 수 있습니다. - 요청에 대한 정보를 포함시켜 다른 서블릿에 전달할 수 있습니다. - 모델2(MVC) 개발 시 서블릿에서 JSP 로 데이터를 전달하는데 사용됩니다. 포워드 방법 redirect - HttpServl.. 더보기
[JAVA - WEB] 서블릿과 데이터베이스 지금까지는 그냥 요청을 받으면 메서드 자체에서 받은 데이터를 콘솔에 출력하거나 출력 스트림을 통해서 받은 데이터를 웹 브라우저에서 보여주는 식으로 처리를 했습니다. 실제 개발을 진행하게 되면 웹과 데이터베이스는 필수불가결한 사이이므로 함께 알아보도록 하겠습니다. 서블릿의 비즈니스 로직 처리 서블릿의 비즈니스 로직 처리란 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것입니다. 웹 애플리케이션에서 대부분의 비즈니스 로직 처리 작업은 데이터베이스 연동 관련 작업이지만 그 외에 다른 서버를 연동하든 다른 프로그램을 연동해서 데이터를 얻는 작업도 수행합니다. 즉, 클라이언트 요청을 받은 서블릿이 비즈니스 로직 처리 기능으로 데이터 저장소에서 데이터를 조회 및 처리를 한 후 서블릿의 응답.. 더보기