ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA WEB - 7
    Study 2023. 2. 16. 11:23

    Model 2 게시판


    요청 내용
    /Logout.do
    로그인 정보 초기화

    로그인 시 DB에 일치하는 아이디/패스워드 있는지 확인(/LoginAction.do)

     - 있으면 로그인 성공, 세션에 아이디와 이름 저장하고 게시판 화면으로 이동

      - 게시판 화면 상단에 세션에 저장된 로그인 정보(아이디, 이름) 출력

     - 없으면 로그인 실패, 알림창 띄우고 로그인 화면으로 이동

     

    로그아웃(/Logout.do)

     - 게시판 화면 상단에 로그아웃 링크(<a> 태그) 추가

     - 로그아웃 링크 클릭 시 세션 초기화한 후 로그인 화면으로 이동

     

    아래 표의 게시판 관련 기능을 추가한다. 

    요청 내용
    /BoardInsert.do 게시판 입력 폼을 출력
     + 로그인 여부 확인
     + 작성자 이름을 로그인한 사용자의 이름으로 입력
    /BoardInsertActon.do 게시판 입력 폼에서 넘어온 값을 테이블에 INSERT
     + 로그인 여부 확인
     + 게시물 정보에 로그인한 회원 정보(ID, 이름) 추가
    /BoardList.do 게시판 리스트
     + 로그인 여부 확인
     + 회원 ID, 이름 추가
    /BoardView.do 게시판 상세보기
     + 조회수 증가
     + 로그인 여부 확인
     + 회원 ID, 이름 추가
     + 작성자가 로그인한 회원일 경우만 수정, 삭제 링크 출력
    /BoardUpdate.do 게시판 수정 폼에 게시물 내용을 출력
     + 로그인 여부 확인
    /BoardUpdateAction.do 게시판 수정 폼에서 넘어온 값을 테이블에 UPDATE
     + 로그인 여부 확인
     + 작성자가 로그인한 회원일 경우만 수정 가능
    /BoardDelete.do 게시물 입력 시 비밀번호 재입력 폼 출력(불필요)
     - 삭제 링크 클릭 시 바로 /BoardDeleteAction.do 요청
    /BoardDeleteAction.do 게시물의 글번호와 비밀번호 일치 시 게시물 DELETE
     + 로그인 여부 확인
     + 작성자가 로그인한 회원일 경우만 삭제 가능
     + 삭제 링크 클릭 시 추가 확인 창 출력

     

    쿠키를 이용해 로그인 화면에서 아이디 저장 기능을 구현

     - 체크박스 체크 시 체크 여부를 Controller로 전달한다.

     - LoginAction 에서 체크박스 체크 여부를 확인하여 체크되어 있으면 로그인 성공 시 id를 쿠키에 저장한다.

      - 체크하지 않고 로그인한 경우 id를 쿠키에 저장하지 않는다.

     - 로그인 화면의 id 입력 란에 쿠키에 저장된 id를 출력해준다.

     


    쿠키(Cookie)

    1) 쿠키 생성

     Cookie cookie = new Cookie(String name, String value);

     - 쿠키는 jsp 내장 객체가 아니라 객체를 생성하면서 쿠키의 이름과 저장할 값을 인자로 넣어준다.

     

    2) 쿠키 유지시간 설정

     cookie.setMaxAge(sec);

      - 시간은 초 단위로 입력

     

    3) 쿠키 삭제

    cookie.setMaxAge(0);

      - 쿠키를 삭제하는 별도의 메소드는 없고, 유지 시간을 0으로 변경하여 즉시 삭제되도록 한다.


    네이버 스마트에디터2

    게시물 작성 시 다양한 편집 기능을 제공하는 API

    다운로드 : https://github.com/naver/smarteditor2/releases

    사용 가이드 : http://naver.github.io/smarteditor2/user_guide/2_install/setting.html

     

     


    파일 업로드

    다음 쿼리를 실행하여 파일 관련 시퀀스와 테이블 생성(DROP문은 제외)

    --파일 업로드
     
    DROP TABLE tbl_file CASCADE CONSTRAINTS;
    DROP SEQUENCE seq_file;
     
    CREATE SEQUENCE seq_file;
     
    CREATE TABLE tbl_file
    (
        fno number NOT NULL,
        originalName varchar2(100NOT NULL,
        targetName varchar2(100NOT NULL,
        folder varchar2(50NOT NULL,
        regdate date DEFAULT sysdate NOT NULL,
        fileSize number NOT NULL,
        fileType varchar2(30),
        no number NOT NULL,
        PRIMARY KEY (fno)
    );
     
    ALTER TABLE tbl_file
        ADD FOREIGN KEY (no)
        REFERENCES tbl_board (no)
    ;
     
    cs

     

    cos.jar 다운로드

     http://servlets.com

      1) COS File Upload Library > Download > Version > cos-22.05.zip 클릭하여 다운로드

      2) 압축 해제하고 cos.jar 파일을 lib 폴더에 추가

     

    파일 업로드 시 필요한 전송 방식을 회원가입 화면 <from> 태그 속성으로 추가

    enctype="multipart/form-data"

     

    <form>의 '내용' 아래에 업로드할 파일을 선택하는 코드추가

    <tr>
        <th>파일</th>
        <td>
            <input type="file" name="file1" /><br/>
            <input type="file" name="file2" /><br/>
        </td>
    </tr>
    cs

    파일 다운로드

     

    <c:if test="${fileDto.fileType.startsWith('image') }">
    <img src="Download.do?fno=${fileDto.fno }" width="100" /><br/>
    </c:if>
    <c:if test="${fileDto.fileType.startsWith('audio') }">
    <audio src="Download.do?fno=${fileDto.fno }" controls="controls" preload="auto"></audio><br/>
    </c:if>

    서버에 웹 어플리케션 배포 with 톰캣

    1) 프로젝트를 .war 파일로 Export

    2) 톰캣 디렉토리 내 webapps 폴더에 익스포트한 war 파일을 추가

    3) 톰캣 디렉토리 내 bin 폴더에서 startup.bat 파일 실행하여 톰캣 구동

    4) 웹브라우저를 실행하여 주소창에 어플리케이션의 url 입력

    5) 톰캣 디렉토리 내 bin 폴더에서 shutdown.bat 파일 실행하여 종료


    m2board_20230216.war
    5.90MB
    m2board_create.sql
    0.00MB

    'Study' 카테고리의 다른 글

    JAVA WEB - 6  (0) 2023.02.15
    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.