티스토리 뷰

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>
list.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="java.util.*"%>
<%@ page import="mvc.model.BoardDTO"%>
<%
String sessionId = (String) session.getAttribute("sessionId");
List boardList = (List) request.getAttribute("boardlist"); //다형성 (arrarlist맞음)
int total_record = ((Integer) request.getAttribute("total_record")).intValue();
int pageNum = ((Integer) request.getAttribute("pageNum")).intValue(); //형변환 두번함 굳이안함 한번만함
int total_page = ((Integer) request.getAttribute("total_page")).intValue();
%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css" />
<title>Board</title>
<script type="text/javascript">
function checkForm() {
if (${sessionId==null}) {
alert("로그인 해주세요.");
return false;
}
location.href = "./BoardWriteForm.do?id=<%=sessionId%>"
}
</script>
</head>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">게시판</h1>
</div>
</div>
<div class="container">
<form action="<c:url value="./BoardListAction.do"/>" method="post">
<div>
<div class="text-right">
<span class="badge badge-success">전체 <%=total_record%>건 </span>
</div>
</div>
<div style="padding-top: 50px">
<table class="table table-hover">
<tr>
<th>번호</th>
<th>제목</th>
<th>작성일</th>
<th>조회</th>
<th>글쓴이</th>
</tr>
<% //게시글 한줄씩 출력
for (int j = 0; j < boardList.size(); j++) {
BoardDTO notice = (BoardDTO) boardList.get(j);
%>
<tr>
<td><%=notice.getNum()%></td>
<td><a href="./BoardViewAction.do?num=<%=notice.getNum()%>&pageNum=<%=pageNum%>"><%=notice.getSubject()%></a></td>
<td><%=notice.getRegist_day()%></td>
<td><%=notice.getHit()%></td>
<td><%=notice.getName()%></td>
</tr>
<%
}
%>
</table>
</div>
<div align="center">
<c:set var="pageNum" value="<%=pageNum%>" />
<c:forEach var="i" begin="1" end="<%=total_page%>">
<a href="<c:url value="./BoardListAction.do?pageNum=${i}" /> ">
<c:choose>
<c:when test="${pageNum==i}">
<font color='4C5317'><b> [${i}]</b></font>
</c:when>
<c:otherwise>
<font color='4C5317'> [${i}]</font>
</c:otherwise>
</c:choose>
</a>
</c:forEach>
</div>
<div align="left">
<table>
<tr>
<td width="100%" align="left">
<select name="items" class="txt">
<option value="subject">제목에서</option>
<option value="content">본문에서</option>
<option value="name">글쓴이에서</option>
</select> <input name="text" type="text" /> <input type="submit" id="btnAdd" class="btn btn-primary " value="검색 " />
</td>
<td width="100%" align="right">
<a href="#" onclick="checkForm(); return false;" class="btn btn-primary">«글쓰기</a>
</td>
</tr>
</table>
</div>
</form>
<hr>
</div>
<jsp:include page="/footer.jsp" />
</body>
</html>
view.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="mvc.model.BoardDTO"%>
<%
BoardDTO notice = (BoardDTO) request.getAttribute("board");
int num = ((Integer) request.getAttribute("num")).intValue();
int nowpage = ((Integer) request.getAttribute("page")).intValue();
%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css" />
<title>Board</title>
</head>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">게시판</h1>
</div>
</div>
<div class="container">
<form name="newUpdate"
action="BoardUpdateAction.do?num=<%=notice.getNum()%>&pageNum=<%=nowpage%>"
class="form-horizontal" method="post">
<div class="form-group row">
<label class="col-sm-2 control-label" >성명</label>
<div class="col-sm-3">
<input name="name" class="form-control" value=" <%=notice.getName()%>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 control-label" >제목</label>
<div class="col-sm-5">
<input name="subject" class="form-control" value=" <%=notice.getSubject()%>" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 control-label" >내용</label>
<div class="col-sm-8" style="word-break: break-all;">
<textarea name="content" class="form-control" cols="50" rows="5"> <%=notice.getContent()%></textarea>
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10 ">
<c:set var="userId" value="<%=notice.getId()%>" />
<c:if test="${sessionId==userId}">
<p>
<a href="./BoardDeleteAction.do?num=<%=notice.getNum()%>&pageNum=<%=nowpage%>" class="btn btn-danger"> 삭제</a>
<input type="submit" class="btn btn-success" value="수정 ">
</c:if>
<a href="./BoardListAction.do?pageNum=<%=nowpage%>" class="btn btn-primary"> 목록</a>
</div>
</div>
</form>
<hr>
</div>
<jsp:include page="/footer.jsp" />
</body>
</html>
writeForm.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String name = (String) request.getAttribute("name");
%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css" />
<title>Board</title>
</head>
<script type="text/javascript">
function checkForm() {
if (!document.newWrite.name.value) {
alert("성명을 입력하세요.");
return false;
}
if (!document.newWrite.subject.value) {
alert("제목을 입력하세요.");
return false;
}
if (!document.newWrite.content.value) {
alert("내용을 입력하세요.");
return false;
}
}
</script>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">게시판</h1>
</div>
</div>
<div class="container">
<form name="newWrite" action="./BoardWriteAction.do"
class="form-horizontal" method="post" onsubmit="return checkForm()">
<input name="id" type="hidden" class="form-control"
value="${sessionId}">
<div class="form-group row">
<label class="col-sm-2 control-label" >성명</label>
<div class="col-sm-3">
<input name="name" type="text" class="form-control" value="<%=name %>"
placeholder="name">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 control-label" >제목</label>
<div class="col-sm-5">
<input name="subject" type="text" class="form-control"
placeholder="subject">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 control-label" >내용</label>
<div class="col-sm-8">
<textarea name="content" cols="50" rows="5" class="form-control"
placeholder="content"></textarea>
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10 ">
<input type="submit" class="btn btn-primary " value="등록 ">
<input type="reset" class="btn btn-primary " value="취소 ">
</div>
</div>
</form>
<hr>
</div>
<jsp:include page="/footer.jsp" />
</body>
</html>
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 extends HttpServlet //컨트롤러 생성
{
private static final long serialVersionUID = 1L;
static final int LISTCOUNT = 5;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
} //doGet()을 실행해도 doPost()실행함
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String RequestURI = request.getRequestURI();
System.out.println("URI : "+RequestURI); //url주소에서 서버 빼고 전부 출력
String contextPath = request.getContextPath();
System.out.println("contextPath : "+contextPath); //요청 url (패턴?)만 출력된다.
String command = RequestURI.substring(contextPath.length());
System.out.println("substring : "+command); //url주소를 잘라줌
response.setContentType("text/html; charset=utf-8");
request.setCharacterEncoding("utf-8"); //인코딩하기위해 설정
if (command.equals("/BoardListAction.do")) {//문자열이 같으면 실행 request를 파라미터로 전달해서 메서드 실행한다.
requestBoardList(request); //함수 호출해 게시판 목록을 요청하고 list로 요청 전달
RequestDispatcher rd = request.getRequestDispatcher("./board/list.jsp");
rd.forward(request, response);
} else if (command.equals("/BoardWriteForm.do")) { // 문자열 일치하면 파라미터 가지고 이동 게시글 작성 폼 보여줌
requestLoginName(request);
RequestDispatcher rd = request.getRequestDispatcher("./board/writeForm.jsp");
rd.forward(request, response);
} else if (command.equals("/BoardWriteAction.do")) {// 함수 호출해 게시글 작성을 요청한 후 다시 게시판 목록을 보여달라 요청
requestBoardWrite(request);
RequestDispatcher rd = request.getRequestDispatcher("/BoardListAction.do");
rd.forward(request, response);
} else if (command.equals("/BoardViewAction.do")) {//게시글을 보여주는 요청 처리 함수를 호출해 특정 게시글의 정보를 요청하고 페이지로 요청전달
requestBoardView(request);
RequestDispatcher rd = request.getRequestDispatcher("/BoardView.do");
rd.forward(request, response);
} else if (command.equals("/BoardView.do")) { //함수호출해 게시글 정보 요청 후 view 페이지로 요청 전달
RequestDispatcher rd = request.getRequestDispatcher("./board/view.jsp");
rd.forward(request, response);
} else if (command.equals("/BoardUpdateAction.do")) { //함수를 호출해 게시글 수정을 요청후 게시판 목록을 요청
requestBoardUpdate(request);
RequestDispatcher rd = request.getRequestDispatcher("/BoardListAction.do");
rd.forward(request, response);
}else if (command.equals("/BoardDeleteAction.do")) { //함수 호출해 게시글 삭제 요청하고 게시판 목록을 보여달라 요청함
requestBoardDelete(request);
RequestDispatcher rd = request.getRequestDispatcher("/BoardListAction.do");
rd.forward(request, response);
}
}
public void requestBoardList(HttpServletRequest request){
BoardDAO dao = BoardDAO.getInstance(); //BoardDAO의 객체를 가져와서 참조변수 dao에 담아준다.
List<BoardDTO> boardlist = new ArrayList<BoardDTO>(); //BoardDTO를 담는 어레이리스트를 생성한다.
int pageNum=1;
int limit=LISTCOUNT; //변수 선언 및 초기화
if(request.getParameter("pageNum")!=null) //request에서 getParameter로 pageNum을 가져온 후 null이 아니면 실행
pageNum=Integer.parseInt(request.getParameter("pageNum")); //정수형으로 형변환해준다 request는 문자열로 저장되기때문
String items = request.getParameter("items"); //파라미터값 가져옴
String text = request.getParameter("text"); //파라미터 가져와서 저장함
int total_record=dao.getListCount(items, text); //몇줄인지 줄 수 가져옴
boardlist = dao.getBoardList(pageNum,limit, items, text); //dao에 boardlist 가져옴
int total_page;
if (total_record % limit == 0){ //줄수에 limit값 나눈 나머지 0이면 실행한다.
total_page =total_record/limit; //전체 레코드 수에 리미트 나눈 것을 전체 페이지 수로 저장한다.
Math.floor(total_page); //소수점 아래 버림
}
else{
total_page =total_record/limit; //레코드 수 나누기 리미트 값은 페이지로한다.
Math.floor(total_page); //소수점 아래 버림
total_page = total_page + 1; //전체 페이지에 더하기 1한다.
}
request.setAttribute("pageNum", pageNum);
request.setAttribute("total_page", total_page);
request.setAttribute("total_record",total_record);
request.setAttribute("boardlist", boardlist);
}
public void requestLoginName(HttpServletRequest request){
String id = request.getParameter("id"); //파라미터 id 가져온다
BoardDAO dao = BoardDAO.getInstance(); //dao객체 가져옴 싱글턴
String name = dao.getLoginNameById(id); //name에 dao의 로그인 아이디를 가져와서 넣어줌
request.setAttribute("name", name); //name에 name 값을 넣어서 설정함
}
public void requestBoardWrite(HttpServletRequest request){
BoardDAO dao = BoardDAO.getInstance(); //dao객체 가져옴 싱글턴
BoardDTO board = new BoardDTO(); //BoardDTO 객체 생성
board.setId(request.getParameter("id")); //DTO에서 id 가져와서 board에 id로 저장
board.setName(request.getParameter("name"));
board.setSubject(request.getParameter("subject"));
board.setContent(request.getParameter("content"));
System.out.println(request.getParameter("name"));
System.out.println(request.getParameter("subject"));
System.out.println(request.getParameter("content"));
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd(HH:mm:ss)");
//java.text.simpledateformat 클래스의 인스턴스 formatter를 생성한다. 생성자에 전달된 문자열은 날짜와 시간을 표현하는 포맷을 정의한다.(형식 표현?)
String regist_day = formatter.format(new java.util.Date()); //현재 날짜와 시간을 가져와서 저장한다.
board.setHit(0);
board.setRegist_day(regist_day); //작성일에 현재시간 넣어줌
board.setIp(request.getRemoteAddr()); //ip주소 가져와서 설정한다.
//System.out.println("setIP : "+board.setIps);
dao.insertBoard(board); //dao에 작성한 게시글 넣어줌
}
public void requestBoardView(HttpServletRequest request){ //게시판 뷰어
BoardDAO dao = BoardDAO.getInstance(); //DAO 객체 가져옴 싱글턴
int num = Integer.parseInt(request.getParameter("num")); //정수형변환
int pageNum = Integer.parseInt(request.getParameter("pageNum")); //정수형변환
BoardDTO board = new BoardDTO(); //DTO 생성
board = dao.getBoardByNum(num, pageNum); //num값 가져옴
request.setAttribute("num", num);
request.setAttribute("page", pageNum);
request.setAttribute("board", board);
}
public void requestBoardUpdate(HttpServletRequest request){
int num = Integer.parseInt(request.getParameter("num"));
int pageNum = Integer.parseInt(request.getParameter("pageNum"));
BoardDAO dao = BoardDAO.getInstance();
BoardDTO board = new BoardDTO();
board.setNum(num);
board.setName(request.getParameter("name"));
board.setSubject(request.getParameter("subject"));
board.setContent(request.getParameter("content"));
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd(HH:mm:ss)");
String regist_day = formatter.format(new java.util.Date());
board.setHit(0);
board.setRegist_day(regist_day);
board.setIp(request.getRemoteAddr()); //웹 요청 IP 주소를 가져와서 board 객체의 ip 속성에 설정한다.
dao.updateBoard(board); //작성한 게시글 객체 가지고 dao의 updateBoard메서드 실행
}
public void requestBoardDelete(HttpServletRequest request){
int num = Integer.parseInt(request.getParameter("num"));
int pageNum = Integer.parseInt(request.getParameter("pageNum"));
BoardDAO dao = BoardDAO.getInstance();
dao.deleteBoard(num); //num이라는 파라미터 가지고 dao의 deleteBoard 메서드 실행
}
}
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;
}
//DB(board)에 몇줄 가지고 있는지 확인함
public int getListCount(String items, String text) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int x = 0;
String sql;
if (items == null && text == null)
sql = "select count(*) from board";
else
sql = "SELECT count(*) FROM board where " + items + " like '%" + text + "%'";
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next())
x = rs.getInt(1);
} catch (Exception ex) {
System.out.println("getListCount() ����: " + ex);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
return x;
}
//board
public ArrayList<BoardDTO> getBoardList(int page, int limit, String items, String text) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int total_record = getListCount(items, text );
int start = (page - 1) * limit;
int index = start + 1; //게시판 글(DB)의 일부분만 보여줌 왜냐하면 부하가 많이 생김
//인덱스 번호 생성하는 공식!
String sql;
if (items == null && text == null)
sql = "select * from board ORDER BY num DESC";
else
sql = "SELECT * FROM board where " + items + " like '%" + text + "%' ORDER BY num DESC ";
ArrayList<BoardDTO> list = new ArrayList<BoardDTO>();
try {
conn = DBConnection.getConnection();
/* pstmt = conn.prepareStatement(sql); */
pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
while (rs.absolute(index)) //next대신 absolute사용 next는 차례대로 내려오지만 index번호부터 제약사항필요
{
BoardDTO board = new BoardDTO();
board.setNum(rs.getInt("num"));
board.setId(rs.getString("id"));
board.setName(rs.getString("name"));
board.setSubject(rs.getString("subject"));
board.setContent(rs.getString("content"));
board.setRegist_day(rs.getString("regist_day"));
board.setHit(rs.getInt("hit"));
board.setIp(rs.getString("ip"));
list.add(board);
if (index < (start + limit) && index <= total_record) //제약사항 limit값을 넘을수없고 total갯수를 넘을 수 없음 (인덱스++할지 결정)
index++;
else
break;
}
return list;
} catch (Exception ex) {
System.out.println("getBoardList() ���� : " + ex);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
return null;
}
//member
public String getLoginNameById(String id) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String name=null;
String sql = "select * from member where id = ? ";
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next())
name = rs.getString("name");
return name;
} catch (Exception ex) {
System.out.println("getBoardByNum() ���� : " + ex);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
return null;
}
//board
public void insertBoard(BoardDTO board) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConnection.getConnection();
String sql = "insert into board values(?, ?, ?, ?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, board.getNum());
pstmt.setString(2, board.getId());
pstmt.setString(3, board.getName());
pstmt.setString(4, board.getSubject());
pstmt.setString(5, board.getContent());
pstmt.setString(6, board.getRegist_day());
pstmt.setInt(7, board.getHit());
pstmt.setString(8, board.getIp());
pstmt.executeUpdate();
} catch (Exception ex) {
System.out.println("insertBoard() ���� : " + ex);
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
}
public void updateHit(int num) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DBConnection.getConnection();
String sql = "select hit from board where num = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, num);
rs = pstmt.executeQuery();
int hit = 0;
if (rs.next())
hit = rs.getInt("hit") + 1;
sql = "update board set hit=? where num=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, hit);
pstmt.setInt(2, num);
pstmt.executeUpdate();
} catch (Exception ex) {
System.out.println("updateHit() ���� : " + ex);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
}
public BoardDTO getBoardByNum(int num, int page) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
BoardDTO board = null;
updateHit(num);
String sql = "select * from board where num = ? ";
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, num);
rs = pstmt.executeQuery();
if (rs.next()) {
board = new BoardDTO();
board.setNum(rs.getInt("num"));
board.setId(rs.getString("id"));
board.setName(rs.getString("name"));
board.setSubject(rs.getString("subject"));
board.setContent(rs.getString("content"));
board.setRegist_day(rs.getString("regist_day"));
board.setHit(rs.getInt("hit"));
board.setIp(rs.getString("ip"));
}
return board;
} catch (Exception ex) {
System.out.println("getBoardByNum() ���� : " + ex);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
return null;
}
public void updateBoard(BoardDTO board) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
String sql = "update board set name=?, subject=?, content=? where num=?";
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
conn.setAutoCommit(false);
pstmt.setString(1, board.getName());
pstmt.setString(2, board.getSubject());
pstmt.setString(3, board.getContent());
pstmt.setInt(4, board.getNum());
pstmt.executeUpdate();
conn.commit();
} catch (Exception ex) {
System.out.println("updateBoard() ���� : " + ex);
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
}
public void deleteBoard(int num) {
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "delete from board where num=?";
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, num);
pstmt.executeUpdate();
} catch (Exception ex) {
System.out.println("deleteBoard() ���� : " + ex);
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
}
}
}
BoardDTO.java
package mvc.model;
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;
}
}
DBConnection.java
package mvc.database;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
public class DBConnection {
public static Connection getConnection()throws SQLException, ClassNotFoundException {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/WebMarketDB";
String user = "root";
String password = "1234";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
return conn;
}
}
'코딩 > JSP' 카테고리의 다른 글
미니 프로젝트 (2) (0) | 2023.12.29 |
---|---|
[12주 4일차] 미니 프로젝트 (0) | 2023.12.28 |
URI / contextPath / substring (0) | 2023.12.27 |
[쉽게 배우는 JSP 웹 프로그래밍 연습문제] 18장 (0) | 2023.12.27 |
[12주 2일차] 웹 MVC : 게시판 만들기 (0) | 2023.12.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday