728x90
반응형
웹 쇼핑몰 만들기 01 >>> https://rogi221.tistory.com/93
웹 쇼핑몰 만들기 02 >>> https://rogi221.tistory.com/101
웹 쇼핑몰 만들기 03 >>> https://rogi221.tistory.com/105
웹 쇼핑몰 만들기 04 >>> https://rogi221.tistory.com/109
웹 쇼핑몰 만들기 05 >>> https://rogi221.tistory.com/114
웹 쇼핑몰 만들기 06 >>> https://rogi221.tistory.com/116
웹 쇼핑몰 만들기 07 >>> https://rogi221.tistory.com/121
데이터베이스
[웹 쇼핑몰] 게시판 만들기
웹 쇼핑몰의 데이터베이스에 게시판 관리 테이블 만들기
- 데이터베이스 커넥션 설정하기:
- 커넥션 이름은 Market_Conn, 데이터베이스 이름은 WebMarketDB를 사용하여 Data Source Explorer에서 실행
- 회원 관리 테이블 생성하기
// board.sql
create table board (
num int not null auto_increment,
id varchar(10) not null,
name varchar(10) not null,
subject varchar(100) not null,
content text not null,
regist_day varchar(30),
hit int,
ip varchar(20),
primary key (num)
) default charset=utf8;
MVC 기반 웹 게시판의 기본 페이지 준비하기
- 메뉴 페이지 수정하기
// menu.jsp
... 생략 ...
<li class="nav-item"><a class="nav-link" href="<c:url value="./editProduct.jsp?edit=delete"/>">상품 삭제</a></li>
<li class="nav-item"><a class="nav-link" href="<c:url value="/BoardListAction.do?pageNum=1"/>">게시판</a></li>
... 생략 ...
- web.xml 파일에 추가 작성하기
// web.xml
... (생략) ...
<servlet>
<servlet-name>BoardController</servlet-name>
<servlet-class>mvc.controller.BoardController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BoardController</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
- 데이터베이스 연결 클래스 생성하기
//database/DBConnection.java
package mvc.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.DriverManger;
public class DBConnection {
public static Connection getConnection() throws SQLException, ClassNotFoundException {
Connection conn = null;
String url = "jdbc:mysql//192.168.111.40:3306/WebMarketDB";
String user = "root";
String password = "1234";
Class.forName("com,mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
return conn;
}
}
- 게시판 데이터 클래스 생성하기
mvc/model/BoardDto.java
package mvc.model.board;
public class BoardDTO {
private int num;
private String id;
private String name;
private String subject;
private String content;
private String regist_day;
private int hit;
private String ip;
public BoardDTO() {
super();
}
public int getNum() {return num;}
public void setNum(int num) {this.num = num;}
public String getId() {return id;}
public void setId(String id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getSubject() {return subject;}
public void setSubject(String subject) {this.subject = subject;}
public String getContent() {return content;}
public void setContent(String content) {this.content = content;}
public String getRegist_day() {return regist_day;}
public void setRegist_day(String regist_day) {this.regist_day = regist_day;}
public int getHit() {return hit;}
public void setHit(int hit) {this.hit = hit;}
public String getIp() {return ip;}
public void setIp(String ip) {this.ip = ip;}
}
웹 게시판에 등록된 글 목록 보기
- 컨트롤러 작성하기
//mvc/controller/BoardController.java
//package mvc.controller;
import java.io.IOException;
import java.util.ArrayList;
import java,util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mvc.model.BoardDAO;
import mvc.model.BoardDTO;
public class BoardController {
private static final long serialVersionUID = 1L;
static final int LISTCOUNT = 5;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String RequestURI = request.getRequestURI();
String contextPath = request.getContextPath();
String command = RequestURI.substring(contextPath.length());
response.setContentType("text/html; charset=utf-8");
request.setCharacterEncoding("utf-8");
if(command.equals("/BoardListAction.do")) {
requestBoardList(request);
RequestDispatcher rd = request.getRequestDispatcher("./board/list.jsp");
rd.forward(request, response);
}
}
public void requestBoardList(HttpServletRequest request) {
// 등록된 글 목록 가져오기
... 생략 ...
}
}
- 모델 작성하기
//mvc/model/BoardDAO.java
package mvc.model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import mvc.database.DBConnection;
public class BoardDao {
private static BoardDAO instance;
private BoardDAO() {
}
public static BoardDAO getInstance() {
if(instance == null)
instance = new BoardDAO();
return instance;
}
// board 테이블의 레코드 개수
public int getListCount() {
..생략..
}
//board 테이블의 레코드 가져오기
public ArrayList<BoardDTO> getBoardList(int page, int limit, String items, String text) {
...생략...
}
}
- 뷰 작성하기
- /WebContent/ 폴더에 board 폴더를 만든 후 이 폴더에 list.jsp 파일 생성
- list.jsp 파일의 내용은 예제 소스 파일 참고
웹 게시판에 글 등록하기
- 컨트롤러 작성하기
- 모델 작성하기
- 뷰 작성하기
- /WebContent/board/ 폴더에 writeForm.jsp 파일 생성
- writeForm.jsp 파일의 내용은 예제 소스 파일 참고
웹 게시판에 등록된 글 확인하기
- 컨트롤러 작성하기
- 모델 작성하기
- 뷰 작성하기
- /WebContent/board/ 폴더에 view.jsp 파일 생성
- view.jsp 파일의 내용은 예제 소스 파일 참고
웹 게시판에 등록된 글 수정하기
- 컨트롤러 작성하기
웹 게시판에 등록된 글 삭제하기
- 컨트롤러 작성하기
- 모델 작성하기
- 나중에 추가 하겠습니다! -
728x90
반응형
'JSP' 카테고리의 다른 글
JSP 웹 프로그래밍 - 웹 MVC(MVC의 개요, 패턴구조, 패턴 구현 방법) (0) | 2023.03.09 |
---|---|
JSP 웹 프로그래밍 - JSP 표준 태그 라이브러리 (JSTL의 개요, JSTL이 제공하는 태그의 종류와 사용법) (0) | 2023.03.09 |
JSP 웹 프로그래밍 - 웹 쇼핑몰 만들기 08 (회원 가입, 수정, 탈퇴하기) (0) | 2023.03.09 |
JSP 웹 프로그래밍 - 웹 쇼핑몰 만들기 07 (데이터베이스) (4) | 2023.03.08 |
JSP 웹 프로그래밍 - JDBC로 데이터베이스와 JSP 연동 02 (데이터베이스 쿼리 실행, 쿼리문 실행 결과 값 가져오기) (0) | 2023.03.08 |