개발/Web Project (1) - Spring MVC + java + DB
-
Spring + MyBatis + DB = 작은 웹사이트 - (9) CRUD개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 28. 21:01
전체 글 목록을 읽어오는 기능과 페이징 처리 기능을 넣었으니 새로 글쓰기, 상세 데이터 조회, 글 수정, 글 삭제 기능을 구현해서 CRUD 풀셋을 완성할 차례다. 처음 밝혔듯이 원래는 상세 조회, 수정, 삭제, 입력을 모두 하나의 jsp 에서 처리할 수 있게 구현하려고 했으나...구체적인 설계 계획없이 일단 만들기 시작하다가 꼬이면서 수정, 입력을 각각의 별도 화면에서 처리하는 것으로 바꿨다. 1. 글 신규 작성 + CKEditor 삽입 목록 조회 화면에서 글 쓰기 버튼을 클릭하면 loaction.href 를 이용하여 글 작성 화면으로 이동한다 $("#toWrite").click(function(){location.href="/home/note/writeNoteView"; }); //게시물 작성 화면@R..
-
Spring + MyBatis + DB = 작은 웹사이트 - (8) 페이징 처리 로직개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 26. 14:15
처음부터 페이징 처리 로직을 혼자서 짜본 적이 없어서 삽질을 좀 많이 했다.다른 분들 소스도 많이 찾아봤는데 나는 페이징 처리에 필요한 계산은 다 객체 안에 숨겨서 끝내버리고 싶고객체 계산결과에 따른 화면 처리 역시 js에서 함수로 빼서 처리하다보니 이런 결과물이 나왔다.기본 로직은 다른 분들이 공개해두신 소스와 별 차이가 없을 것....이라고 추정...한다... 실제로 사용한 페이징 객체는 아래와 같다. package common.vo; public class PagingVO {private static final int NOTE_PER_PAGE = 10;//페이지 당 게시물 수private static final int BLOCK_PER_PAGE = 5;//화면 당 페이지 블록 수private int..
-
Spring + MyBatis + DB = 작은 웹사이트 - (7) 본격 게시판 만들기 서막개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 17. 22:48
오잉 별것도 안했는데 벌써 7번째 포스팅이라니 이게 무슨 일이오아무튼 이번에는 드디어ㅠㅠ 게시판을 붙여보는 시간이다. 되도록이면 한방에 포스팅을 정리하고 싶어서 페이징 처리까지 끝낸 뒤에 글을 쓰려다보니 조금 시간이 걸렸다.참 신기하게도 분명 내가 예전에 써서 잘 돌아갔던 기능들인데 다시 이 프로젝트를 진행하면서 재활용하려니까 안 먹는 것들이 있다.물론 내가 능력이 부족해서 개발환경 세팅이라던가 뭐 그런데서 실수했겠지 ㅠㅠ 하면서도 짜증나는 이 기분덕분에 실무에서는 하루만에 개발 완료할 것을 엄청나게 질질 끌면서 개발했다 흑흑 1. 게시판용 테이블 생성 먼저 DB가 있어야 게시물을 읽고 쓸테니 DB 생성부터 CREATE TABLE `myhome`.`note` ( `sn` VARCHAR(45) NOT NU..
-
Spring + MyBatis + DB = 작은 웹사이트 - (6) JSTL 활용 & 로그아웃 기능 구현개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 17. 22:19
JSTL을 활용하여 로그인 여부에 따라 로그인 / 로그아웃 버튼이 보이게 만들고또한 로그아웃 버튼을 누르면 로그아웃 처리하는 기능을 추가하는 시간이다. 엄청 간단하다. 1. JSTL로 버튼 구현 컨트롤 앞서 로그인 기능을 구현할 때 로그인에 성공하면 session 에 setAttribute를 써서 객체를 추가했다.객체명은 "admin" 이고, 스트링 타입으로 DB에 저장되어있던 관리자의 이름이 들어갔다. 따라서 이 admin 값이 있을 때 / 없을 때로 구분하여 로그인 버튼이 보이도록 소스를 다시 바꿨다. 아래 접기 태그 안을 보면 안에 과 로 조건을 걸어admin 객체가 세션에 있다면 로그아웃 버튼을, 아니면 로그인 버튼이 출력된다. × HOME ABOUT MAKINGS GUESTS ☰ MENUWelc..
-
Spring + MyBatis + DB = 작은 웹사이트 - (5) 폴더 및 소스 분리개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 17. 17:04
이제 진짜진짜진짜 본격적인 소스 구현을 시작하기에 앞서,폴더 구조를 구축해두고 로그인 소스를 home.jsp에서 빼내어 별도의 로그인 화면을 만들고 header.jsp 를 만들어서 붙여줄 예정이다. 진작에 처음부터 따로 만들었으면 몸이 편했겠으나 나는 어리석은 닝겐.... 1. 폴더 구조 만들기 css파일, js파일, 배경화면 등에 쓰일 이미지 파일을 담을 폴더들을 만들어줬다.위치는 scr > main > webapp > resources 아래에 뒀다. 화면들 역시 폴더를 만들어서 각 폴더 안에서 관리하겠다. src >main > webapp > WEB-INF > views 아래에 'admin', 'guest', 'note' 폴더를 각각 생성해줬다.로그인 실패화면인 fail.jsp, 화면의 헤더로 쓰일 ..
-
Spring + MyBatis + DB = 작은 웹사이트 - (4) 로그인 기능 구현개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 12. 18:15
지난번에 DB 연결을 해두긴 했지만 과연 잘 된건지 의심스럽다.나중에 다시 수정해야한다는 번거로움이 있지만 일단 간단하게 홈화면에 로그인 화면을 구현해서 테스트를 해보고 넘어간다. 1. 데이터 만들기 로그인하려면 아이디, 패스워드 등의 데이터가 기록되는 테이블이 필요하다.아직 테이블을 만들지 않았으니 이참에 테이블을 만들면서 관리자도 만들어준다. CREATE TABLE `myhome`.`user` ( `id` VARCHAR(45) NOT NULL COMMENT 'id', `pw` VARCHAR(45) NOT NULL COMMENT 'password', `nm` VARCHAR(45) NOT NULL COMMENT 'user name', PRIMARY KEY (`id`), UNIQUE INDEX `id_UN..
-
Spring + MyBatis + DB = 작은 웹사이트 - (3) 이클립스 건들기개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 11. 23:56
이클립스 건들기라고는 했으나 사실 이걸 뭐라고 해야할지 어휘력이 딸려서 저렇게 썼다.나는 어쩔 수 없는 한국인이니 이클립스의 인코딩을 UTF-8로 설정하고 넘어가려고 한다. 더불어 코딩하다보면 새 파일을 생성해서 소스를 작성하는 일이 정말 많은데, 이때 내가 쓰려는 타입은 숏컷 메뉴에 안 뜨고 안 쓰는 것들만 잔뜩 숏컷 메뉴에 뜨면 번거로우니까숏컷 메뉴도 같이 손질을 한 뒤에 본격적으로 소스 작성을 시작하려고 한다. 1. 이클립스 인코딩 설정 이클립스 상단 메뉴에서 Window > Preference 를 선택한 후 진행한다. General > Content Types 선택 후 나오는 아래 창에서 Java Class File 선택, 붉은 색으로 표시한 부분과 같이 UTF-8을 입력한 후 업데이트 버튼 클릭..
-
Spring + MyBatis + DB = 작은 웹사이트 - (2) DB 연결개발/Web Project (1) - Spring MVC + java + DB 2018. 1. 11. 21:49
어느 정도 개발환경이 갖춰졌으니 이번에는 DB를 만들고 MyBatis를 연동하자.DB는 오픈소스 중에서 한번도 안 써본 Maria DB를 골랐다. Maria DB는 MySQL AB 출신들이 배포한 것이라 그런지 MySQL Workbench로 관리하는 것이 가능하다.그래서 디비툴은 MySQL Workbench로 받아서 설치했다. 1. DB 및 DB 툴 다운로드, 설정 Maria DB → downloads.mariadb.org (10.2 받음)MySQL Workbench → dev.mysql.com/downloads/workbench (6.3.10 받음) 요 두개를 설치하는 과정은 자세하게 서술해주신 분들이 많으니 생략하고.... root 계정으로 접속하여 웹사이트와 연결할 DB 및 'admin' 계정을 만..