ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA WEB - 6
    Study 2023. 2. 15. 11:10

    Model 2(MVC) 변환


    /BoardDeleteAction 까지 모두 완료

    webdev_20230215.war
    4.91MB


    AJAX(Asynchoronous Javascript And Xml)

     1) 자바스크립트와 XML을 이용한 비동기적 통신

      → 웹 상의 비동기적 통신

     

     2) 사용 예 - 네이버 검색어, 구글 지도, 댓글, 아이디 중복체크 등

     

    * 비동기적인 요청 처리

     - 클라이언트의 요청과 서버의 응답을 처리하는 별도의 객체(XMLHttpRequest; xhr)를 생성하여 화면 전체를 전환하지 않고 일부에만 응답 데이터를 표시한다.

     

    * 동기적인 요청 처리

     - 클라이언트가 요청(request)하면 서버가 응답(response)하면서 화면이 전환(refresh)되는 과정을 수행한다.

     

    xhr.readyState

     0: uninitialized

     1: open()

      - 요청 방식을 지정해준다.

     2: send()

     3: interactive

      → 데이터 일부를 receive

     4: complete

      → 응답 완료 

     

    xhr.status

     404: file not found

     500: server intend error

     200: OK


    javascript

    자바스크립트는 유연한 언어이기 때문에 변수에 함수 선언이 가능하다.

     

    {} : 자바스크립트 객체

    [] : 자바스크립트 배열


    커먼스 코덱 라이브러리

     : 비밀번호 암호화 라이브러리

      http://commons.apache.org 

     

    Apache Commons – Apache Commons

    Welcome to Apache Commons Apache Commons is an Apache project focused on all aspects of reusable Java components. The Apache Commons project is composed of three parts: The Commons Proper - A repository of reusable Java components. The Commons Sandbox - A

    commons.apache.org

    1) Apache Commons Proper > Codec > Releases > Codec 1.14 (archives) requires Java 7 선택 > commons-codec-1.2.zip 다운로드

    2) commons-codec-1.2.zip 압축 해제 후 commons-codec-1.2.jar 파일을 WEB-INF\lib 폴더에 추가한다.


    AJAX를 활용한 Model 2 게시판 만들기

    회원 정보와 로그인 기능을 추가한 게시판

     

    다음 쿼리 실행하여 게시물, 회원 정보 테이블 생성

    /* Create Sequences */
     
    CREATE SEQUENCE seq_board;
     
     
     
    /* Create Tables */
     
    CREATE TABLE tbl_board
    (
        no number NOT NULL,
        title varchar2(100NOT NULL,
        content varchar2(4000NOT NULL,
        regdate date DEFAULT sysdate NOT NULL,
        readcount number DEFAULT 0 NOT NULL,
        id varchar2(30NOT NULL,
        PRIMARY KEY (no)
    );
     
     
    CREATE TABLE tbl_member
    (
        id varchar2(30NOT NULL,
        password varchar2(120NOT NULL,
        name varchar2(30NOT NULL,
        birth date,
        phone varchar2(20),
        zipcode varchar2(6),
        address1 varchar2(120),
        address2 varchar2(60),
        PRIMARY KEY (id)
    );
     
     
     
    /* Create Foreign Keys */
     
    ALTER TABLE tbl_board
        ADD FOREIGN KEY (id)
        REFERENCES tbl_member (id)
    ;
    cs

     

     

     

     

    이전에 Model 2(MVC 패턴)으로 개발한 게시판에서

    요청 내용
    /BoardInsert.do 게시판 입력 폼을 출력
    /BoardInsertActon.do 게시판 입력 폼에서 넘어온 갑을 테이블에 INSERT
    /BoardList.do 게시판 리스트
    /BoardView.do 게시판 상세보기
    /BoardUpdate.do 게시판 수정 폼에 게시물 내용을 출력
    /BoardUpdateAction.do 게시판 수정 폼에서 넘어온 값을 테이블에 UPDATE
    /BoardDelete.do 게시물 입력 시 비밀번호 재입력 폼 출력
    /BoardDeleteAction.do 게시물의 글번호와 비밀번호 일치 시 게시물 DELETE

     

    다음 Controller를 추가

    요청 내용
    /Login.do 로그인 폼을 출력
    /LoginAction.do id, password가 일치하면 로그인 성공, 그렇지 않으면 로그인 실패
    /MemberRegister.do 회원가입 폼을 출력
    /MemberRegisterAction.do 회원가입 폼에서 넘어온 회원정보를 테이블에 등록

     


    Session

    session은 jsp 내장객체이므로 따로 생성하지 않고 바로 사용 가능하다.

     

    session은 사용자에 대한 정보를 접속한 기간동안 계속 유지한다.

     - session은 브라우저 당 하나씩 존재하기 때문에 해당 탭이 닫혀도 브라우저가 종료되지 않았다면 값을 계속 가지고 있다.

     

    보안 유지가 강력하다.

     

    1) 값 저장

     session.setAttribute(key, value);

     

    2) 값 참조

     session.getAttribute(key);

     

    3) session 유지 시간

     - 톰캣에서 deafult 30분으로 설정되어 있다.(톰캣 서버의 web.xml 파일에서 확인 가능)

     session.getMaxInactiveInterval();

      - 세션 유지 시간 확인

     session.setMaxInactiveInterval(sec);

      - 세션 유지 시간 변경(초 단위)

     

    4) session 특정 항목 삭제

    session.removeAttribute(item);

     

    5) session 종료

    session.invalidate();


    로그인 시 값 넘어오는 것까지 확인, 로그인 시 회원 정보 확인 및 세션에 저장하는 건 내일 이어서...

    m2board_20230215.war
    4.92MB

    'Study' 카테고리의 다른 글

    JAVA WEB - 7  (0) 2023.02.16
    JAVA WEB - 5  (0) 2023.02.14
    JAVA WEB - 4  (0) 2023.02.13
    JAVA WEP - 3  (0) 2023.02.10
    JAVA WEP - 2  (0) 2023.02.10
Designed by Tistory.