목록서블릿 (6)
삶 가운데 남긴 기록 AACII.TISTORY.COM
애플리케이션이 어떤 작업의 영향으로 다른 작업도 자동으로 같이 실행되어야 하는 경우가 종종 있습니다.이를 위해서 자바에서는 옵저버 패턴을 사용합니다. 특정한 구독자(subscriber)들을 보관하고 있다가 이벤트를 발행(publish)하면 구독자들이 실행하는 방식입니다. ServletContext Listener서블릿 API는 여러 이벤트에 맞는 리스너들을 인터페이스로 정의해두었습니다.이를 이용해서 애플리케이션이 시작되거나 종료될 때 특정 작업을 수행하거나, session에 특정한 작업에 대한 감시와 처리, request에 특정한 작업에 대한 감시와 처리들을 할 수 있습니다.import lombok.extern.log4j.Log4j2;import javax.servlet.annotation.WebLis..
필터 필터는 서블릿 2.3부터 추가되었습니다. 서블릿이 실행되기 전과 후에 필터링 기능 및 추가 기능을 수행할 수 있습니다. 예를 들어 로그 기록이나 한글 처리 같은 기능을 추가 할 수 있습니다. 기존 예제에서는 일일이 서블릿에서 한글 처리를 지정해줬지만 필터에서 일괄적으로 설정할 수 있습니다. 또한 하나의 서블릿에 필터를 여러개 지정해줄 수 있습니다. 필터는 javax.servlet.Filter를 상속 받아서 구현합니다. init()는 필터 객체가 생성될 때 한 번 만 호출되는 메소드입니다. destroy()는 필터 객체가 제거될 때 한 번 만 호출되는 메소드입니다. doFilter()메소드는 필터의 내용을 구현하는 메소드로 web.xml에 필터링 설정한 서블릿이 실행될 때마다 호출됩니다. 예제로 Fl..
쿠키(Cookie) 클라이언트 단위로 상태정보를 유지해야 할 때 쿠키를 사용합니다. 예를들어 로그인 후 로그아웃 할 때까지 인증 상태를 유지 한다던지, 쇼핑몰 장바구니에 선택한 상품 정보들을 유지 한다던지 같은 유지 정보들을 관리합니다. 쿠키는 텍스트로 name=value 형태로 저장하며 만료 일자나 시간을 지정할 수 있습니다. 쿠키 저장(전송) 작업중인 패키지에 클래스 CookieTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; im..
web.xml 서블릿 실행에 관한 정보를 설정할 때는 web.xml의 태그로 설정합니다. web.xml은 WAS(톰캣)을 시작할 때 WAS가 읽어들이는 정보입니다. web.xml의 태그 안쪽에 아래의 태그와 태그의 내용을 추가합니다. initParam net.aacii.test.InitParamServlet id guest password 1234 1 initParam /initParamTest 태그는 설정하려는 서블릿을 지정해줍니다. 태그는 서블릿에 변수를 전달할 때 사용합니다. 서블릿에서 직접 변수를 입력할 수도 있지만 수정할 때 다시 컴파일 하고 다시 deploy 해야 하지만 web.xml에 변수를 설정해주면 WAS의 재시작 만으로 설정된 변수값들을 사용할 수 있습니다. 일반적으로 서블릿 객체가 메..
질의 문자열 질의 문자열은 브라우저 주소창에 서버로 전송할 parameter들을 문자열로 표현한 것입니다. 질의 문자열은 아래와 같은 규칙이 있습니다. 1. ?name=value 형식으로 전달하며 여러개를 전달할때는 &기호를 구분자로 사용합니다. 예) ?id=guest&name=BTS 2. 영문자 숫자 일부 특수문자는 그대로 전송되지만 한글등 나머지 문자는 %기호와 함께 16진수로 바뀌어 전달됩니다. 예)?id=guest&name=%C8%AB%FF%00 3. 공백 문자는 + 기호로 전달합니다. HTML 태그 태그는 서버로 전송할 질의 문자열을 입력할 수 있도록 할 수 있습니다. GET방식과 POST방식으로 질의 문자열 전송 방식(method)를 결정할 수 있습니다. GET방식은 255 바이트 미만의 데이..
자바 웹 어플리케이션은 브라우저에서 아래 처럼 접근 할 수 있습니다. http://서버주소:포트번호/웹어플리케이션이름/서블릿orJSP 서블릿 경로(build path) 프로젝트 이름을 우클릭하고 Build Path -> Configure Build Path 를 선택합니다. 여기 source 탭에 아래 부분에 Default output folder: 항목에 Browse... 버튼을 클릭합니다. 폴더 목록에서 jsp> WebContent > WEB-INF 폴더를 선택한 후 Create New Folder를 선택합니다. 그러면 자바 소스 파일들이 컴파일 후에 방금 지정한 WEB-INF/classes 에 생성되는 것입니다. 서블릿 작성(package 경로: net.aacii.test) src 경로에 net.aa..