웹 개발 기초/자바 웹을 다루는 기술 101

JSP 3단계 작업 과정

서블릿에서는 자바 코드와 함께 원하는 HTML 태그를 사용해 브라우저로 전송해서 화면을 구현한다. 즉, println( )과 같은 자바 코드를 사용해 HTML 화면을 구성했다. 따라서 서블릿으로 화면을 구현하려면 화면에 해당하는 HTML 태그를 브라우저로 전송해 주기만 하면 브라우저가 받아서 실시간으로 구현해준다. 하지만 JSP는 HTML, CSS, 자바스크립트는 물론이고 JSP에서 제공하는 여러가지 구성 요소가 화면을 구현하는 데 사용된다. 그러다보니 JSP 파일 자체를 브라우저로 전송하면 브라우저는 JSP 요소들을 인식하지 못한다. 따라서 JSP는 톰캣 컨테이너에 의해 브라우저로 전송되기 전 실행 단계를 거쳐야 한다. 톰캣 컨테이너에서 JSP 변환 과정 변환 단계: 컨테이너는 JSP 파일을 자바 파일..

HttpSessionListener 이용해 로그인 접속자 수 표시

setAttribute( )를 이용해 loginUser를 세션에 바인딩하면 LoginImpl 클래스에 구현된 이벤트 핸들러를 이용해 접속자수를 1 증가시키고, user_list에 접속자 ID를 저장한 다음 ServletContext 객체에 바인딩한다. // LoginTest3.java package sec04.ex02; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.Web..

HttpSessionBindingListener 이용해 로그인 접속자 수 표시

ID와 비밀번호를 입력하여 전송하는 로그인 창 작성 아이디 : 비밀번호: LoginImpl loginUser=new LoginImpl(user_id, user_pw)를 실행하여 전송된 ID와 비밀번호를 저장하고, session.setAttribute("loginUser", loginUser)으로 세션에 바인딩 시 미리 HttpSessionBinding Listener를 구현한 LoginImpl의 valueBound( ) 메서드를 호출한다. // LoginTest.java package sec04.ex01; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.serv..

여러 가지 서블릿 관련 Listener API

자바 GUI에서는 마우스 클릭과 같은 이벤트 발생 시 여러 가지 이벤트 핸들러를 이용해 화면의 기능을 구현하는데, 서블릿에서도 아래 표와 같이 서블릿에서 발생하는 이벤트에 대해 적절한 처리를 해주는 여러 가지 리스너를 제공함. 서블릿 관련 Listener 추상 메서드 기능 ServletContextAttributeListener attributeAdded( ) attributeRemoved( ) attributeReplaced( ) Context 객체에 속성 추가/제거/수정 이벤트 발생 시 처리 HttpSessionListener sessionCreated( ) sessionDestroyed( ) 세션 객체의 생성/소멸 이벤트 발생 시 처리 ServletRequestListener requestIniti..

Filter API

필터 브라우저에서 서블릿에 요청하거나 응답할 때 미리 요청이나 응답과 관련해 여러 가지 작업을 처리하는 기능 프로그래밍을 하다가 한글 인코딩처럼 각 서블릿에서 반복적으로 처리해야 하는 작업이 있을 수 있는데, 이런 경우 서블릿의 공통 작업을 미리 필터에서 처리하면 반복해서 작업할 필요가 없음 필터 기능 수행 과정 필터를 사용하는 이유 request에 한글 인코딩을 설정하는 작업처럼 웹 페이지에서 입력한 한글을 서블릿에 전달하려면 setCharacterEncoding() 메서드를 이용해 한글 인코딩 설정을 서블릿마다 상단에 추가해야 했다. 하지만 서블릿에서 공통으로 처리하는 작업을 먼저 필터에서 처리해주면 편하게 작업이 가능하다. 필터의 종류 필터는 용도에 따라 크게 요청 필터와 응답 필터로 나뉘며 다음과..