728x90
JSP와 Spring을 활용해서 게시판 만들어보기.
1. 메인 페이지
페이지 내 기능:
- 게시물 목록으로 이동
- 게시물 작성으로 이동
해결 과정:
- a 태그를 감싼 button을 활용하여 이동
2. 게시물 목록 페이지
페이지 내 기능:
- 게시물 목록 출력 기능
- 리스트에 title 클릭 시 조회, 수정, 삭제 페이지로 이동 기능
해결 과정:
- DB 연동: Postgresql + Mybatis + Spring을 이용 (pom.xml 설정, application.yml 또는 application.properties 설정)
- DAO와 DTO 객체를 이용해서 DB에 접근
- ModelAndView 객체를 이용해서 뷰와 모델을 전달, 출력
- DB.board 테이블에 저장된 데이터 중 Title, Name, Date 를 목록 형식으로 출력
- title에 이동할 경로와 parameter로 고유값을 가지는 seq 컬럼을 이용하여 설정
3. 게시물 작성 페이지
페이지 내 기능:
- 게시물 작성 기능
해결 과정:
- 입력 받은 데이터를 DB에 Insert할 수 있도록 Controller, Service, DAO, Mapper 작성
- Mapper 작성 시 연결될 DAO 메소드명과 Mapper의 id명을 일치시키고 파라미터 타입으로 알맞은 DTO를 설정
- 쿼리문 동작 결과에 따라 Alert출력하며 페이지를 이동
4. 게시물 조회, 수정, 삭제 페이지
페이지 내 기능:
게시물 조회 기능
게시물 수정 기능
게시물 삭제 기능
해결 과정:
- 조회할 데이터를 DB에서 Select 할 수 있도록 Controller, Service, DAO, Mapper 작성
- 수정할 데이터를 DB에서 Update 할 수 있도록 Controller, Service, DAO, Mapper 작성
- 삭제할 데이터를 DB에서 Delete 할 수 있도록 Controller, Service, DAO, Mapper 작성
- 세 기능 모두 where seq = #{seq} 조건을 통해서 원하는 데이터를 사용
- 삭제 기능은 delete_yn 값이 y일 때만 동작할 수 있도록 작성
public int deleteBoard(int seq) {
String yn = boardDao.getBoardContent(seq).getDeleteYn();
if(yn.equals("y")) {
return boardDao.deleteBoard(seq);
}
else {
return -1;
}
}
5. 성공/ 실패 처리 alert
public String Action(Board board, HttpServletResponse response) throws IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
/* 처리할 동작 수행*/
/* int 결과값을 result에 저장 */
if (result == 1) {
System.out.println("성공");
out.println("<script language='javascript'>");
out.println("alert('성공'); location.href='성공시 이동할 위치';");
} else {
System.out.println("실패");
out.println("<script language='javascript'>");
out.println("alert('실패'); location.href='실패시 이동할 위치';");
}
out.println("</script>");
out.close();
return "";
}
}
※ Formdata를 Controller가 받았을 때 charset이 왜 변경되고 한글 깨짐 현상을 어떻게 해결해야 할지 고민해 볼 것
728x90
'JAVA' 카테고리의 다른 글
[Java] Open JDK와 Oracle JDK의 차이점과 Java 1.8 (0) | 2023.03.08 |
---|---|
[Java] Spring + JSP 게시판 (Vue 활용하기) (0) | 2023.03.06 |
[Java] 스프링 입문 - 코딩을 하며 스프링 공부해보기(SpringBoot, 웹 MVC, DB 접근 기술) (0) | 2023.01.07 |
[JAVA] JSP 게시판 따라 만들어보고 서버 배포까지 공부해보기(EC2, Docker) (0) | 2022.12.16 |
[Java] Spring 프레임워크를 '공부' 해보자 (0) | 2022.06.23 |