본문 바로가기

Programming/SERVER

(12)
DAY 129. MVC2 패턴 - 쿠키를 활용한 게시글 조회수 기능 조회수 기능 - 새로 고침할 때마다 조회 수가 증가해서 조회 수가 조작될 수 있는 것을 방지하는 로직이다. - 쿠키에 조회한 내용을 기록해놓고, 한 번 조회하고나면 그 뒤에는 새로고침하거나 다시 조회했던 게시물을 누른다고 해서 조회 수가 증가되지 않도록 한다. 01. ViewServlet.java - 쿠키에 조회한 이력이 있는지 확인하는 로직 - Cookie 객체를 활용한다. Cookie[] cookies = request.getCookies(); String boardHistory = ""; boolean hasRead = false; if(cookies != null) { String name = null; String value = null; for(Cookie cookie : cookies) { ..
DAY 127. MVC2 패턴 - 댓글 기능 댓글 기능 01. 데이터 베이스 - REPLY 관련 테이블 생성 - 코멘트 추가 - 제약조건 추가 02. view.jsp - 댓글 영역 생성 - 로그인 한 사람 & 본인이 작성한 댓글일 경우에만 수정 및 삭제 버튼이 보이도록 태그 구현 - board 객체에 있는 replies 속성 이용해서 로 반복해서 담아있는 댓글만큼 반복해서 댓글이 보이도록 한다. 반복문에 사용할 forEach의 var에 해당하는 아이템에 넣을 Reply 객체를 만든다. 03. Reply.java - com > kh > mvc > board > model > vo 밑에 생성 - 댓글 하나를 하나의 행으로 객체에 담을 때 사용하는 클래스이다. - 해당 값을 반환받아서 view.jsp 에서 해당하는 영역에 구현해준다. 04. BoardD..
DAY 126. MVC2 패턴 - 게시글 상세 조회 게시글 상세 조회 01. list.jsp - 리스트에 게시된 글의 제목을 클릭하면 작성된 글의 상세 보기로 넘어갈 수 있도록 ${ board.title } 을 태그로 감싼다. - 속성에 경로 지정하면서 페이지에 대한 게시글을 구분할 수 있는 PK 값을 URL에 함께 넘긴다. 02. view.jsp - 이 페이지와 연결 시킨다. - 서블릿에서 NO 값을 받아서 NO에 해당하는 게시글 조회해서 데이터를 주면, 데이터를 받아서 view.jsp에서는 화면을 그려준다. 03. ViewServlet.java - com > kh > mvc > board > controller 밑에 생성 - view.jsp 페이지로 forward를 위한 작업 - requst.getReqeustDispatcher("URL").forwa..
DAY 125. MVC2 패턴 - 게시글 삭제, 게시글 수정 게시글 삭제 01. view.jsp - 삭제 하기 버튼에 id 부여 - 꼭 기입해주기! - 게시글 삭제 전에 한 번 더 확인받는 alert 띄우기 - 진짜로 글을 삭제하기 전에! 로그인 하지 않으면 글 상세조회 할 때 수정과 삭제 버튼은 나올 수 없는 기능을 구현한다. 수정 삭제 수정 삭제 - 여기까지만 하면 로그인만 하면 글 수정, 글 삭제가 가능하기 때문에! 내가 작성한 글만 수정과 삭제가 가능한 기능을 구현한다. 수정 삭제 - 의 onclick 이벤트가 수행되면서 URL을 바꿔줘야 하기 때문에 경로를 함수 안에 작성 location.replace("${ pageContext.request.contextPath }/board/delete?no=${ board.no }"); 02. BoardDelete..
DAY 124. MVC2 패턴 - 게시글 작성 게시글 작성 01. write.jsp - 태그의 action 속성에는 "${ pageContext.request.contextPath }/board/write" 를, method 속성에는 "POST"를 적는다. 02. WriteServlet.java com > kh > mvc > board> controller 밑에 작성 URL mapprings : /board/write | doGet, doPost 체크 1) get 요청이 오면 views/board/wirte.jsp를 열 수 있도록 forwarding 시킨다. 03. list.jsp button 글쓰기가 눌렸을 때 페이지가 릴 수 있도록 onlick 이벤트를 지정한다. 글쓰기 로그인 했을 경우에만 글쓰기 버튼이 보여야 하는데 url를 직접 입력하면 로..
DAY 123. MVC2 패턴 - 게시글 목록, 페이징 게시글 목록 조회 01. board에 관한 .jsp 파일 생성 - webapp > views > board 밑에 생성 - list.jsp(게시글 목록 조회) | update.jsp(게시글 수정) | view.jsp(작성한 글 상세 보기) | write.jsp(게시글 작성) - 목표 1) 파일 업로드, 파일 다운로드 구현 2) 댓글 기능 구현 - 데이터베이스 BOARD TABLE 생성, COMMENT 생성, 시퀀스 생성, PL/SQL 프로시저 (pk, fk 제약조건 참고 하기 2. list.jsp를 위한 서블리 생성 : ListServlet.java - com > kh > mvc > board > controller - URL Mappings : /board/list | doGet 체크 1) 게시글 리스트..
DAY 120. MVC2 패턴 - 회원가입 회원가입 01. EnrollServlet.java - com > kh > mvc > member > controller 밑에 생성 - URL Mappings : /member/enroll | doGet & doPost 생성 - get 요청 : url에 입력하는 doGet 요청으로 오면 jsp 페이지로 forward(URL이 바뀌지 않는다.) - post 요청 : doPost 에는 넘어오는 데이터를 가지고 비즈니스 로직을 등록할 때 사용 02. enroll.jsp - 태그의 action 속성에 url 등록한다. action="${ pageContext.request.contextPath }/member/enroll" method="post" - 아이디 중복 검사는 AJAX로 구현 - 패스워드, 패스워드 확..
DAY 119. MVC2 패턴 - JDBCTemplate JDBCTemplate - 공통적인 부분을 처리하는 영역 - 중복된 코드를 줄일 수 있다. - static import 01. JDBCTemplate.java 1) Connection 객체를 리턴하도록 로직 구현 2) SELECT는 상관없지만, DML문 수행은 자동으로 COMMIT = AUTO COMMIT이 활성화되어있다. 예를 들어, 비즈니스 로직을 구현할 때, 1개 테이블에 INSERT, 2개 테이블에 UPDATE를 하는 하나의 트랜잭션(하나의 논리적인 작업 단위)이 있다면, 각 단계가 끝날 때마다 COMMIT이 된다. 이 때, 만약 마지막 단계에서 에러가 발생해서(UPDATE가 실패해서) ROLLBACK을 해야하는 상황에서는 이미 COMMIT 된 부분은 ROLLBACK 되지 않는다. 즉, 트랜잭션 ..