반응형

프로그래밍 176

08 Servlet : listener

서블릿 리스너 : 웹 컨테이너가 관리하는 라이프 사이클 사이에 발생하는 이벤트를 감지하여 해당 이벤트가 발생 시 해당 이벤트에 대한 일련의 로직을 처리하는 인터페이스 서블릿 리스너 동작구조 서블릿 이벤트 사용 용도 1. context 웹 컨텍스트가 초기화되는 경우 2. session 세션이 생기거나 소멸되는 경우 3. request 요청 정보의 속성이 바뀌는 경우 서블릿 이벤트 리스너 종류 종류 내용 ServletContextListener 웹 애플리케이션의 시작과 종료 시 자동으로 발생하는 이벤트 ServletContextAttributeListener 웹 컨테이너에 저장된 속성의 값이 변경될 경우 발생하는 이벤트 HttpSessionListener HTTP 세션이 생성되거나 종료되는 시점에 발생하는 ..

07 Servlet : Filter

서블릿 필터 : java.servlet.Filter 인터페이스를 상속 받아 구현하는 클래스 HTTP 요청과 응답 사이에서 전달 되는 데이터를 가로채어 서비스에 맞게 변경하고 걸러내는 필터링 작업 서블릿 래퍼 : 관련 클래스(ServletRequest, ServletResponse, HttpServletRequest, HttpServletResponse)를 내부에 보관하며 그 인터페이스들을 구현하고 있는 객체를 참조하여 구현 메소드를 위임 wrapper class를 상속하면 필요한 메소드만 재정의하여 사용가능 사용자가 별도의 request나 response 객체를 생성하여 활용할 때 랩퍼 클래스 를 상속하여 활용하면 편하게 원하는 클래 스만 재정의하여 사용 가능 web.xml에 Filter 등록 (1) 필..

06 Servlet : Session과 Cookie

HTTP통신 서버는 client의 요청에 응답을 하고 나면 그 연결을 끊어버림 client는 다시 서버에 요청하려면 새로 연결해야 함 연결이 끊어지기 때문에 유지되어야 하는 정보들이 사라지는 문제 발생(ex 로그인 후의 정보, 장바구니에 넣은 데이터 등) Session과 Cookie 연결이 끊어진 이후에도 client에 대한 정보를 유지하기 위한 두가지 방법을 사용 1. Cookie : client 측에서 데이터를 보관하는 방법 필요시에 해당하는 정보를 서버와 공유하여 정보를 유지 Map형식으로 저장되고, 데이터의 크기, 개수 제한 있음 쿠키유지시간, 유효디렉터리, 유효도메인 등을 설정 2. Session : 서버측에 데이터를 보관하는 방법 client에는 session id를 부여하고 client가 r..

05. Servlet : sendRedirect

sendRedirect 사용자 url 재작성이라고 불리는 redirect 방식은 302번 응답코드인 경우 요청에 대한 처리를 잘 했으며 사용자의 url을 강제적으로 redirect 경로로 이동시키라는 의미 - redirect를 하는 경우 url이 재작성 되어서 새로 고침 해도 redirect 된 페이지에 대한 요청만을 반복함(이전 요청에 남아있던 정보는 남아 있지 않음) - http 요청은 요청 시에 잠시 connection을 맺고 응답 시에도 잠시 connection을 맺으며 요청 단뒤 당request 객체는 한 개만 생성 됨 - 첫 요청의 request와 redirect된 페이지의 request는 서로 다른 객체이고 redirect를 사용하면 이전 서블릿과의 값을 공유해서 사용할 수 없게 됨. - r..

04. Servlet : forward

forward 변수의 기본 scope는 page이기 때문에 다른 서블릿으로 데이터를 공유 할수 없다. forward 방식은 request와 response를 넣어서 위임하므로 request에 정보를 저장하여 다른 서블릿에서도 공유 할 수 있게 된다. 또한 forward 방식은 해당 서블릿의 존재를 client가 알 필요가 없어 url 자체가 변경되지 않는다. 단 서버로 전송한 데이터가 남아있는 상태로 새로고침(재요청)을 하게 되면 요청을 계속 반복하게 되어 DB에 insert하는 행위가 반복(중복) 되는 문제가 생길 수도 있다. forward 사용 방법 1. HTML forward 아이디 : 로그인 비밀번호 : 2. forward Servlet 작성 @WebServlet("/forward") public..

03 Servlet : Error message 와 page 만들기

response.sendError(에러타입, 메세지) ex) response.sendError(404, "없는 페이지입니다. 경로를 확인해주세요.") 1. HTML 작성 Exception Handler 404 에러확인 500 에러확인 2. web.xml에 error-page 작성 chap05-exception-handler index.html index.jsp index.htm default.html default.jsp default.htm 에러코드와 매핑할 페이지 설정 404 /showErrorPage 500 /showErrorPage 3. error 서블릿 작성 @WebServlet("/show404Error") public class Show404ErrorServlet extends HttpSer..

02 . Servlet : 서블릿 메소드

서블릿의 역할 1) 요청 받기 : HTTP method 요청에 따른 parameter로 전달 받은 데이터 꺼내오기 2) 비즈니스 로직 처리 : DB 접속과 CRUD에 대한 로직 처리 3) 응답하기 : 문자열로 동적인 웹(HTML 태그) 페이지를 만들어서 스트림을 이용해서 내보내기 서블릿 매개변수 객체 HttpServletRequest : HTTP Servlets을 위한 요청정보(request informaiton)를 제공 메소드 지정 메소드명 내용 getParameter(String) client가 보내준 값이 저장된 명칭이 매개변수와 같은 명칭에 저장된 값을 불러오는 매소드 getParameterNames() client가 보내준 값을 저장한 명칭(key)을 불러오는 메소드 getParameterVal..

01. Servlet : 서블릿개념과 동작구조

서블릿 : Java언어를 이용하여 사용자의 요청을 받아 처리하고 그 결과를 다시 사용자에게 전송하는 역할의 Class 파일 즉, 웹에서 동적인 페이지를 Java로 구현한 서버측 프로그램 서블릿 컨테이너 : 웹 서버에서 온 요청을 받아 서블릿 class를 관리하는 역할(생명주기)을 한다. 서블릿 동작 구조 서블릿 mapping 1) web.xml 이용 mapping명칭 실제 클래스명칭 mappint명칭 사용자 접근명칭 mapping명칭 사용자 접근명칭 ex) xmlmapping com.greedy.section01.xml.LifeCycleTestServlet 100 xmlmapping /xml-lifecycle 2) @annotation 이용 @web-Servlet("/매핑명칭") public class ..

11_자바스크립트 : 배열, 주요메소드 (indexOf , forEach, map, pop...)

1 . 배열 생성 방법 ( 1 ) 리터럴 : const arr = [ ' ', ' ', ' ' ]; ( 2 ) 생성자 함수 : const arr = new Array(인수); 인수가 1개이고 숫자인 경우 const arr = new Array(10); => [ ] 인수가 2개 이상이거나 숫자가 아닌 경우 const arr = new Array(1, 2, 3); => [ 1, 2, 3, '하' ] ( 3 ) Array.of 메소드 : Array.of(인수); console.log(Array.of(5)); console.log(Array.of(100, 2, 5)); console.log(Array.of("hello", "banana")); => [ 5 ] [ 100, 2, 5 ] [ 'hello', 'ban..

10_자바스크립트 : Prototype (숨김 프로퍼티, 일반 프로퍼티, 생성자 함수 프로토타입)

1. [[ Prototype ]] - 자바스크립트의 객체는 [[Prototype]]라고 하는 숨김 프로퍼티를 갖음 - 이 프로퍼티의 값은 null이거나 다른 객체를 참조 - 다른 객체를 참조하는 경우 참조 대상을 프로토 타입이라 함 - object에서 프로퍼티를 읽으려 할 때 해당 프로퍼티가 없으면 자바스크립트는 자동으로 프로토타입에서 프로퍼티를 찾음(프로토타입 상속) const user = { activate : true, login : function(){ console.log('로그인 되었습니다'); } }; const student = { passion : true }; (1) __proto__는 [[Prototype]] 의 getter, setter student.__proto__=user; 프..

반응형