자바(JAVA)/JSP 웹 프로그래밍 공부 (성낙현의 JSP 자바 웹 프로그래밍 참고) 49

JAVA/JSP 17. 세션(Session) - 세션이란, 세션 설정/확인/삭제

1. 세션이란클라이언트가 웹 브라우저를 통해 서버에 접속한 후 용무를 처리하고 웹 브라우저를 닫아 서버와의 접속을 종료하는 하나의 단위클라이언트가 서버에 접속해 있는 동안 그 상태를 유지하는 것이 목적→ 대표적으로 ‘로그인’ 정보 유지에 쓰임HTTP 요청은 독립적이기에 여러 요청에 걸친 복잡한 기능을 구현하려면 별도 기술이 필요함→ 그 중 다른 하나인 세션은, 서버가 직접 관리하므로 민감한 정보를 다루기에 더 적합함→ 그 중 하나가 쿠키(Cookie)지만, 정보를 클라이언트에 저장한 후 네트워크로 주고받기에 민감한 정보를 다루기엔 위험함‘내장 객체의 영역’ 중 하나2. 세션 설정/확인/삭제1) 세션 유지 시간 설정세션은 웹 브라우저 실행 시 마다 새롭게 생성되는데, 설정된 유지 시간 동안 유지되고, 유지..

JAVA/JSP 16. 데이터베이스 - 커넥션 풀로 성능 개선, 간단한 쿼리 작성 및 실행

6. 커넥션 풀로 성능 개선웹은 클라이언트의 요청에 서버가 응답하는 구조→ Connection 객체 생성 때마다 네트워크 통신이 이뤄지며, 시간이 걸리는 작업들이 수반됨 == 시스템 성능에 큰 영향을 미침⇒ ’커넥션 풀’로 성능 개선 필요 1) 커넥션 풀과 JNDI(1) 커넥션 풀JSP 프로그래밍에서, 커넥션 풀은 WAS가 제공하는 것을 이용하는 게 좋음→ WAS 하나에 여러 개의 웹 애플리케이션을 구동시키는 경우가 많아, 각 자원을 한번에 관리하는 게 절약도 되고 관리하기가 쉬움WAS가 시작될 때, 미리 생성한 커넥션 객체를 사용하므로 웹 애플리케이션 실행 속도 빨라짐 + 클라이언트의 동시 요청이 많아지더라도 좀 더 응답이 수월함→ 성능 향상 효과가 커서, 웹 뿐만 아니라 게임에서도 많이 사용(..

JAVA/JSP 15. 데이터베이스 - 테이블 및 시퀀스 생성, JDBC 설정 및 데이터베이스 연결

*회원제 게시판 만들기-회원 인증 필요4. 테이블 및 시퀀스 생성1) 테이블 생성(1) member 테이블 - 아이디, 패스워드, 이름, 가입 날짜테이블 정의컬럼명데이터 타입 null 허용 키 기본값 설명idvarchar2(10)N기본키(Primary Key) 아이디passvarchar2(10)N 패스워드namevarchar2(30)N 이름regidatedateN sysdate가입 날짜 테이블 생성 쿼리문create table member ( id varchar2(10) not null, pass varchar2(10) not null, name varchar2(30) not null, regidate date default sysdate not null, primary key (id)); ..

JAVA/JSP 14. 데이터베이스 - 특징, 오라클 설치(Oracle Database 11gR2 Express Edition), 사용자 계정 생성 및 권한 설정

1. 데이터베이스의 특징우리가 매일 PC나 스마트폰을 통해 접하는 거의 모든 웹 애플리케이션에서 사용함매일 업데이트되는 뉴스나 날씨 등의 정보는 데이터베이스가 없다면 클라이언트에 전달 불가능정보 제공 측에서는 필요한 내용을 데이터베이스에 미리 입력해두고, 고객은 필요한 콘텐츠를 웹 페이지를 통해 확인→ 게시판의 가장 기본적인 모델 2. 오라클 설치1) https://login.oracle.com/mysso/signon.jsp 오라클 로그인 페이지 접속 후, 로그인(or 회원가입 후 로그인) 2) 오라클 Database Express Edition 설치링크 접속 https://www.oracle.com/database/technologies/xe-prior-release-d..

JAVA/JSP 13. 쿠키(Cookie) - 로그인 아이디 저장(로그인 페이지 작성하기, 로그인 및 아이디 저장 기능 구현하기, 동작 확인

3. 로그인 페이지 작성하기쿠키를 통해 로그인 아이디를 저장하는 기능//로그인 페이지//Webcontent/04Cookie/IdSaveMain.jsp 로그인 페이지 아이디 : " /> //5. /> //6. 아이디 저장하기 패스워드 : 앞에서 작성한 CookieManager 클래스 이용 - 이름이 “loginId”인 쿠키를 읽어와 loginId 변수에 저장해둠cookieCheck 변수의 값을 결정1.에서 loginId에 빈 문자열 외의 문자열을 저장해뒀는지 확인 (=쿠키에 저장된 아이디가 있는지 확인)쿠키에 저장된 아이디가 있다면, cookieCheck에 “checked”가 대입됨쿠키에 저장된 아이디가 있다면 1.의..

JAVA/JSP 12. 쿠키(Cookie) - 로그인 아이디 저장(편의 기능 구현하기: 자바스크립트 코드 추가, 쿠키 관리자)

* 로그인 아이디 저장 동작 시나리오(예시-SW Expert Academy 홈페이지)로그인 아이디 저장: 로그인 페이지에서 아이디를 저장하는 기능을 말함로그인에 성공한 경우에만 쿠키를 생성 및 삭제 1) 쿠키에 저장된 아이디가 있으면, 로그인 페이지에서는 아이디가 자동 입력됨[아이디 저장] 체크박스 체크 후 로그인 → [로그아웃] → 다시 로그인 창 접속 2) [아이디 저장하기] 체크박스를 해제하고 로그인에 성공하면 쿠키가 삭제됨[아이디 저장] 체크박스 체크하지 않고 로그인 → [로그아웃] → 다시 로그인 창 접속(아이디가 자동으로 입력되어있지 않음) 1. 편의 기능 구현하기: 자바스크립트 코드 추가메시지 알림창을 띄운 후 다음 페이지나 이전 페이지로 이동하는 자바스크립트 코드 필요 (로그인 성공/실패 ..

JAVA/JSP 11. 쿠키(Cookie) - 레이어 팝업창 제어

*팝업창쿠키로 구현 가능한 기능웹 애플리케이션에서 회원가입 시 아이디 중복 체크나 간단한 공지사항을 띄워주는 용도로 자주 사용→ 과거에는 별도 URL을 가지는 ‘팝업창’을 주로 사용하였으나, 불법 광고 홍보에 많이 악용되어.. 최근에는 레이어를 이용한 형태의 팝업 추로 사용레이어 형태 팝업창의 동작 예시 (예시 이미지: ebsi 홈페이지) → 처음 방문 시 팝업 공지가 팝업창으로 뜨며, [닫기]를 누르면 사라짐→ [오늘 하루 열지 않기]를 체크하지 않은 채로 [닫기]를 했다면 새로고침 시 다시 나타남, [오늘 하루 열지 않기]를 체크한 후 닫는다면 하루 동안은 새로고침해도 팝업 공지가 나타나지 않음(ebsi 홈페이지의 경우, [1일 동안 열지 않기]를 누르면 바로 팝업창이 닫히고, 하루 동안은 새로고침해..

JAVA/JSP 10. 쿠키(Cookie) - 정의, 기본 동작 확인

1. 쿠키란?클라이언트의 상태 정보를 유지하기 위한 기술 (클라이언트의 상태 정보를 클라이언트에 저장함)상태 정보를 클라이언트(주로 웹 브라우저)에 key(키)와 value(값) 형태로 저장했다가, 요청 시 저장된 쿠키를 함께 전송 → 웹 서버는 웹 브라우저가 전송한 쿠키로부터 필요한 데이터를 읽어올 수 있음*제약 조건3000개까지 만들 수 있음쿠키 하나의 최대 크기는 4096바이트(=약 1.2MB)하나의 호스트나 도메인에서 최대 50개까지 만들 수 있음2. 동작 메커니즘*여기서 ‘요청’과 ‘응답’은 일반적인 HTTP 요청과 응답을 말함*쿠키는 요청/응답에 부가적으로 실려 전달되는 데이터*쿠키가 처음 만들어진 시점에는 서버가 아직 쿠키를 읽을 수 없음 → 다음 번 요청 때부터 클라이언트가 전송해주기 때..

JAVA/JSP 9. 내장 객체의 영역(Scope) - session 영역, application 영역

3. session 영역session: 클라이언트가 서버에 접속해 있는 상태 혹은 단위. 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용됨 → 포털 사이트에서 웹 브라우저를 닫으면 자동으로 로그아웃이 되는 이유가 session 객체의 특성 때문클라이언트가 웹 브라우저를 최초로 열고 난 후 닫을 때까지 요청되는 모든 페이지는 session 객체 공유 가능 *session 영역 동작 확인, session 영역이 이동된 페이지에서도 공유되는지 확인//session 영역 동작 확인용//SessionMain.jsp lists = new ArrayList();list.add("리스트");list.add("컬렉션");session.setAttribute("lists", lists); //2.%> 페이지 ..

JAVA/JSP 8. 내장 객체의 영역(Scope) - page 영역, request 영역

1. page 영역클라이언트의 요청을 처리하는 데 관여하는 JSP 페이지마다 하나씩 생성됨각 JSP 페이지는 page 영역을 사용하기 위한 pageContext 객체(내장 객체 중 하나)를 할당 받게 됨 → pageContext 객체에 저장된 정보는 해당 페이지에서만 사용 가능(해당 페이지를 벗어나면 소멸됨) → 단, include 지시어로 포함한 파일은 하나의 페이지로 통합되므로, page 영역 공유 가능 * include 된 파일에서 page 영역 읽어오기, 페이지 이동 후 page 영역 읽어오기(1) page 영역에 값을 저장하고 불러오는 예//PageContextMain.jsp // 1.common.Person 임포트 page 영역의 속성값 읽기 Integer..