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 |