JSP

JSP 웹 프로그래밍 - 웹 쇼핑몰 만들기 09 (게시판 만들기)

록's 2023. 3. 9. 16:54
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
반응형