Studying/-Web Practice에 해당하는 글 15

  1. [1차 프로젝트] 목록 출력 / 상세 정보 / 찜 / 문의 / 예약 2022.08.26

    1차 프로젝트가 끝났다! 1차 프로젝트 주제는 "공간 대여 플랫폼" 이고, 내가 맡은 파트는 아래와 같다. -카테고리별 상품(=공간) 목록 페이지 -상품 상세 페이지 -상세 정보 출력 -지도 연동 -찜하기 -문의하기 -예약하기 간단하게 PPT 이미지만 첨부~ 더보기


  2. MyBatis + MVC 실습 (9) : 찜하기 기능(소스코드만 정리) 2022.08.16

    테이블 생성 create table jjim( no number, id varchar2(20), fno number, constraint jjim_no_pk primary key(no), constraint jjim_fno_fk foreign key(fno) references food_house(fno) ); create table food_like( no number, id varchar2(20), fno number, constraint fl_no_pk primary key(no), constraint fl_fno_fk foreign key(fno) references food_house(fno) ); food-mapper.xml SELECT NVL(MAX(no)+1,1) as no FROM jji..


  3. MyBatis + MVC 실습 (8) : 묻고답하기 게시판(소스코드만 정리) 2022.08.16

    글 쓰기 boardreply-mapper.xml SELECT NVL(MAX(no)+1,1) as no FROM project_replyboard INSERT INTO project_replyboard(no,name,subject,content,pwd,group_id) VALUES(#{no},#{name},#{subject},#{content},#{pwd},(SELECT NVL(MAX(group_id)+1,1) as group_id FROM project_replyboard)) SELECT CEIL(COUNT(*)/10.0) FROM project_replyBoard BoardReplyDAO.java(Class) package doo.doo.dao; import java.io.Reader; import j..


  4. MyBatis + MVC 실습 (7) : 회원수정/회원탈퇴(소스코드만 정리) 2022.08.12

    로그인 처리 member-mapper.xml SELECT COUNT(*) FROM project_member WHERE id=#{id} SELECT pwd, id, name, admin FROM project_member WHERE id=#{id} MemberDAO.java(Class) package doo.doo.dao; import doo.doo.vo.*; import java.io.*; import java.util.*; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.iba..


  5. JSP로 달력 만들기(코드 참고용) 2022.08.11

    DateModel.java package doodoo.model; import javax.servlet.http.HttpServletRequest; import java.util.*; import java.text.*; public class DiaryModel { public String diary_main(HttpServletRequest request) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d"); String today = sdf.format(date); StringTokenizer st = new StringTokenizer(today,"-"); String sy = st.nextToken();..


  6. MyBatis + MVC 실습 (6) : 검색 기능 2022.08.08

    지역별 맛집을 검색해서 리스트를 출력해 주는 기능을 만들어 보자. 아래처럼 키워드를 입력하고 검색 버튼을 누르면 그 아래 영역에 검색 결과를 출력할 것이다. 1. 검색 결과 리스트와 수를 출력할 mapper 코드를 작성한다. mapper.xml LIKE문을 사용할 때 작은 따옴표(')와 | 기호를 써야 하는 점에 유의한다! SELECT fno, name, score, poster, type, address, num FROM (SELECT fno, name, score, poster, type, address, rownum as num FROM (SELECT fno, name, score, poster, type, address FROM food_location WHERE address LIKE '%'||..


  7. MyBatis + MVC 실습 (5) : 댓글 기능 2022.08.08

    이제 게시글의 상세페이지에서 볼 수 있는 댓글 기능을 만들어 보자. 우선 댓글의 정보를 담아 줄 VO를 생성한다. 자유게시판의 댓글 기능을 만드는 것이지만, 추후 공지사항이나 묻고 답하기 등 다른 게시판에서의 확장성을 고려하여 table_name이라는 항목도 생성한다. ReplyVO.java //Getter, Setter는 편의상 생략 package doodoo.vo; import java.util.*; public class ReplyVO { private int no, bno, type; private String id, name, msg, dbday, table_name; } 댓글 쓰기 위처럼 게시글 아래에 댓글 창을 만들고! 추가시 덧글 목록을 출력하도록 만든다. 입력창에 내용을 입력 후 댓글 쓰..


  8. MyBatis + MVC 실습 (4) : 로그인/로그아웃 2022.08.05

    회원가입 기능을 만들었으니... 이제 아래와 같은 로그인 모달을 띄워서 로그인 처리를 해 보자! 로그인 처리는 어떻게 해야 하는가? 지금까지처럼 request에 로그인 정보를 저장하면, 사용자가 페이지를 이동할 때마다 로그인 정보를 request 에 담아 보내줘야 하기 때문에 매우 비효율적이다. 따라서 사용자가 로그인한 상태인지 아닌지에 대한 정보는 session에 저장한다. 세션은 서버에 저장되기 때문에 사용자가 로그아웃을 하거나 브라우저를 종료하기 전까지는 이 정보가 유지된다! 또한 미로그인/로그인 상태에 따라 로그인 아이콘을 변경하고, 일반 회원이냐 관리자 회원이냐에 따라 보이는 메뉴의 종류를 달리 할 것이다. 가보자고~ 로그인 모달 띄우기 / 로그아웃 처리하기 ajax 팝업 라이브러리 중 하나인 ..


  9. MyBatis + MVC 실습 (3) : 회원가입 2022.08.04

    이제 회원가입이다! 아래와 같은 폼을 구성한 후 기능을 만들어 보자. 우선 데이터를 받아주고 관리하기 위해 아래와 같은 MemberVO를 생성한다. 동일한 형태로 Oracle 데이터테이블도 생성한다. MemberVO package doodoo.vo; public class MemberVO { private String id, pwd, name, sex, birthday, email, post, addr1, addr2, tel, content, admin, login; private String tel1, tel2; //받을 때는 tel1, tel2 따로 받고 묶어서 한번에 처리할것임 private String msg; } 폼에서 보이듯 010은 고정되어 있고 이후 뒷자리를 입력받도록 만들어져 있다. 따라..


  10. MyBatis + MVC 실습 (2) : 게시글 삭제하기/수정하기 2022.08.04

    상세 페이지에서 만들었던 수정/삭제 버튼을 클릭했을 때의 기능을 만들어 보자. 글 삭제 기능 삭제 기능은 아래와 같은 흐름대로 처리하게 구현할 것이다. (1) detail.jsp에서 "삭제"버튼을 클릭하면 나타나는 입력칸에 비밀번호를 입력하고 버튼을 클릭하면! → detail.jsp의 ajax 코드에 의해 "../freeboard/delete.do?no=1&pwd=1234"와 같은 요청을 전송한다. (2) Model에서 delete.do를 인식하여 no와 pwd를 받아 DAO의 메서드를 호출한다. (3) DAO의 boardDelete()에서 비밀번호가 맞으면 게시글을 삭제하고 yes, 틀리면 no를 result에 담아 리턴한다. (4) Model에서 result를 request의 res에 담아 delet..