일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ui인터페이스
- IndexedDB
- @requstbody
- 자바
- Eclipse
- resutful api
- thymeleaf
- JavaScript
- 데이터 시각화
- vscode
- spring boot
- 상태값 저장 유지
- html
- 게시판
- 자바빈
- open in browser
- jsp
- chart.js
- css
- tomcat
- chart.js 라이브러리
- vsc
- 초보 개발자
- 여러 종류의 사용자 정의 함수
- 자바스크립트
- java
- github
- MYSQL
- git
- 실시간 상태값 저장
- Today
- Total
수월한 IT
13장 Dao와 Vo 본문
본 포스팅에서 사용되는 자바 클래스들의 종류와 용도입니다.
클래스명 | 설명 |
BoardDao.java | BoardController로 부터 요청사항을 전달받아 처리한 후 그 결과를 다시 BoardController에게 전달하는 클래스. |
Page.java | 게시물 목록을 볼 때 페이징 처리를 하기 위한 클래스 |
BoardVo.java | 게시물 한 건에 대한 데이터 저장 클래스 |
AttVo.java | 첨부파일 한 건에 대한 데이터 저장 클래스 |
DBConn.java | 오라클 데이터베이스를 연결하기 위한 클래스 |
FileUpload.java | 첨부파일을 업로드 하기위한 클래스 |
BoardController | 사용자의 요청정보를 전달받아 BoardDao에 전달하고 처리된 결과를 BoardDao에게서 리턴받아 사용자에게 전달하는 클래스 |
각 클래스에 대한 필드와 메서드는 아래와 같습니다. 메서드의 내용은 앞으로 진행할 각 장에서 자세히 설명드리도록 하겠습니다.
BoardDao.java
BoardController로부터 요청받아 실제로 데이터베이스와 연동하여 CRUD를 처리하는 클래스.(CRUD:Create, Read, Update, Delete)
package bean; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BoardDao { public BoardDao() { } //로그인/로그아웃 처리 public boolean loginCheck(String mid, String pwd) { } // 게시판 저장 처리 public String register(HttpServletRequest req) { String msg = "게시물이 저장되었습니다."; return msg; } // 게시판 답글 처리 public String repl(HttpServletRequest req) { String msg = "댓글이 작성되었습니다."; return msg; } // 검색된 전체 행수 public Page getTotListSize(Page p) { } // 검색 처리 public List<BoardVo> select(Page p) { List<BoardVo> list = new ArrayList<BoardVo>(); return list; } // 상세보기 처리 public BoardVo view(int serail, char mode) { String msg = ""; BoardVo respVo = new BoardVo(); List<AttVo> attList = null; return respVo; } // 수정된 내용 저장 처리 public String modifyR(HttpServletRequest req) { String msg = "수정되었습니다."; return msg; } // 삭제 처리 public String delete(int serial) { String msg = "삭제 되었습니다."; return msg; } // 첨부 파일 삭제 public void deleteFile(List<AttVo> list) throws Exception{ } // BoardVo 정보 생성 public BoardVo setVo(ResultSet rs, char mode) throws Exception { BoardVo vo = new BoardVo(); return vo; } // 첨부파일 정보 생성 public AttVo setAttach(ResultSet rs) throws Exception { AttVo att = new AttVo(); return att; } }
Page.java
게시판 조회부분에서 페이징 처리를 하기 위한 전체 정보를 갖고 있는 클래스입니다. nowPage를 기준으로 pageCompute()에서 모든 변수의 값을 계산합니다.
package bean; public class Page { int totListSize; //검색된 결과의 전체 건수 int totPage; int listSize=20; int blockSize=5; int startNo; int endNo; int startPage; int endPage; int nowPage=1; String findStr =""; public Page() {} public Page(int tot, int now) { this.totListSize = tot; this.nowPage = now; pageCompute(); } //페이지와 관련된 모든 변수 계산 public void pageCompute() { totPage = (int)Math.ceil(totListSize/(double)listSize); endNo = nowPage * listSize; startNo = endNo-listSize+1; if(endNo>totListSize) endNo = totListSize; endPage = (int)Math.ceil(nowPage/(double)blockSize) * blockSize; startPage = endPage-blockSize+1; if(endPage>totPage) endPage = totPage; } public int getStartPage() { return startPage; } public void setStartPage(int startPage) { this.startPage = startPage; } public int getEndPage() { return endPage; } public void setEndPage(int endPage) { this.endPage = endPage; } public int getTotListSize() { return totListSize; } public void setTotListSize(int totListSize) { this.totListSize = totListSize; } public int getTotPage() { return totPage; } public void setTotPage(int totPage) { this.totPage = totPage; } public int getListSize() { return listSize; } public void setListSize(int listSize) { this.listSize = listSize; } public int getNowPage() { return nowPage; } public void setNowPage(int nowPage) { this.nowPage = nowPage; } public int getStartNo() { return startNo; } public void setStartNo(int startNo) { this.startNo = startNo; } public int getEndNo() { return endNo; } public void setEndNo(int endNo) { this.endNo = endNo; } public String getFindStr() { return findStr; } public void setFindStr(String findStr) { this.findStr = findStr; } public int getBlockSize() { return blockSize; } public void setBlockSize(int blockSize) { this.blockSize = blockSize; } }
BoardVo.java
게시판 한건의 정보와 첨부파일들을 기억하는 클래스.
package bean; import java.util.List; public class BoardVo { // 데이블과 관련된 필드 private int serial; private String worker = ""; private String pwd = ""; private String subject = ""; private String content = ""; private String mdate; private int hit; private int attCnt; List<AttVo> attList; public BoardVo() { } public int getSerial() { return serial; } public void setSerial(int serial) { this.serial = serial; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getMdate() { return mdate; } public void setMdate(String mdate) { this.mdate = mdate; } public String getWorker() { return worker; } public void setWorker(String worker) { this.worker = worker; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public int getHit() { return hit; } public void setHit(int hit) { this.hit = hit; } public List<AttVo> getAttList() { return attList; } public void setAttList(List<AttVo> attList) { this.attList = attList; } public int getAttCnt() { return attCnt; } public void setAttCnt(int attCnt) { this.attCnt = attCnt; } }
AttVo.java
첨부파일 한건에 대한 정보를 저장하는 클래스.
package bean; public class AttVo { int serial; // 자신의 순번 int pSerial; // 본문글 번호 String attFile; // 저장된 파일명 String oriAttFile; // 사용자가 업로드한 파일명 public int getSerial() { return serial; } public void setSerial(int serial) { this.serial = serial; } public int getpSerial() { return pSerial; } public void setpSerial(int pSerial) { this.pSerial = pSerial; } public String getAttFile() { return attFile; } public void setAttFile(String attFile) { this.attFile = attFile; } public String getOriAttFile() { return oriAttFile; } public void setOriAttFile(String oriAttFile) { this.oriAttFile = oriAttFile; } }
DBConn.java
오라클 데이터베이스와 연결하기 위한 클래스입니다. 연결 정보(driver, path, user, pwd)를 가지고 최종적으로 Connectioin 객체를 반환합니다.
package bean; import java.sql.Connection; import java.sql.DriverManager; public class DBConn { private String driver = "oracle.jdbc.driver.OracleDriver"; private String path = "jdbc:oracle:thin:@127.0.0.1:1521:xe"; private String user = ""; private String pwd = ""; private Connection conn;// DB의 연결 정보를 기억 public DBConn() { this("jobtc", "1234"); } public DBConn(String user, String pwd) { this.user = user; this.pwd = pwd; try { // 드라이버 로딩 Class.forName(driver).newInstance(); // DB 연결 conn = DriverManager.getConnection(path, user, pwd); } catch (Exception ex) { ex.printStackTrace(); } } public Connection getConn() { return conn; } }
FileUpload.java
입력, 수정, 댓글 처리 부분에서 필수로 사용되어야 하는 클래스.
package bean; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUpload { public FileUpload(HttpServletRequest req) { //<form/> 정보 가져옴. } public boolean uploadFormCheck() { // <form/>이 ectype='multipart/form-data'인지 체크 } public HttpServletRequest uploading() { // 파일 업로드 및 처리 결과 저장 } }
BoardController.java
사용자 요청정보를 가장 먼저 받아들여 BoardDao의 적당한 메서드를 호출하고 그 결과를 다시 사용자에게 되돌려 주는 클래스.
package bean; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class BoardController { HttpServletRequest req; HttpServletResponse resp; BoardDao dao; public BoardController(HttpServletRequest req, HttpServletResponse resp) { } //login.jsp페이지에서 호출됨 public void loginCheck() { // form 정보를 가져옴. String loginFlag = req.getParameter("loginFlag"); String mid = req.getParameter("mid"); String pwd = req.getParameter("pwd"); // 요청 객체로 부터 세션을 가져옴. HttpSession session = req.getSession(); if(loginFlag.equals("login")){ boolean b = dao.loginCheck(mid, pwd); if(b) { //세션에 아이디 저장 session.setAttribute("session_id", mid); } }else if(loginFlag.equals("logout")){ // 세션에서 session_id 속성 제거 session.removeAttribute("session_id"); } } public void select() { // 조회 요청 처리 } public void view() { // 상세보기 처리 } public void register() { // 게시판 저장 처리 } public void modify() { // 수정 화면 처리 } public void modifyR() { // 수정 내용 저장 처리 } public void deleteR() { // 삭제 처리 } public void replR() { // 답글 처리 } public Page getPage() { Page p = new Page(); // 페이지 정보 처리 return p; } }
대부분의 메서드안의 내용은 이직 기술하지 않았습니다. 각 메서드의 내용은 앞으로 진행되는 각 단원에서 설명하도록 하겠습니다.
'프로젝트 > 자바 빈과 JSP만을 사용한 게시판 만들기' 카테고리의 다른 글
15장 게시물 입력폼 만들기 (1) | 2020.05.10 |
---|---|
14장 검색및 페이징 (0) | 2020.05.10 |
12장 페이지 동적 삽입 (0) | 2020.05.10 |
11장 메인 페이지와 로그인 처리 만들기 (1) | 2020.05.10 |
10장 파일구조및 목록 (0) | 2020.05.10 |