본문 바로가기

IT&코딩/국비지원

Servlet - 3 (MVC_board)

728x90
반응형

■ boardDBConn

 

□ BoardDBConn.java

 

package boardDBConn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BoardDBConn {
	
	private Connection con;	
	
	public Connection getConnection() {
		return con;	
	}
	
	public BoardDBConn() throws ClassNotFoundException, SQLException {
		Class.forName("oracle.jdbc.driver.OracleDriver"); // 드라이버 메모리로딩 선언
		con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr");
	}
	
}

 

■ boardVO

 

BoardVO.java

 

package boardVO;

public class BoardVO {
	
	private int bunho;
	private String snsjamok;
	private String snswriter;
	private String snscontent;
	private int basebun;
	private int daetbun;
	private int daetdaetbun;
	
	public BoardVO() {
		
	}
	
	public BoardVO(int bunho, String snsjamok, String snswriter, String snscontent, int basebun, int daetbun,
			int daetdaetbun) {
		super();
		this.bunho = bunho;
		this.snsjamok = snsjamok;
		this.snswriter = snswriter;
		this.snscontent = snscontent;
		this.basebun = basebun;
		this.daetbun = daetbun;
		this.daetdaetbun = daetdaetbun;
	}

	public int getBunho() {
		return bunho;
	}

	public void setBunho(int bunho) {
		this.bunho = bunho;
	}

	public String getSnsjamok() {
		return snsjamok;
	}

	public void setSnsjamok(String snsjamok) {
		this.snsjamok = snsjamok;
	}

	public String getSnswriter() {
		return snswriter;
	}

	public void setSnswriter(String snswriter) {
		this.snswriter = snswriter;
	}

	public String getSnscontent() {
		return snscontent;
	}

	public void setSnscontent(String snscontent) {
		this.snscontent = snscontent;
	}

	public int getBasebun() {
		return basebun;
	}

	public void setBasebun(int basebun) {
		this.basebun = basebun;
	}

	public int getDaetbun() {
		return daetbun;
	}

	public void setDaetbun(int daetbun) {
		this.daetbun = daetbun;
	}

	public int getDaetdaetbun() {
		return daetdaetbun;
	}

	public void setDaetdaetbun(int daetdaetbun) {
		this.daetdaetbun = daetdaetbun;
	}
	
}

 

■ boardDAO

 

BoardDAO.java

 

package boardDAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import boardDBConn.BoardDBConn;
import boardVO.BoardVO;

public class BoardDAO {
	
	private Connection con;
	PreparedStatement pstmt =  null;
	ResultSet rs = null;
	
	public BoardDAO() throws ClassNotFoundException, SQLException{
		con = new BoardDBConn().getConnection();
	}
	
	public ArrayList<BoardVO> getAllInfo() throws SQLException{
		
		ArrayList<BoardVO> alist1 = new ArrayList<BoardVO>();
		
		String sql = "select * from mvcsnsboard order by bunho desc";
		pstmt = con.prepareStatement(sql);
		rs = pstmt.executeQuery();
		
		while(rs.next()) {
			
			int bunho = rs.getInt("bunho");
			String snsjamok = rs.getString("snsjamok");
			String snswriter = rs.getString("snswriter");
			String snscontent = rs.getString("snscontent");
			int basebun = rs.getInt("basebun");
			int daetbun = rs.getInt("daetbun");
			int daetdaetbun = rs.getInt("daetdaetbun");
			
			BoardVO bv = new BoardVO(bunho, snsjamok, snswriter, snscontent, 
					basebun, daetbun, daetdaetbun);
			
			alist1.add(bv);
		} // while-end	
		return alist1;
	} // getAllInfo-end
	
	public boolean boardInsert(String snsjamok, String snswriter, String snscontent) throws SQLException {
		
		String sql = "insert into mvcsnsboard values(mvcsnsboard_sequence1.NEXTVAL, ?, ?, ?, mvcsnsboard_sequence1.CURRVAL, 0, 0)";
		
		pstmt = con.prepareStatement(sql);
		pstmt.setString(1, snsjamok);
		pstmt.setString(2, snswriter);
		pstmt.setString(3, snscontent);
		
		pstmt.executeUpdate();
		
		return true;
	}
	
	public BoardVO getOneInfo(String snsjamok1) throws SQLException {
		
		String sql = "select * from mvcsnsboard where snsjamok = ?";
		BoardVO bv = null;
		
		pstmt = con.prepareStatement(sql);
		pstmt.setString(1, snsjamok1);
		
		rs = pstmt.executeQuery();
		
		while(rs.next()) {
			
			int bunho = rs.getInt("bunho");
			String snsjamok = rs.getString("snsjamok");
			String snswriter = rs.getString("snswriter");
			String snscontent = rs.getString("snscontent");
			int basebun = rs.getInt("basebun");
			int daetbun = rs.getInt("daetbun");
			int daetdaetbun = rs.getInt("daetdaetbun");
			
			bv = new BoardVO(bunho, snsjamok, snswriter, snscontent, basebun, daetbun, daetdaetbun);
		}
		return bv;
	}
	
	public boolean boardUpdate(String snsjamok, String snswriter, String snscontent, int bunho) throws SQLException {
		
		String sql = "update mvcsnsboard set snsjamok = ?, snswriter = ?, snscontent = ? where bunho = ?";
		
		pstmt = con.prepareStatement(sql);
		pstmt.setString(1, snsjamok);
		pstmt.setString(2, snswriter);
		pstmt.setString(3, snscontent);
		pstmt.setInt(4, bunho);
		
		pstmt.executeUpdate();
		
		return true;
	}
	
	public boolean boardDelete(int bunho) throws SQLException {
		
		String sql = "delete from mvcsnsboard where bunho = ?";
		pstmt = con.prepareStatement(sql);
		pstmt.setInt(1, bunho);
		
		pstmt.executeUpdate();
		
		return true;
	}
}

 

■ com.board.main

 

BoardController.java

 

package com.board.main;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.board.my.HaeDelete;
import com.board.my.HaeGetAllInfo;
import com.board.my.HaeGetOneInfo;
import com.board.my.HaeImpl;
import com.board.my.HaeInsert;
import com.board.my.HaeUpdate;
import com.board.my.HaeUpdateForm;

@WebServlet("*.do")
public class BoardController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public BoardController() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String c = request.getRequestURI().substring(request.getContextPath().length());
		String str = null;
		
		HaeImpl scmd1 = null;
		
		switch(c) {
		
		case "/getAllinfo.do":
			scmd1 = new HaeGetAllInfo();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "getAllinfo.jsp";
			break;
		case "/writeForm.do":
			str = "writeForm.jsp";
			break;
		case "/insertProcess.do":
			scmd1 = new HaeInsert();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "index.jsp";
			break;
		case "/getOneinfo.do":
			scmd1 = new HaeGetOneInfo();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "getOneinfo.jsp";
			break;
		case "/updateForm.do":
			scmd1 = new HaeUpdateForm();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "updateForm.jsp";
			break;
		case "/updateProcess.do":
			scmd1 = new HaeUpdate();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "index.jsp";
			break;
		case "/deleteProcess.do":
			scmd1 = new HaeDelete();
			try {
				scmd1.hae(request, response);
			} catch(Exception e) {
				e.printStackTrace();
			}
			str = "index.jsp";
			break;
		} // switch-end
	
		
		RequestDispatcher rd1 = request.getRequestDispatcher(str);
		rd1.forward(request, response);
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

■ com.board.my

 

□ HaeImpl.java (인터페이스)

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface HaeImpl {
	
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception;
	
}

 

□ HaeGetAllInfo.java

 

package com.board.my;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;
import boardVO.BoardVO;

public class HaeGetAllInfo implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		BoardDAO boardDao = new BoardDAO();
		ArrayList<BoardVO> alist1 = boardDao.getAllInfo();
		
		request.setAttribute("alist1", alist1);
	}

}

 

□ HaeGetOneInfo.java

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;
import boardVO.BoardVO;

public class HaeGetOneInfo implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		String snsjamok = request.getParameter("snsjamok");
		
		BoardDAO boardDao = new BoardDAO();
		BoardVO bv = boardDao.getOneInfo(snsjamok);
		
		request.setAttribute("bv", bv);

	}

}

 

□ HaeInsert.java

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;

public class HaeInsert implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		BoardDAO boardDao = new BoardDAO();
		
		String snsjamok = request.getParameter("snsjamok");
		String snswriter = request.getParameter("snswriter");
		String snscontent = request.getParameter("snscontent") ;
		
		
		boardDao.boardInsert(snsjamok, snswriter, snscontent);
		
	}
}

 

□ HaeUpdateForm.java

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;
import boardVO.BoardVO;

public class HaeUpdateForm implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
	
		String snsjamok = request.getParameter("snsjamok");
		
		BoardDAO boardDao = new BoardDAO();
		BoardVO bv = boardDao.getOneInfo(snsjamok);
		
		request.setAttribute("bv", bv);
		
	}

}

 

□ HaeUpdate.java

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;

public class HaeUpdate implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		BoardDAO boardDao = new BoardDAO();
		
		String snsjamok = request.getParameter("snsjamok");
		String snswriter = request.getParameter("snswriter");
		String snscontent = request.getParameter("snscontent") ;
		int bunho = Integer.parseInt(request.getParameter("bunho"));
		
		boardDao.boardUpdate(snsjamok, snswriter, snscontent, bunho);
	}

}

 

□ HaeDelete.java

 

package com.board.my;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import boardDAO.BoardDAO;

public class HaeDelete implements HaeImpl {

	@Override
	public void hae(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		int bunho = Integer.parseInt(request.getParameter("bunho"));

		BoardDAO boardDao = new BoardDAO();
		
		boardDao.boardDelete(bunho);
	
	}

}

 


 

■ jsp 파일

 

□ index.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>인덱스</title>
</head>
<body>
<h1>게시판으로 가기</h1>

<a href="getAllinfo.do">클릭</a>

</body>
</html>

 

□ getAllinfo.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시판</title>
</head>
<body>

<h1>게시판</h1>

<table border="1" width="100%">
	<tr>
		<th width="5%">번호</th>
		<th width="15%">제목</th>
		<th width="15%">작성자</th>
		<th width="50%">내용</th>
	</tr>
	
	<c:forEach var="v" items="${alist1}">
		<tr>
			<td width="5%">${v.bunho}</td>
			<td width="15%"><a href="getOneinfo.do?snsjamok=${v.snsjamok}">${v.snsjamok}</a></td>
			<td width="15%">${v.snswriter}</td>
			<td width="50%">${v.snscontent}</td>
		</tr>
	</c:forEach>		
</table>
<a href="writeForm.do">글쓰기</a>



</body>
</html>

 

□ getOneinfo.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글보기</title>
</head>
<body>

<div>
	<table border="1" width="500">
		<tr align="center">
			<td colspan="2">글 보 기</td>
		</tr>
		<tr>
			<td width="20%">번호</td>
			<td>${bv.bunho}</td>
		</tr>
		<tr>
			<td width="20%">제목</td>
			<td>${bv.snsjamok}</td>
		</tr>
		<tr>
			<td width="20%">작성자</td>
			<td>${bv.snswriter}</td>
		</tr>
		<tr>
			<td width="20%">내용</td>
			<td>${bv.snscontent}</td>
		</tr>
		<tr align="center">
			<td colspan="2">
				<input type="button" value="수정" onclick="window.location='updateForm.do?snsjamok=${bv.snsjamok}'">
				<input type="button" value="삭제" onclick="window.location='deleteProcess.do?bunho=${bv.bunho}'">
				<input type="button" value="게시판으로" onclick="window.location='getAllinfo.do'">
			</td>
		</tr>
	</table>
</div>

</body>
</html>

 

□ writeForm.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>게시판 글쓰기</h1>

<div>
	<form action="insertProcess.do" method="post">
		<table border="1" width="500">
			<tr align="center">
				<td colspan="2">글 쓰 기</td>
			</tr>
			<tr>
				<td width="20%">제목</td>
				<td><input type="text" name="snsjamok" size="50"></td>
			</tr>
			<tr>
				<td width="20%">작성자</td>
				<td><input type="text" name="snswriter" size="50"></td>
			</tr>
			<tr>
				<td width="20%">내용</td>
				<td><textarea name="snscontent" rows="11" cols="50"></textarea></td>
			</tr>
			<tr align="center">
				<td colspan="2">
					<input type="submit" value="등록">
					<input type="reset" value="다시작성">
					<input type="button" value="취소" onclick="window.location='getAllinfo.do'">
				</td>
			</tr>
		</table>
	</form>
</div>


</body>
</html>

 

□ updateForm.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글수정</title>
</head>
<body>

<div>
	<form action="updateProcess.do" method="post">
		<table border="1" width="500">
			<tr align="center">
				<td colspan="2">글 수 정</td>
			</tr>
			<tr>
				<td width="20%">번호</td>
				<td><input type="text" name="bunho" value="${bv.bunho}" readonly></td>
			</tr>
			<tr>
				<td width="20%">제목</td>
				<td><input type="text" name="snsjamok" value="${bv.snsjamok}"></td>
			</tr>
			<tr>
				<td width="20%">작성자</td>
				<td><input type="text" name="snswriter" value="${bv.snswriter}"></td>
			</tr>
			<tr>
				<td width="20%">내용</td>
				<td><input type="text" name="snscontent" value="${bv.snscontent}"></td>
			</tr>
			<tr align="center">
				<td colspan="2">
					<input type="submit" value="수정">
					<input type="button" value="취소" onclick="window.location='getOneinfo.do?snsjamok=${bv.snsjamok}'">
				</td>
			</tr>
		</table>
	</form>
</div>

</body>
</html>

 

728x90
반응형

'IT&코딩 > 국비지원' 카테고리의 다른 글

Servlet - 5 (파일업로드)  (0) 2023.06.13
Servlet - 4 (HttpSession)  (0) 2023.06.02
Servlet - 2 (frontcontroller)  (0) 2023.06.02
Servlet - 1 (설명, no_frontcontroller)  (0) 2023.05.29
MVC1 모델 최종 (사원관리 프로그램)  (0) 2023.05.26