웹기반 애플리케이션 20

JSP_Session을 이용한 로그인/로그아웃 만들기

📕일단 VO(Value Ojbect)를 먼저 만든다 package kr.or.ddit.vo; import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnore; /** * JavaBean 규약 * ValueObject, DataTransferObject, Model, Bean * ex) MemberVO, MemberDTO, MemberModel, MemberBean * * 1. 값을 저장할 속성(property) 정의 * 2. 캡슐화 * 3. 캡슐화된 데이터에 접근할 인터페이스 제공(getter/setter) * get[set]프로퍼티명에서 첫문자만 대문자, camel case 적용 * 4. 상태 비교 메소드 제공 hashcod..

JSP📃_Scope(영역)

📕Scope(영역) 명확한 생명주기를 갖는 4개의 기본 객체가 가진 데이터 공유 영역(저장공간 : Map) ==> attribute(name:String/value:Object) : 해당 영역을 통해 공유되는 데이터 pageScope (PageContext) : 하나의 jsp인스턴스 내에서만 유지될 객체들의 영역, 주로 커스텀 태그에서 새로운 속성을 추가할 때 사용됨. requestScope (HttpServletRequest) : 하나의 요청 정보가 유지되는 동안 공유될 객체들의 영역, 주로 dispatch방식으로 이동하는 동안 유지할 요청에 과한 상태정보를 관리하는 영역. sessionScope(HttpSession) : 클라이언트의 상태 정보가 유지되는 세션동안 공유될 객체들의 영역, 대표적으로 사..

JSP📃_copy

이미지를 카피하는 법.... //원본 이미지 준비 String imageURL = "/resources/images/cat1.jpg"; //원본 이미지 리얼패스(진짜 경로) 받아오기 String realPath = application.getRealPath(imageURL); File imageFile = new File(realPath); //카피할 곳 따놓기 String folderURL = "/11"; String folderPath = application.getRealPath(folderURL); File destFile = new File(folderPath, imageFile.getName()); try{ //원본-->카피로 이동(통로 슝슝) Files.copy(imageFile.toPath..

JSP📃_Application

ServletContext 서블릿이 운영되는 컨텍스트와 서버(컨테이너)에 대한 정보를 가진 싱글턴 객체 1. context parameter 확보 : 2. context 정보 확보 : , , 3. 서버의 정보 확보 : . 4. 로그 기록 5. 현재 컨텍스트의 웹리소스 확보에 활용(***) ServletContext 서블릿이 운영되는 컨텍스트와 서버(컨테이너)에 대한 정보를 가진 싱글턴 객체 1. context parameter 확보 : D:/00.medias/images 2. context 정보 확보 : /WebStudy01, /WebStudy01 /WebStudy01, /WebStudy01 3. 서버의 정보 확보 : Apache Tomcat/8.5.79 3.1 4. 로그 기록 5. 현재 컨텍스트의 웹리..

JSP📃_JSP 스펙에서 제공되는 기본객체

📕JSP 스펙에서 제공되는 기본객체 ✔request(HttpServletRequest) ✔respoonse(HttpServletResponse) ✔out(JspWriter) : https://vivipearlit.tistory.com/73 ✔session(HttpSession) : https://vivipearlit.tistory.com/72 ✔application(servletContext) : ✔page(Object) == this : 커스텀 태그 개발에 활용. **커스텀 태그 : 개발 목적으로 새로 만든 태그 사용형태 :: ✔config(ServletConfig) : 등록된 서블릿의 메타데이터를 가진 객체. ✔exception(Throwable) : 예외 처리 목적으로 활용. isErrorPage=..

JSP📃_Session

📕세션 ✔시간의 개념(Web) : 사용자가 어플리케이션을 사용하기 시작하는 순간부터 사용종료 까지의 시간. ✔통로의 개념(DB) : 클라이언트와 서버 사이의 수립된 유일한 연결(connection) 통로. 📌세션의 생명주기 시작 : 해당 사용자로부터 최초의 요청이 발생했을 때 -> 세션 아이디 부여 -> 응답데이터로 사용자에게 전송. 사용자는 timeout 이내에 새로운 요청을 발생(저장되어있던 세션아이디를 첨부) 종료 : 명시적인 로그아웃, timeout(만료 시간)의 개념을 도입. -> timeout 이내에 새로운 요청이 발생하지 않을 때 -> 브라우저를 종료하는 등의 쿠키 트래킹 모드 데이터(ex)쿠키)가 삭제되는 경우. -> 쿠키와 같은 트래킹 모드 데이터를 직접 삭제한 경우. 세션의 식별 속성 ..

JSP📃_Exception

📌예외? 프로그램의 정상 실행이 중단될 수 있는 모든 조건과 상황에 대한 통칭 ==> java.lang.Throwable타입으로 캡슐화함. 📌예외 계층(Throwable 하위 타입) 📕java.lang.Error : 시스템 실패 상황으로 일반적으로 개발자가 처리할 수 없는 에러. 📕java.lang.Exception : 예외 처리 정책에 따라 조건문의 형태로 처리가 가능한 예외. 📕checked exception(non RuntiomeException) : 회피/복구/전환 중 어느 한가지 예외 처리 정책을 기반으로 반드시 처리를 해야하는 예외. 📕unChecked exception(RuntimeException 하위 타입) : 개발자가 직접 처리하지 않더라도 자동으로 예외(throws) 회피 전략이 사용..

JSP📃_웹 어플리케이션에서 흐름 제어(A->B) 방법

📕 Request Dispatche(요청 분기) ✔ Forward : 클라이언트->서버A->서버B->클라이언트 요청은 A(서블릿)로 응답은 B(jsp활용 케이스가 많음)에서만 처리됨.(책임의 분리구조==>Model2구조에서 활용.). 서버사이드 위임 처리 방식(A가 자기 책임을 B에게 떠넘김) String path ="/04/standard.jsp"; //서버가 사용하는 주소==>절대주소 RequestDispatcher rd = request.getRequestDispatcher(path); //forward방식(응답형태 A=>B) rd.forward(request, response); //include방식(응답형태 A+B) rd.include(request, response); ✔Include : 클라..

JSP📃_HttpServletResponse

📕 response Line : 요청 처리 결과를 표현하는 상태코드(status code) ex) sendError(sc) , setStatue(sc) 📌status code 종류 100번대: ING...(진행중임...) webSocket : Http의 하위 프로토콜 형태로 connectfull 구조를 가짐. 200번대: OK(success) 300번대: 클라이언트의 다음 액션에 대한 유도. body가 없이 line+header로만 응답이 구성됨. 304 : Not Modified(수정되지 않음) 301/302/307 : Moved(이동됨) + Location(이동된 새로운 위치) 헤더와 병용. 400번대 : client side failure 400 : Bad Request : 잘못된 요청, 요청 데이..