회원관리, 로그인외에 회원에 관련된 기능게시글작성, 읽기, 수정 등 게시판 관련기능프로젝트 java프로젝트로 진행데이터베이스 연동은 MyBatisf를 사용하여 진행MVC는 model, view, controller의 약자로 현재 가장 많이 사용하는 개발 패턴으로 서비스
index.jsp를 기준으로 menu.jsp와 footer.jsp를 분리작업 그렇게 하기위해선 와 에 jstl 태그추가 maven 빌드를 사용했기 때문에 pom.xml에 jstl라이브러리도 추가 index.jsp
menu.jsp root변수에 context path 까지의 주소를 입력하고 index.jsp에 링크부분에 를 입력해주면된다. 혹시라도 안된다면 슬러쉬를 넣었는지 한번 확인해본다. 경로를 지정해주는 부분이라 를 넣지않았다면 따로 앞에 를 넣어줘야 한다.
menu.jsp에서 UserController.java
board폴더안에 read, write, modify 파일 만들기
com.demo.beans패지키 안에 boardInfoBean.java클래스 만들기
pom.xml
상단메뉴중 게시판 메뉴를 구성 데이터 베이스에서 게시판이름들을 가져와 메뉴를 구성 상단 메뉴는 모든 요청에 대해 처리해야 하는 부분이므로 Interceptor 에서 처리 com.demo.mapper패키지에서 MenuMapper.java 인덱스 순으로 Board리스
com.demo.interceptor패키지 생성 MenuInterceptor.java 파일 생성
스프링 form 태그 추가하고 form 태그를 <form:form> 으로 수정.
아이디 중복확인을 확인하기 위해서는 아이디를 DB에서 검색해야 하므로 UserMapper.java ServletAppContext.java UserService.java UserService.java RestApiController.java join.jsp
회원가입 버튼을 누르면 404오류 페이지가 나옵니다. UserMapper.java user_idx는 순서대로 생성 UserBean 객체의 저장되어있는 이름, 아이디, 비번의 값이 user_table에 저장 UserService.java UserController.java join_success.jsp 데이터베이스에 잘 저장되어있는걸 확인할 수 있다...
사용자 로그인 기능을 구현 아이디 비밀번호 입력에 대한 유효성검사를 처리 로그인 성공 시 사용자 정보를 세션영역에 저장 LoginUserBean.java 기존의 UserBean에서 로그인에 필요한 정보로 만들고 추가로 로그인 상태를 추가 login.jsp Use
상단메뉴가 로그인 전 후에 달라지는 부분 처리 로그아웃 기능 처리 현재는 로그인을 하지 않아도 정보수정, 로그아웃 부분이 나오는걸 로그인을 했을경우 나오도록 변경 ServletAppContext.java 로그인 유저 정보가 들어있는 객체를 주입받아 인터셉터의 생성자
로그인여부를 확인하는 처리 로그인을 하지않으면 접근하지 못하도록 처리 Interceptor에서 로그인 여부를 확인하고 로그인 하였을 경우 다음단계로 진행되도록 처리 CheckLoginInterceptor.java UserController.java not_login.jsp ServletAppContext.java 인터셉터으로 로그인을 하지않으면 볼...
modify.jsp modify.jsp
UserController.java 비밀번호가 같지 않았을때 아래에 나오는 메세지 확인 UserMapper.java UserService.java UserController.java modify_success.jsp 기존비밀번호는 였는데 로 변경된 걸 확인할 수 있다.
로그인한 사용자가 게시글을 작성할 수 있도록 작업 상단메뉴의 각 게시판 클릭시 인덱스번호로 요청하기
ContentBean.java
작성한 게시글을 저장 파일(이미지)를 선택했을 경우 파일업로드 이전 파일 업로드 StandardServletMultipartResolver 를 사용 이미지 업로드 방법 entype="multipart/form-data"를 write.jsp 폼 태그에 적용 스프링에서
BoardController.java write.jsp
BoardMapper.java BoardService.java BoardController.java DB에 잘 들어간걸 확인할 수 있다.
메뉴에서 자유게시판을 클릭했을시 "게시판이름" 이 아니라 "자유게시판" 이름이 나오게 하는 작업 BoardMapper.java BoardService.java BoardController.java 작성한 글의 목록을 보여주는 페이지
기존에있던 내용은 html으로 넣은거라, 직접글을 많이 등록해야한다. ContentBean.java BoardService.java BoardController.java main.jsp
글을 읽는 페이지를 구성글 목록에서 글을 클릭하면 글을 읽는 페이지가 나타나도록 구현 글을 새로 작성하였을 때 작성된 글을 읽는 페이지가 나타나도록 구현
글을 작성 후 바로 글쓴페이지로 이동할려면 content_idx게시글 번호를 알아야한다.하지만 게시글 번호를 자동생성으로 설정했기 때문에 바로 알 수 가 없다.마이바티스에서 제공하는 @SelectKey를 사용해 미리 MySQL Auto Increment를 사용해 게시글
글 수정 기능 중 작성 권한에 대한 처리 수정과 삭제 버튼은 로그인한 사람과 작성한 사람이 같은 경우에만 노출 직접 주소를 입력하고 요청할 경우를 대비 Interceptor로 처리 BoardController.java
직접 주소를 입력하고 요청할 경우 대비해 Interceptor로 처리
입력된 modifyContentBean의 인덱스번호로 검색해 다른 정보들을 입력한다.파라미터로 board_idx, content_idx 받아서 modifyContentBean 객체에 추가해서 model에 추가하기
게시판 유효성 검사
글 삭제하기는 기능을 구현삭제버튼을 누르면 글을 삭제하고 글 목록 페이지로 이동게시글 번호를 content_idx 지우기 위해 설정
페이징기법을 적용 페이징은 게시글의 개수가 너무 많을 때 목록 한 페이지가 다 보여주기 어렵기 때문에 페이지당 개수를 정해놓고 페이지별로 글 목록보여주는 기법데이터베이스 쿼리문에서 처리하나 Spring MVC은 페이징처리를 쉽게 할 수 있도록 지원page 파라미터추가
이제 BoardService.getContentCnt(게시판번호,현재페이지) 메서드 사용하면 선택한 게시판의 현재페이지에 해당하는 페이지네이션 객체가 리턴된다.
기본페이지 "/" 요청시 HomeController.java
각 게시판 별로 최근 글5개를 가져와서 화면 표시하기mapper는 이미 board_table에서 글들을 가져오는 메서드를 사용