JSP 5일차

5 .쿠키와 세션,JDBC Programming(회원관리)

목요일 쪽지->제출->금요일 오후발표->조율(확정)->조별
다다음주 월요일 주제발표



※ window7의 경우(쿠키위치)

C:\Users\계정명\AppData\Roaming\Microsoft\Windows\Cookies
=> 접속한 사이트의 정보를 파일형태로 저장
=> 동일한 사이트에 파일로 저장->빠르게 접속을 도와주는 역할

JspDB->프로젝트
     |
     -WebContent
               |
               -cookietest->makeCookie.jsp(저장)->확인(useCookie.jsp/usehanCookie.jsp)
                                ->makehanCookie.jsp               
               |
               -sessiontest
               |
               -db

Ex) makeCookie.jsp

makecookie

Ex) useCookie.jsp

usecookie

실행결과

makecookie_result     usecookie_result

▶ 쿠키는 한글로 저장이 가능?  

query=%EC%9E%90%EB%B0%94(한글)
query=java(영어)
URLEncoder.encode()-> 주문->포장(인코딩)
URLDecoder.decode()-> 포장 풀어보기(디코딩)

Ex) makehanCookie.jsp

makehancookie

Ex) usehanCookie.jsp

usehancookie

실행결과

makehancookie_result    usehancookie_result


● session

-sessiontest       ->sessoinForm.jsp(id,pw)
                               ->sessionTest1.jsp(설문)
                               ->sessionTest2.jsp(결과)
필수로 알아야 할것 : getId, session.setAttribute, session.getAttribute, session.invalidate, session.removeAttribute(“키값”)

브라우저를 구분하는 인자로 사용(다른값이 나옴)
세션 id : DE93D3B0F6B3478EBE97E4766717FA88
세션 id : 3401C9E50BE51151EB0C6A44EED2F120

Ex) sessionForm.jsp

sessionform

Ex) sessionTest1.jsp

sessiontest1

Ex) sessionTest2.jsp

sessiontest2

실행결과(sessionForm–>sessionTest1—>sessionTest2)

                                                                           —->sessionTest2(대기시간이 길때)

sessionform_result

sessiontest1_result

sessiontest2_result

만약에 중간에 대기시간이 길어지면

sessiontest2_result_fail


-db(폴더)->oracletest.jsp
오라클접속 scott/tiger-> MyTest테이블 생성(create table)
                                          -> insert 
                                           -> select=>테이블태그
※ 오라클의 환경설정-> ojdbc6.jar
1. c:\Tomcat8\lib=>접속할 드라이버를 복사(전역변수처럼 모든 프로젝트에서 다 사용가능)
2. 현재프로젝트사용
예)  JspDB
           |
           -WebContent
                     |
                     -WEB-INF
                            |
                            -lib->ojdbc6.jar복사

Ex) oracletest.jsp

oracletest

실행결과

oracletest_result

테이블 생성

SQL> select * from mytest;

NAME                         AGE
——————– ———-
홍길동                          23


※ C:\oracle\oradata\product\11.2.0\dbhome_1\NETWORK\ADMIN->tnsnames.ora(환경설정파일)
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = easy-PC)(PORT = 1521))=> 포트번호를 확인
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl) =>sid 확인
    )
  )


회원관리->JspHewon=>프로젝트명
                        |
                        -src->1.DB접속->DBConnectionMgr.java
                        |
                        -WebContent(/)

1. DBConnectionMgr.java(DB연결)
 private String _driver = “oracle.jdbc.driver.OracleDriver”,
    _url = “jdbc:oracle:thin:@localhost:1521:orcl”,
    _user = “shop”,
    _password = “1234”;

▶ 오라클 계정생성및 권한부여

SQL> conn sys/sys12345 as sysdba
연결되었습니다.
SQL> create user shop identified by 1234;
사용자가 생성되었습니다.
SQL> grant connect, resource,create view to shop;
권한이 부여되었습니다.
SQL> conn shop/1234
연결되었습니다.
SQL> create table member( –회원테이블
    id varchar2(20) primary key,
    passwd varchar2(20) not null,
    name varchar2(20) not null,
    e_mail varchar2(30) null,
    phone varchar2(30) not null,
    zipcode varchar2(7) null,
    address varchar2(60) null,
    job varchar2(30) null);
테이블이 생성되었습니다.
SQL> insert into member values
(‘test’,’1234′,’lee’,’test@daum.net’,
’02-123-0987′,’143-098′,’서울시 강남구 논현동’,’프로그래머’);
1 개의 행이 만들어졌습니다.
SQL> commit;
커밋이 완료되었습니다.

우편변호 테이블->zipcode
SQL> create table zipcode( — 우편번호
    zipcode char(7) not null,
    area1 char(10) null,
    area2 char(20) null,
    area3 char(40) null,
    area4 char(20) null);
테이블이 생성되었습니다.
우편번호 데이터 4만개넣기
SQL> @c:\webtest\zipcode.txt ->대량저장

commit;
커밋이 완료되었습니다.
SQL> select count(*) from zipcode;
  COUNT(*)
———-
     42619

▶ 자바빈즈->DB접속
    테이블갯수와 동일한 자바빈즈가 필요
    MemberDTO
    ZipcodeDTO

    MemberDAO=>MemberDBMgr=>Member테이블에 접속->insert, update,
    delete,select해줄 수 있는 메서드 선언

SQL> select count(*) from member where id=’test’ and passwd=’1234′;
SQL> select id, passwd from member where id=’test’ and passwd=’1234′;

Ex) MemberDTO.java(logincheck)   Ex) MemberDAO.java 

memberdao_login                       memberdto

» Login —>LoginProc —> LogSuccess —>LogOut
                                              —> LogError
Ex) Login.jsp                     Ex) LoginProc.jsp

login      loginproc

Ex) LogSuccess.jsp                                    Ex) LogError.jsp

logsuccess  logerror

Ex) Register.jsp                                                       

registerregister_1

Ex) script.js                                                        Ex) LogOut.jsp

script_loginchecklogout

실행결과

login_result   logsuccess_result

로딩실패시                                                        Ex) LogOut.jsp

logerror_result   logout_result


중복id를 체크하는 메서드 작성

Ex) MemberDAO.java(idcheck)            Ex) IdCheck.jsp

memberdao_idcheck idcheck

Ex) script.js

script_idcheck

실행결과

register_result    idcheck_ok

idcheck_non