목록SERVLET (25)
삶 가운데 남긴 기록 AACII.TISTORY.COM
리스너 리스너는 특정 이벤트가 발생했을 때 수행되는 메소드를 제공하는 객체입니다. 웹에서는 ServletContext와 HttpSession, HttpServletRequest 가 이벤트가 발생하는 곳입니다. 그래서 각각 이벤트를 처리할 수 있는 이벤트 리스너를 제공합니다. ServletContext는 서버 시작 시점, HttpSession은 클라이언트 접속시, 그리고 HttpServletRequest는 클라이언트가 서비스를 요청시를 의미합니다. 특정 이벤트가 발생했을 때 실행되기 원하는 내용을 해당 이벤트 핸들러 객체를 상속받아 구현한다음, 개발된 리스너를 WAS(컨테이너)가 인식 하도록 web.xml에 등록해주어야 합니다. HttpServletRequest 객체 생성/삭제 이벤트 리스너 구현 예제 T..
필터 필터는 서블릿 2.3부터 추가되었습니다. 서블릿이 실행되기 전과 후에 필터링 기능 및 추가 기능을 수행할 수 있습니다. 예를 들어 로그 기록이나 한글 처리 같은 기능을 추가 할 수 있습니다. 기존 예제에서는 일일이 서블릿에서 한글 처리를 지정해줬지만 필터에서 일괄적으로 설정할 수 있습니다. 또한 하나의 서블릿에 필터를 여러개 지정해줄 수 있습니다. 필터는 javax.servlet.Filter를 상속 받아서 구현합니다. init()는 필터 객체가 생성될 때 한 번 만 호출되는 메소드입니다. destroy()는 필터 객체가 제거될 때 한 번 만 호출되는 메소드입니다. doFilter()메소드는 필터의 내용을 구현하는 메소드로 web.xml에 필터링 설정한 서블릿이 실행될 때마다 호출됩니다. 예제로 Fl..
Redirect sendRedirect(String location) 메소드를 이용하여 새로운 location으로 request를 재지정 할 수 있습니다. WebContent 경로 아래에 site.html 파일을 작성합니다. 네이버 다음 줌 구글 작업중인 패키지 경로에 새 서블릿 SendRedirectTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet..
로그인 html 프로젝트의 WebContent 폴더 아래에 새 html 파일을 생성하고 이름을 login.html 으로 설정합니다. ID: PW: 로그아웃 로그인/로그아웃 서블릿 작업중인 패키지 경로에 새 서블릿 LoginOut.java 를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import j..
세션은 클라이언트 마다 개별적으로 생성되어 클라이언트의 브라우저를 종료할 때까지 서버쪽에서 그 객체(정보)를 유지합니다. HttpSession 생성 HttpSession객체는 개발자가 수동으로 생성하는게 아니라 HttpServletRequest의 getSession() 메서드를 이용해서 객체를 획득합니다. 새 서블릿 SessionTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpSe..
쿠키(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..
ServletContext 서블릿 컨텍스트는 서버 쪽에서 웹 어플리케이션 단위로 값(정보)를 유지하는 방법입니다. 서블릿 컨테이너가 시작될 때 ServletContext 객체가 자동으로 생성되어 웹 어플리케이션이 종료될 때까지 계속 유지 합니다. init() 메소드를 재정의하여 추출 작업중인 패키지에서 class 파일을 하나 생성하고 이름을 ServletContextTest.java로 만들고 아래처럼 작성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax..
질의 문자열 질의 문자열은 브라우저 주소창에 서버로 전송할 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..
Web Service 네트워크상 분산된 자원들을 연동하여 자원을 공유하는 서비스입니다. SOAP기반 웹 서비스와 RESTful 기반 웹서비스가 있습니다. SOAP(Simple Object Access Protocol)는 XML로 이루어진 WSDL(Web Services Description Language) 자원(data)을 UDDI라는 전역 서비스 저장소에 등록(publish)하여 공개하면 서비스 요청자가 검색 후 SOAP프로토콜을 이용하여 메시지를 주고받는 방식입니다. SOAP envelope + SOAP header + SOAP body로 구성된 XML 메시지를 주고 받습니다. 내용이 많아서 무겁고, UDDI를 거쳐야하고, 개발환경이 지원해줘야 하므로 한계점이 명확합니다. RESTful은 리소스를 ..