Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- calc.plus
- is_check
- 파일질라다운로드
- Git
- FileZilla다운로드
- addClass
- calc.minus
- push오류
- 소스트리인증실패
- ctrl+/
- 증가값
- Excel
- selectoptions
- Parent
- 파일질라설치
- SUB함수
- hide
- removeClass
- 1521
- 주석이 먹히지 않을 때
- toFixed()
- FileZilla설치
- 파일질라설치오류
- Math.round()
- index %
- slideUp
- Math.ceil()
- Math.floor()
- excel중복체크
- selectedIndex
Archives
- Today
- Total
잡동사니에도 사랑을
[JSP] MVC활용(5) - 게시판(mvcmember) 본문
728x90
반응형
[21.10.14] MVC활용(5) - 게시판(mvcmember)
////////MemberDAO
// ------------------중략---------------------
public MemberDTO login(String id, String pwd) {
MemberDTO memberDTO = null;
String sql = "select * from member where id=? and pwd=?";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pwd);
rs = pstmt.executeQuery();// 실행
if (rs.next()) {
memberDTO = new MemberDTO();
memberDTO.setName(rs.getString("name"));
memberDTO.setId(rs.getString("id"));
memberDTO.setPwd(rs.getString("pwd"));
memberDTO.setGender(rs.getString("gender"));
memberDTO.setEmail1(rs.getString("email1"));
memberDTO.setEmail2(rs.getString("email2"));
memberDTO.setTel1(rs.getString("tel1"));
memberDTO.setTel2(rs.getString("tel2"));
memberDTO.setTel3(rs.getString("tel3"));
memberDTO.setZipcode(rs.getString("zipcode"));
memberDTO.setAddr1(rs.getString("addr1"));
memberDTO.setAddr2(rs.getString("addr2"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return memberDTO;
}
/////////boardWriteForm.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>
<style type="text/css">
div {
color: red;
font-size: 8pt;
font-weight: bold;
}
</style>
</head>
<body>
<h3> 글쓰기 </h3>
<form name="boardWriteForm" method="post" action="/mvcmember/board/boardWrite.do">
<table cellspacing="0" border="1" cellpadding="5">
<tr>
<td width="50" align="right">제목</td>
<td>
<input type="text" name="subject" id="subject" style="width: 350px;">
<div id="subjectDiv"></div>
</td>
</tr>
<tr>
<td width="50" align="right">내용</td>
<td>
<textarea name="content" id="content" cols="50" rows="15"></textarea>
<div id="contentDiv"></div>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" id="boardWriteBtn" value="글쓰기">
<input type="reset" value="다시작성">
</td>
</tr>
</table>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(function(){
$('#boardWriteBtn').click(function(){
//초기화 과정
$('#subjectDiv').empty();
$('#contentDiv').empty();
if($('input[name=subject]').val() == '') {
$('#subjectDiv').html('제목 입력');
$('#subject').focus();
}
else if($('textarea[name=content]').val() == ''){
$('#contentDiv').html('내용 입력');
$('#content').focus();
}
else
$('form[name=boardWriteForm]').submit();
});
});
</script>
</body>
</html>
////////boardWrite.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>
<h3>글쓰기 성공</h3>
<br>
<input type="button" id="boardListBtn" value="목록" onclick="location.href='boardList.jsp?pg=1'">
</body>
</html>
////////boardView.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="board.bean.BoardDTO" %>
<%@ page import="board.dao.BoardDAO" %>
<%
//데이터
int seq = Integer.parseInt(request.getParameter("seq"));
int pg = Integer.parseInt(request.getParameter("pg"));
//DB
BoardDAO boardDAO = BoardDAO.getInstance();
BoardDTO boardDTO = boardDAO.boardView(seq);
//응답
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="5" frame="hsides" rules="rows">
<tr>
<td colspan="3"><h3><%=boardDTO.getSubject() %></h3></td>
</tr>
<tr>
<td width="150">글번호 : <%=boardDTO.getSeq() %></td>
<td width="150">작성자 : <%=boardDTO.getId() %></td>
<td width="150">조회수 : <%=boardDTO.getHit() %></td>
</tr>
<tr>
<td colspan="3" height="200" valign="top">
<pre><%=boardDTO.getContent() %></pre>
</td>
</tr>
</table>
<input type="button" id="boardListBtn" value="목록" onclick="location.href='boardList.jsp?pg=<%=pg%>'">
</body>
</html>
////////boardList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
th {
font-size: 16px;
}
td {
font-size: 13px;
}
#subjectA:hover { color: darkgreen; text-decoration: underline; }
#currentPaging {
color: red;
text-decoration: underline;
}
#paging {
color: black;
text-decoration: none;
}
</style>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="5" frame="hsides" rules="rows">
<tr>
<th width="100">글번호</th>
<th width="300">제목</th>
<th width="100">작성자</th>
<th width="100">조회수</th>
<th width="100">작성일</th>
</tr>
<c:if test="${list!=null }">
<c:forEach var="boardDTO" items="${list }">
<tr>
<td align="center">${boardDTO.seq }</td>
<td>
<a href="boardView.jsp?seq=${boardDTO.seq }&pg=${pg}" id="subjectA">${boardDTO.subject }
</td>
<td align="center">${boardDTO.id }</td>
<td align="center">${boardDTO.hit }</td>
<td align="center">${boardDTO.logtime }</td>
</tr>
</c:forEach>
</c:if>
</table>
<div style="width: 750px; text-align: center;">
<c:forEach var="i" begin="1" end="${totalP }">
<c:if test="${i == pg }">
[<a id="currentPaging" href="/mvcmember/board/boardList.do?pg=${i }">${i }</a>]
</c:if>
<c:if test="${i != pg }">
[<a id="paging" href="/mvcmember/board/boardList.do?pg=${i }">${i }</a>]
</c:if>
</c:forEach>
</div>
</body>
</html>
////////BoardListService.java
package board.service;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.control.CommandProcess;
import board.bean.BoardDTO;
import board.dao.BoardDAO;
public class BoardListService implements CommandProcess {
@Override
public String requestPro(HttpServletRequest request, HttpServletResponse response) throws Throwable {
//데이터
int pg = Integer.parseInt(request.getParameter("pg"));
//DB
//1페이지당 5개씩
int endNum = pg * 5;
int startNum = endNum - 4;
BoardDAO boardDAO = BoardDAO.getInstance();
List<BoardDTO> list = boardDAO.boardList(startNum, endNum);
//페이징 처리
int totalA = boardDAO.getTotalA();//총글수
int totalP = (totalA + 4) / 5; //총 페이지수
request.setAttribute("pg", pg);
request.setAttribute("list", list);
request.setAttribute("totalP", totalP);
return "/board/boardList.jsp";
}
}
////////BoardWriteFormService.java
package board.service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.control.CommandProcess;
public class BoardWriteFormService implements CommandProcess {
@Override
public String requestPro(HttpServletRequest request, HttpServletResponse response) throws Throwable {
return "/board/boardWriteForm.jsp";
}
}
////////BoardWriteService.java
package board.service;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.control.CommandProcess;
import board.bean.BoardDTO;
import board.dao.BoardDAO;
public class BoardWriteService implements CommandProcess {
@Override
public String requestPro(HttpServletRequest request, HttpServletResponse response) throws Throwable {
//데이터
String subject = request.getParameter("subject");
String content = request.getParameter("content");
HttpSession session = request.getSession();
String name = (String) session.getAttribute("memName");
String id = (String) session.getAttribute("memId");
String email = (String) session.getAttribute("memEmail");
//MemberDTO memberDTO = (MemberDTO) session.getAttribute("membDTO");
//String name = memberDTO.getName();
//String id = memberDTO.getId();
//String email = memberDTO.getEmail1()+"@"+memberDTO.getEmail2()
//-------------------
//BoardDTO boardDTO = new BoardDTO();
//boardDTO.setId(id);
//boardDTO.setName(name);
//boardDTO.setEmail(email);
//boardDTO.setSubject(subject);
//boardDTO.setContent(content);
Map<String, String> map = new HashMap<String, String>();
map.put("id", id);
map.put("name", name);
map.put("email", email);
map.put("subject", subject);
map.put("content", content);
//DB
BoardDAO boardDAO = BoardDAO.getInstance();
//boardDAO.boardWrite(boardDTO);
boardDAO.boardWrite(map);
//응답
return "/board/boardWrite.jsp";
}
}
////////BoardDAO.java
package board.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import board.bean.BoardDTO;
public class BoardDAO {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private DataSource ds;
private static BoardDAO instance;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
public static BoardDAO getInstance() {
if(instance == null) {
synchronized (BoardDAO.class) {
instance = new BoardDAO();
}
}
return instance;
}
public BoardDAO() {
try {
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");//Tomcat의 경우
} catch (NamingException e) {
e.printStackTrace();
}
}
//public void boardWrite(BoardDTO boardDTO) {
public void boardWrite(Map<String, String> map) {
String sql = "insert into board(seq, id, name, email, subject, content, ref) "
+ "values(seq_board.nextval,?,?,?,?,?,seq_board.currval)";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
// pstmt.setString(1, boardDTO.getId());
// pstmt.setString(2, boardDTO.getName());
// pstmt.setString(3, boardDTO.getEmail());
// pstmt.setString(4, boardDTO.getSubject());
// pstmt.setString(5, boardDTO.getContent());
pstmt.setString(1, map.get("id"));
pstmt.setString(2, map.get("name"));
pstmt.setString(3, map.get("email"));
pstmt.setString(4, map.get("subject"));
pstmt.setString(5, map.get("content"));
pstmt.executeUpdate();//실행
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public List<BoardDTO> boardList(int startNum, int endNum){
List<BoardDTO> list = new ArrayList<BoardDTO>();
String sql = "select * from "
+ "(select rownum rn, tt.* from "
+ "(select * from board order by ref desc, step asc) tt "
+ ")where rn>=? and rn<=?";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, startNum);
pstmt.setInt(2, endNum);
rs = pstmt.executeQuery();
while(rs.next()) {
BoardDTO boardDTO = new BoardDTO();
boardDTO.setSeq(rs.getInt("seq"));
boardDTO.setId(rs.getString("id"));
boardDTO.setName(rs.getString("name"));
boardDTO.setEmail(rs.getString("email"));
boardDTO.setSubject(rs.getString("subject"));
boardDTO.setContent(rs.getString("content"));
boardDTO.setRef(rs.getInt("ref"));
boardDTO.setLev(rs.getInt("lev"));
boardDTO.setStep(rs.getInt("step"));
boardDTO.setPseq(rs.getInt("pseq"));
boardDTO.setReply(rs.getInt("reply"));
boardDTO.setHit(rs.getInt("hit"));
boardDTO.setLogtime(sdf.format(rs.getDate("logtime")));
list.add(boardDTO);
}//while
} catch (SQLException e) {
e.printStackTrace();
list = null;
} finally {
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
public BoardDTO boardView(int seq) {
BoardDTO boardDTO = null;
String sql = "select * from board where seq=?";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, seq);
rs = pstmt.executeQuery();
if(rs.next()) {
boardDTO = new BoardDTO();
boardDTO.setSeq(rs.getInt("seq"));
boardDTO.setId(rs.getString("id"));
boardDTO.setName(rs.getString("name"));
boardDTO.setEmail(rs.getString("email"));
boardDTO.setSubject(rs.getString("subject"));
boardDTO.setContent(rs.getString("content"));
boardDTO.setRef(rs.getInt("ref"));
boardDTO.setLev(rs.getInt("lev"));
boardDTO.setStep(rs.getInt("step"));
boardDTO.setPseq(rs.getInt("pseq"));
boardDTO.setReply(rs.getInt("reply"));
boardDTO.setHit(rs.getInt("hit"));
boardDTO.setLogtime(sdf.format(rs.getDate("logtime")));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return boardDTO;
}
public int getTotalA() {
int totalA=0;
String sql = "select count(*) from board";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
rs.next();
totalA = rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return totalA;
}
}
////////BoardDTO.java
package board.bean;
import lombok.Data;
@Data
public class BoardDTO {
private int seq;
private String id;
private String name;
private String email;
private String subject;
private String content;
private int ref;
private int lev;
private int step;
private int pseq;
private int reply;
private int hit;
private String logtime;
}
728x90
반응형
'JAVA_EE > MVC' 카테고리의 다른 글
[JSP] MVC활용(4) - 아이디 중복체크, 우편번호 검색(mvcmember) (0) | 2021.10.13 |
---|---|
[JSP] MVC활용(3) - 아이디 중복체크 / 회원가입 유효성 검사(mvcmember) (0) | 2021.10.11 |
[21.10.08] MVC활용(2) - 로그인(mvcmember) (0) | 2021.10.11 |
[21.10.07] MVC활용(1) - 회원가입(mvcmember) (0) | 2021.10.09 |