목록jsp (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..
세션은 클라이언트 마다 개별적으로 생성되어 클라이언트의 브라우저를 종료할 때까지 서버쪽에서 그 객체(정보)를 유지합니다. 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 바이트 미만의 데이..
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은 리소스를 ..
이클립스, 전자정부프레임워크, STS 등에서 웹프로젝트를 import 하고 나서 JSP 파일을 열었는데 한글이 깨졌습니다. 검색 후에 흔히 나와 있는 방법들을 시도해 보았으나 실패. 다른 에디터(note pad 등)로 열었을 때는 문제가 없었으므로 한글 인코딩 자체가 망가지지는 않았습니다. 검색 해서 나오는 인코딩 UTF-8 설정 등을 모두 시도해보았는데도 여전히 한글이 깨져서 나온다면 다음을 시도해 보시기 바랍니다. 이클립스 메뉴 > window > Preferences 1. General > Content Types 을 눌러보면 위의 화면이 나옵니다. 2. 거기서 Text를 선택 후 JSP를 클릭하세요. 3. File associations의 *.jsp를 눌러 보세요. 4. 그리고 해당 문서의 한글 ..
증상 톰캣은 정상적으로 구동이 되었지만, catalina.out의 로그를 살펴보았을 때, ... is exceeding the 65535 bytes limit 메시지와 함께 특정 jsp 화면이 에러가 나는 경우가 있습니다. jsp 파일 사이즈가 초과된 경우에 발생합니다. 조치 tomcat 경로 안에 있는 web.xml을 열어서 태그 안쪽에 아래의 내용을 추가합니다. mappedfile false web.xml 내용을 저장하고 tomcat을 재시작 합니다.