728x90
수업내용
1교시 (09:30-10:20)
- regex_1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
// var(전역변수, 지역변수) : ECMAScript 3
// const(상수 : 변경하면 않되는 리터럴), let(지역변수) : ECMAScript 5,6
$(document).ready(function(){
$('#midBtn').click(function(){
const expId = /^a-zA-Z+$/;
const midV = $('#mid').val();
let midL = midV.length;
alert("midL >>> : " + midL);
if (midL < 6 || midL > 8){
alert("id는 영문자 6 ~ 8 ");
$('#mid').val('');
$('#mid').focus();
return false;
}else if (!expId.test(midV)){
alert("id는 영문자 ");
$('#mid').val('');
$('#mid').focus();
return false;
}
});
$('#mpwBtn').click(function(){
/*
적어도 하나의 대문자 영어 편지 ,(?=.*?[A-Z])
영문 소문자 1 자 이상 (?=.*?[a-z])
적어도 하나의 숫자 (?=.*?[0-9])
하나 이상의 특수 문자 (?=.*?[#?!@$%^&*-])
*/
const expPw = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;
const mpwV = $('#mpw').val();
let mpwL = mpwV.length;
alert("mpwL >>> : " + mpwL);
if (mpwL < 8 || mpwL > 20){
alert("pw는 8 ~ 20 ");
$('#mpw').val('');
$('#mpw').focus();
return false;
}else if (!expPw.test(mpwV)){
alert("pw는 하나의 대문자 영문소문자 1자이상 하나의 숫자 특수문자 하나 이상");
$('#mpw').val('');
$('#mpw').focus();
return false;
}
});
$('#mbirthBtn').click(function(){
const expBirth = /^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
const mbirthV = $('#mbirth').val();
alert("mbirthV >>> : " + mbirthV);
if (!expBirth.test(mbirthV)){
alert("생일 오류 0000-00-00");
$('#mbirth').val('');
$('#mbirth').focus();
return false;
}
});
$('#memailBtn').click(function(){
const expEmail = /^[a-zA-Z0-9_-]+\@[a-zA-Z]+\.[a-zA-Z]+$/;
const memailV = $('#memail').val();
alert("memailV >>> : " + memailV);
if (!expEmail.test(memailV)){
alert("이메일 오류");
$('#memail').val('');
$('#memail').focus();
return false;
}
});
$('#mhpBtn').click(function(){
const expHp = /^\d{3}\-\d{4}\-\d{4}$/;
const mhpV = $('#mhp').val();
alert("mhpV >>> : " + mhpV);
if (!expHp.test(mhpV)){
alert("핸드폰 오류 000-0000-0000");
$('#mhp').val('');
$('#mhp').focus();
return false;
}
});
});
</script>
</head>
<body>
<h3>정규표현식</h3>
<hr>
<form>
<input type="text" name="mid" id="mid" />
<input type="button" id="midBtn" value="id_val"><br>
<input type="text" name="mpw" id="mpw" />
<input type="button" id="mpwBtn" value="pw_val"><br>
<input type="text" name="mbirth" id="mbirth" />
<input type="button" id="mbirthBtn" value="birth_val"><br>
<input type="text" name="memail" id="memail" />
<input type="button" id="memailBtn" value="email_val"><br>
<input type="text" name="mhp" id="mhp" />
<input type="button" id="mhpBtn" value="hp_val"><br>
</form>
</body>
</html>

2교시 (10:30-11:20)
- 지난 시간 복습

3교시 (11:30-12:20)
업데이트 부분 수정하기
- boardSelectAll.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="a.b.c.com.kosmo.board.vo.BoardVO" %>
<%@ page import="org.apache.log4j.LogManager" %>
<%@ page import="org.apache.log4j.Logger" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 디바이스에 최적화된 크기로 출력됨 ------------------------------------->
<meta name="viweport" content="width=device-width, iitail-scale=1">
<!-- jQuery CDN 불러오기 -------------------------------------------->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
/*
//체크박스 체크 확인하기
function checkOnly(chk){
// alert(">>> : " + chk);
var chkObj = document.getElementsByName("bnumChk");
console.log("chkObj >>> : " + chkObj);
for (var i=0; i < chkObj.length; i++){
if (chkObj[i] != chk){
chkObj[i].checked = false;
}
}
}
// 체크박스 체크 카운트
function chkInfo(){
var obj = document.getElementsByName("bnumChk");
var nCnt = 0;
for(var i=0; i < obj.length; i++){
if (obj[i].checked == true){
nCnt++;
}
}
console.log('nCnt >>> : ' + nCnt);
return nCnt;
}
*/
$(document).ready(function(){
// 등록하기
$("#I").on('click', function(){
location.href="/kosServlet/kosmo/board/board.html";
});
// 조회하기
$("#SALL").on('click', function(){
location.href="/kosServlet/board?isudType=SALL";
});
// 체크박스 하나만 체크 되게 하기 bnumChk
$(document).on('click', '#bnumChk', function(){
// var b = $(this).prop('checked');
// console.log("b >>> : " + b);
// alert("b >>> : " + b);
if ($(this).prop('checked')){
$('.bnumChk').prop('checked', false);
$(this).prop('checked', true);
}
});
// 수정하기
$(document).on('click', '#U', function(){
if ($('.bnumChk:checked').length == 0 ){
alert("수정할 글번호 하나를 선택하시오 !!!");
return;
}
$('#isudType').val('U');
$('#boardSelectAll').attr({
"action":"/kosServlet/board",
"method":"GET",
"enctype":"application/x-www-form-urlencoded"
}).submit();
});
});
</script>
<style type="text/css">
.tt{
text-align: center;
}
a{ text-decoration-line: none;}
</style>
</head>
<body>
<h3>boardSelectAll.jsp</h3>
<hr>
<form name="boardSelectAll" id="boardSelectAll">
<table border="1">
<tr>
<td class="tt">
<input type="checkbox" class="chkAll" name="chkAll" id="chkAll"/>
</td>
<td class="tt">순번</td>
<td class="tt">글번호</td>
<td class="tt">글제목</td>
<td class="tt">글쓴이</td>
<td class="tt">글내용</td>
<td class="tt">등록일</td>
</tr>
<% request.setCharacterEncoding("UTF-8"); %>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("boardSelectAll.jsp 진입 >>> : ");
Object obj = request.getAttribute("aList_selectALL");
if (obj == null) return;
ArrayList<BoardVO> aList = (ArrayList<BoardVO>)obj;
int nCnt = aList.size();
logger.info("boardSelectAll.jsp 전체조회 건수 >>> : " + nCnt);
for (int i=0; i < nCnt; i++){
BoardVO _bvo = aList.get(i);
%>
<tr>
<td class="tt">
<input type="checkbox" class="bnumChk" name="bnumChk" id="bnumChk" value="<%= _bvo.getBnum() %>" />
</td>
<td class="tt"><%= i + 1 %></td>
<td class="tt"><%= _bvo.getBnum() %></td>
<td class="tt"><%= _bvo.getBsubject() %></td>
<td class="tt"><%= _bvo.getBwriter() %></td>
<td class="tt"><%= _bvo.getBmemo() %></td>
<td class="tt"><%= _bvo.getInsertdate() %></td>
</tr>
<%
}
%>
<tr>
<td colspan="7" align="right">
<input type="hidden" name="isudType" id="isudType" value="" />
<input type="button" value="등록" id="I">
<input type="button" value="조회" id="SALL">
<input type="button" value="수정" id="U">
<input type="button" value="삭제" id="D">
</td>
</tr>
</table>
</form>
</body>
</html>

- BoardController.java
package a.b.c.com.kosmo.board.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
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 org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import a.b.c.com.common.ChabunUtil;
import a.b.c.com.common.EncryptSHA;
import a.b.c.com.kosmo.board.dao.BoardDAO;
import a.b.c.com.kosmo.board.dao.BoardDAOImpl;
import a.b.c.com.kosmo.board.service.BoardService;
import a.b.c.com.kosmo.board.service.BoardServiceImpl;
import a.b.c.com.kosmo.board.vo.BoardVO;
// http://localhost:8088/kosServlet/board
// /kosServlet/board
@WebServlet("/board")
public class BoardController extends HttpServlet {
private static final long serialVersionUID = 1L;
Logger logger = LogManager.getLogger(BoardController.class);
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
logger.info("BoardController :: doGet() 함수 진입 >>> : ");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String isudType = request.getParameter("isudType");
logger.info("BoardController :: doGet() 함수 진입 isudType >>> : " + isudType);
if (isudType !=null && isudType.length() > 0) {
isudType = isudType.toUpperCase();
if ("I".equals(isudType)) {
String bnum = ChabunUtil.getBoardChabun("");
String bsubject = request.getParameter("bsubject");
String bwriter = request.getParameter("bwriter");
String bpw = request.getParameter("bpw");
String bmemo = request.getParameter("bmemo");
BoardVO bvo = null;
bvo = new BoardVO();
bvo.setBnum(bnum);
bvo.setBsubject(bsubject);
bvo.setBwriter(bwriter);
// 패스워드 암호화 하기
bpw = EncryptSHA.encryptSHA256(bpw);
bvo.setBpw(bpw);
bvo.setBmemo(bmemo);
logger.info("bvo.getBnum() >>> : " + bvo.getBnum());
logger.info("bvo.getBsubject() >>> : " + bvo.getBsubject());
logger.info("bvo.getBwriter() >>> : " + bvo.getBwriter());
logger.info("bvo.getBpw() >>> : " + bvo.getBpw());
logger.info("bvo.getBmemo() >>> : " + bvo.getBmemo());
BoardService bs = new BoardServiceImpl();
boolean bool = bs.boardInsert(bvo);
if (bool) {
logger.info("입력 성공 >>> :" + bool);
// setAttribute(java.lang.String, java.lang.Object)
request.setAttribute("bool", new Boolean(bool));
RequestDispatcher rd = request.getRequestDispatcher("/kosmo/board/boardInsert.jsp");
rd.forward(request, response);
}else {
logger.info("입력 실패 >>> :" + bool);
out.println("<script>");
out.println("location.href='/kosmo/board/board.html'");
out.println("</script>");
}
}
if ("SALL".equals(isudType)) {
logger.info("BoardController :: doGet() 함수 진입 SALL isudType >>> : " + isudType);
// 서비스 호출
BoardService bs = new BoardServiceImpl();
ArrayList<BoardVO> aList = bs.boardSelectAll();
if (aList !=null && aList.size() > 0) {
logger.info("전체조회 성공 >>> : " + aList.size());
request.setAttribute("aList_selectALL", aList);
RequestDispatcher rd = request.getRequestDispatcher("/kosmo/board/boardSelectAll.jsp");
rd.forward(request, response);
}else {
logger.info("전체조회 실패 >>> : ");
out.println("<script>");
out.println("location.href='/kosmo/board/board.html'");
out.println("</script>");
}
}
if ("U".equals(isudType)) {
logger.info("BoardController :: doGet() 함수 진입 U isudType >>> : " + isudType);
String bnum = request.getParameter("bnumChk");
BoardVO bvo = null;
bvo = new BoardVO();
bvo.setBnum(bnum);
// 서비스 호출
BoardService bs = new BoardServiceImpl();
ArrayList<BoardVO> aList = bs.boardSelect(bvo);
if (aList !=null && aList.size() > 0) {
logger.info("조회 성공 >>> : " + aList.size());
request.setAttribute("aList_select", aList);
RequestDispatcher rd = request.getRequestDispatcher("/kosmo/board/boardSelect.jsp");
rd.forward(request, response);
}else {
logger.info("조회 실패 >>> : ");
out.println("<script>");
out.println("location.href='/kosServlet/board?isudType=SALL'");
out.println("</script>");
}
}
// 수정하기
if ("UOK".equals(isudType)) {
logger.info("BoardController :: doGet() 함수 진입UOK isudType >>> : " + isudType);
String bnum = request.getParameter("bnum");
String bsubject = request.getParameter("bsubject");
String bmemo = request.getParameter("bmemo");
BoardVO bvo = null;
bvo = new BoardVO();
bvo.setBnum(bnum);
bvo.setBsubject(bsubject);
bvo.setBmemo(bmemo);
logger.info("bvo.getBnum() >>> : " + bvo.getBnum());
logger.info("bvo.getBsubject() >>> : " + bvo.getBsubject());
// 서비스 호출
BoardService bs = new BoardServiceImpl();
boolean bool = bs.boardUpdate(bvo);
// 결과 포워드 하기 /kosmo/board/boardUpdate.jsp
if (bool) {
logger.info("수정 성공 >>> :" + bool);
request.setAttribute("bool", new Boolean(bool));
RequestDispatcher rd = request.getRequestDispatcher("/kosmo/board/boardUpdate.jsp");
rd.forward(request, response);
} else {
logger.info("수정 실패 >>> :" + bool);
out.println("<script>");
out.println("alert('글 수정 실패')");
out.println("location.href='/kosServlet/board?isudType=SALL'");
out.println("</script>");
}
}
} else {
logger.info("isudType 구분자가 없어서 무슨일을 할 지 모르겠어요 >>> : ");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
조건 조회
- BoardSqlMap.java
package a.b.c.com.kosmo.board.sql;
public abstract class BoardSqlMap {
// 전체 조회
public static String getBoardSelectAll() {
StringBuffer sb = new StringBuffer();
sb.append(" SELECT \n");
sb.append(" A.BNUM BNUM \n");
sb.append(" ,A.BSUBJECT BSUBJECT \n");
sb.append(" ,A.BWRITER BWRITER \n");
sb.append(" ,A.BPW BPW \n");
sb.append(" ,A.BMEMO BEMMO \n");
sb.append(" ,A.DELETEYN DELETEYN \n");
sb.append(" ,TO_CHAR(A.INSERTDATE, 'YYYY-MM-DD') INSERTDATE \n");
sb.append(" ,TO_CHAR(A.UPDATEDATE, 'YYYY-MM-DD') UPDATEDATE \n");
sb.append(" FROM MVC_BOARD A \n");
sb.append(" WHERE A.DELETEYN = 'Y' \n");
sb.append(" ORDER BY 1 DESC \n");
return sb.toString();
}
// 조건 조회
public static String getBoardSelect() {
StringBuffer sb = new StringBuffer();
sb.append(" SELECT \n");
sb.append(" A.BNUM BNUM \n");
sb.append(" ,A.BSUBJECT BSUBJECT \n");
sb.append(" ,A.BWRITER BWRITER \n");
sb.append(" ,A.BPW BPW \n");
sb.append(" ,A.BMEMO BEMMO \n");
sb.append(" ,A.DELETEYN DELETEYN \n");
sb.append(" ,TO_CHAR(A.INSERTDATE, 'YYYY-MM-DD') INSERTDATE \n");
sb.append(" ,TO_CHAR(A.UPDATEDATE, 'YYYY-MM-DD') UPDATEDATE \n");
sb.append(" FROM MVC_BOARD A \n");
sb.append(" WHERE A.DELETEYN = 'Y' \n");
sb.append(" ORDER A.BNUM = ? \n"); // placeholder 1
return sb.toString();
}
// 입력하기
public static String getBoardInsert() {
StringBuffer sb = new StringBuffer();
/*
INSERT INTO MVC_BOARD (BNUM, BSUBJECT, BWRITER, BPW, BMEMO, DELETEYN, INSERTDATE, UPDATEDATE)
VALUES (?, ?, ?, ?, ?, 'Y', SYSDATE, SYSDATE
*/
sb.append(" INSERT INTO \n");
sb.append(" MVC_BOARD \n");
sb.append(" ( \n");
sb.append(" BNUM \n"); // COLUMN 1
sb.append(" ,BSUBJECT \n"); // COLUMN 2
sb.append(" ,BWRITER \n"); // COLUMN 3
sb.append(" ,BPW \n"); // COLUMN 4
sb.append(" ,BMEMO \n"); // COLUMN 5
sb.append(" ,DELETEYN \n"); // COLUMN 6
sb.append(" ,INSERTDATE \n"); // COLUMN 7
sb.append(" ,UPDATEDATE \n"); // COLUMN 8
sb.append(" ) \n");
sb.append(" VALUES \n");
sb.append(" ( \n");
sb.append(" ? \n"); // placeholder 2
sb.append(" ,? \n"); // placeholder 2
sb.append(" ,? \n"); // placeholder 3
sb.append(" ,? \n"); // placeholder 4
sb.append(" ,? \n"); // placeholder 5
sb.append(" ,'Y' \n"); // 'Y' 6
sb.append(" ,SYSDATE \n"); // SYSDATE 7
sb.append(" ,SYSDATE \n"); // SYSDATE 8
sb.append(" ) \n");
return sb.toString();
}
public static String getBoardUpdate() {
StringBuffer sb = new StringBuffer();
sb.append("UPDATE MVC_BOARD \n");
sb.append("SET BSUBJECT = ? \n"); // placeholder 1
sb.append(" ,BMEMO = ? \n"); // placeholder 2
sb.append(" ,UPDATEDATE = SYSDATE \n");
sb.append("WHERE DELETEYN = 'Y' \n");
sb.append("AND BNUM = ? \n"); // placeholder 3
return sb.toString();
}
public static String getBoardDelete() { return null;}
}
- BoardDAOImpl.java
package a.b.c.com.kosmo.board.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import a.b.c.com.common.DBCP_Connectivity;
import a.b.c.com.common.KosConnectivity;
import a.b.c.com.kosmo.board.service.BoardServiceImpl;
import a.b.c.com.kosmo.board.sql.BoardSqlMap;
import a.b.c.com.kosmo.board.vo.BoardVO;
public class BoardDAOImpl implements BoardDAO {
Logger logger = LogManager.getLogger(BoardDAOImpl.class);
// 전체 조회
@Override
public ArrayList<BoardVO> boardSelectAll() {
// TODO Auto-generated method stub
logger.info("BoardDAOImpl:: boardSelectAll() 함수 진입 >>> : ");
// 사용할 객체를 지역변수로 선언하고 디폴트 값으로 초기화한다.
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<BoardVO> aList = null;
// JDBC를 이용해서 데이터 가져오기
try {
conn = KosConnectivity.getConnection();
String sqls = BoardSqlMap.getBoardSelectAll();
pstmt = conn.prepareStatement(sqls);
logger.info("전체 조회 >>> : \n" + sqls);
rsRs = pstmt.executeQuery();
if (rsRs != null) {
aList = new ArrayList<BoardVO>();
while (rsRs.next()) {
BoardVO _bvo = new BoardVO();
_bvo.setBnum(rsRs.getString(1));
_bvo.setBsubject(rsRs.getString(2));
_bvo.setBwriter(rsRs.getString(3));
_bvo.setBpw(rsRs.getString(4));
_bvo.setBmemo(rsRs.getString(5));
_bvo.setDeleteyn(rsRs.getString(6));
_bvo.setInsertdate(rsRs.getString(7));
_bvo.setUpdatedate(rsRs.getString(8));
aList.add(_bvo);
}
}
KosConnectivity.conClose(conn, pstmt, rsRs);
} catch (Exception e) {
logger.info("전체 조회시 디비 에러가 >>> : " + e);
} finally {
KosConnectivity.conClose(conn, pstmt, rsRs);
}
return aList;
}
// 조건 조회
@Override
public ArrayList<BoardVO> boardSelect(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardDAOImpl:: boardSelect() 함수 진입 >>> : ");
logger.info("BoardDAOImpl :: boardSelect() bvo.getBnum() >>> : " + bvo.getBnum());
// 사용할 객체를 지역변수로 선언하고 디폻트 값으로 초기화 한다.
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<BoardVO> aList = null;
// JDBC를 이용해서 데이터 가져오기
try {
conn = KosConnectivity.getConnection();
String sqls = BoardSqlMap.getBoardSelect();
pstmt = conn.prepareStatement(sqls);
pstmt.clearParameters();
pstmt.setNString(1, bvo.getBnum());
logger.info("조건 조회 >>> : \n" + sqls);
rsRs = pstmt.executeQuery();
if (rsRs != null) {
aList = new ArrayList<BoardVO>();
while (rsRs.next()) {
BoardVO _bvo = new BoardVO();
_bvo.setBnum(rsRs.getString(1));
_bvo.setBsubject(rsRs.getString(2));
_bvo.setBwriter(rsRs.getString(3));
_bvo.setBpw(rsRs.getString(4));
_bvo.setBmemo(rsRs.getString(5));
_bvo.setDeleteyn(rsRs.getString(6));
_bvo.setInsertdate(rsRs.getString(7));
_bvo.setUpdatedate(rsRs.getString(8));
aList.add(_bvo);
}
}
KosConnectivity.conClose(conn, pstmt, rsRs);
} catch (Exception e) {
logger.info("조건 조회 시 디비 에러가 >>> : " + e);
} finally {
KosConnectivity.conClose(conn, pstmt, rsRs);
}
return aList;
}
// 입력하기
@Override
public boolean boardInsert(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardDAOImpl:: boardInsert() 함수 진입 >>> : ");
logger.info("bvo >>> : " + bvo);
// 사용할 객체를 지역변수로 선언하고 초기화 하기
Connection conn = null;
PreparedStatement pstmt = null;
int nCnt = 0;
boolean bool = false;
// JDBC 객체 이용해서 테이블에 인서트 하기
try {
conn = KosConnectivity.getConnection();
String sqls = BoardSqlMap.getBoardInsert();
pstmt = conn.prepareStatement(sqls);
logger.info("인서트 >>> : \n" + sqls);
// 플레이스 홀더에 입력할 데이터 바인딩하기
pstmt.clearParameters();
pstmt.setString(1, bvo.getBnum());
pstmt.setString(2, bvo.getBsubject());
pstmt.setString(3, bvo.getBwriter());
pstmt.setString(4, bvo.getBpw());
pstmt.setString(5, bvo.getBmemo());
nCnt = pstmt.executeUpdate();
if (!conn.getAutoCommit()) conn.commit();
logger.info("인서트 결과는 >>> : " + nCnt);
if (nCnt > 0) bool = true;
KosConnectivity.conClose(conn, pstmt);
}catch(Exception e) {
logger.info("인서트 디비 에러가 >>> : " + e);
}finally {
KosConnectivity.conClose(conn, pstmt);
}
return bool;
}
// 수정하기
@Override
public boolean boardUpdate(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardDAOImpl :: boardUpdate() 함수 진입 >>> : ");
logger.info("bvo >>> : " + bvo);
// 사용할 객체를 지역변수로 선언하고 초기화하기
Connection conn = null;
PreparedStatement pstmt = null;
int nCnt = 0;
boolean bool = false;
// JDBC 객체 이용해서 테이블에 인서트 하기
try {
conn = KosConnectivity.getConnection();
String sqls = BoardSqlMap.getBoardUpdate();
pstmt = conn.prepareStatement(sqls);
logger.info("업데이트 >>> : \n" + sqls);
// 플레이스 홀더에 입력할 데이터 바인딩 하기
pstmt.clearParameters();
pstmt.setString(1, bvo.getBsubject());
pstmt.setString(2, bvo.getBmemo());
pstmt.setString(3, bvo.getBnum());
nCnt = pstmt.executeUpdate();
if (!conn.getAutoCommit()) conn.commit();
logger.info("업데이트 결과는 >>> : " + nCnt);
if (nCnt > 0) bool = true;
KosConnectivity.conClose(conn, pstmt);
} catch (Exception e) {
logger.info("업데이트 디비 에러가 >>>: " + e);
} finally {
KosConnectivity.conClose(conn, pstmt);
}
return bool;
}
@Override
public boolean boardDelete(BoardVO bvo) {
// TODO Auto-generated method stub
return false;
}
}
- BoardSelect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="a.b.c.com.kosmo.board.vo.BoardVO" %>
<%@ page import="org.apache.log4j.LogManager" %>
<%@ page import="org.apache.log4j.Logger" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 디바이스에 최적화된 크기로 출력됨 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- jQuery CDN 불러오기 -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// 글쓰기 on (매개변수 3개)
$(document).on('click', '#insertBtn', function(){
location.href="/kosServlet/kosmo/board/board.html";
});
// 글목록 on(매개변수 3개)
$(document).on('click', "#selectAllBtn", function() {
location.href="/kosServlet/board?isudType=SALL";
});
// 수정하기
$(document).on('click', '#updateBtn', function(){
alert("updateBtn >>> : ");
$("#boardSelectForm").attr({
"action":"/kosServlet/board",
"method":"GET",
"enctype":"application/x-www-form-urlencoded"
}).submit();
});
});
</script>
</head>
<body>
<h3>boardSelect.jsp</h3>
<hr>
<% request.setCharacterEncoding("UTF-8"); %>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("boardSelect.jsp 진입 >>> : ");
Object obj = request.getAttribute("aList_select");
if (obj == null) return;
ArrayList<BoardVO> aList = (ArrayList<BoardVO>)obj;
if (aList != null && aList.size() > 0) {
BoardVO _bvo = aList.get(0);
%>
<form name="boardSelectForm" id="boardSelectForm">
<table>
<tr>
<td>글번호</td>
<td>
<input type="text" class="bnum" name="bnum" id="bnum"
placeholder="글번호" style="width:100px;" value="<%= _bvo.getBnum() %>" readonly/>
</td>
</tr>
<tr>
<td>글제목</td>
<td>
<input type="text" class="bsubject" name="bsubject" id="bsubject"
placeholder="글제목" style="width:250px;" value="<%= _bvo.getBsubject() %>" />
</td>
</tr>
<tr>
<td>글쓴이</td>
<td>
<input type="text" class="bwriter" name="bwriter" id="bwriter"
placeholder="글쓴이" style="width:250px;" value="<%= _bvo.getBwriter() %>" />
</td>
</tr>
<tr>
<td>비밀번호</td>
<td>
<input type="text" class="bpw" name="bpw" id="bpw"
placeholder="비밀번호 8자리" maxlength="8"
style="width:100px; background-color:#e6e6e6;"/>
<input type="button" name="bpwChk" id="bpwChk" value="비밀번호확인">
</td>
</tr>
<tr>
<td>글내용</td>
<td>
<textarea class="bmemo" name="bmemo" id="bmemo" cols="32" rows="5"><%= _bvo.getBmemo() %></textarea>
</td>
</tr>
<tr>
<td>삭제여부</td>
<td>
<input type="text" style="width:100px;" value="<%= _bvo.getDeleteyn() %>" disabled/>
</td>
</tr>
<tr>
<td>등록일</td>
<td>
<input type="text" style="width:100px;" value="<%= _bvo.getInsertdate() %>" disabled/>
</td>
</tr>
<tr>
<td>수정일</td>
<td>
<input type="text" style="width:100px;" value="<%= _bvo.getUpdatedate() %>" disabled/>
</td>
</tr>
<tr>
<td colspan="2">
<!-- hidden flag : 히든 플래그 -->
<input type="hidden" name="isudType" id="isudType" value="UOK"/>
<input type="button" id="insertBtn" value="글쓰기" >
<input type="button" id="selectAllBtn" value="목록" >
<input type="button" id="updateBtn" value="수정"/>
</td>
</tr>
</table>
</form>
<%
}
%>
</body>
</html>
4교시 (12:30-13:20)
조건 조회
- BoardServiceImpl.java
package a.b.c.com.kosmo.board.service;
import java.util.ArrayList;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import a.b.c.com.kosmo.board.dao.BoardDAO;
import a.b.c.com.kosmo.board.dao.BoardDAOImpl;
import a.b.c.com.kosmo.board.vo.BoardVO;
public class BoardServiceImpl implements BoardService {
Logger logger = LogManager.getLogger(BoardServiceImpl.class);
// 전체 조회
@Override
public ArrayList<BoardVO> boardSelectAll() {
// TODO Auto-generated method stub
logger.info("BoardServiceImple :: boardSelectAll() 함수 진입 >>> : ");
BoardDAO bdao = new BoardDAOImpl();
ArrayList<BoardVO> aList = bdao.boardSelectAll();
return aList;
// return bdao.boardSelectAll();
}
// 조건 조회
@Override
public ArrayList<BoardVO> boardSelect(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardServiceImple :: boardSelect() 함수 진입 >>> : ");
BoardDAO bdao = new BoardDAOImpl();
ArrayList<BoardVO> aList = bdao.boardSelectAll();
return aList;
// return bdao.boardSelect(bvo);
}
// 입력하기
@Override
public boolean boardInsert(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardServiceImple :: boardInsert() 함수 진입 >>> : ");
logger.info("bvo >>> : " + bvo);
BoardDAO bdao = new BoardDAOImpl();
boolean bool = bdao.boardInsert(bvo);
return bool;
//return bdao.boardInsert(bvo);
}
// 수정하기
@Override
public boolean boardUpdate(BoardVO bvo) {
// TODO Auto-generated method stub
logger.info("BoardServiceImple :: boardUpdate() 함수 진입 >>> : ");
logger.info("bvo >>> : " + bvo);
BoardDAO bdao = new BoardDAOImpl();
boolean bool = bdao.boardUpdate(bvo);
logger.info("bool >>> : " + bool);
return bool;
// return bdao.boardUpdate(bvo);
}
@Override
public boolean boardDelete(BoardVO bvo) {
// TODO Auto-generated method stub
return false;
}
}
5교시 (14:30-15:20)
- 조건 조회 ← 위에 추가하였음
- BoardSelect.jsp
6교시 (15:30-16:20)
- 조건 조회
- BoardSelect.jsp ← jQuery 만들기
- BoardSqlMap.java ← 글제목과 글 내용 수정 쿼리 만들기
- BoardDAOImpl.java ← 수정 부분 만들기
7교시 (16:30-17:20)
업데이트 수정
- BoardController.java ← 업데이트를 처리하기 위함
- boardUpdate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="org.apache.log4j.LogManager" %>
<%@ page import="org.apache.log4j.Logger" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>boardUpdate.jsp</h3>
<hr>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("boardUpdate.jsp 진입 >>> : ");
Object obj = request.getAttribute("bool");
if (obj == null) return;
boolean bool = ((Boolean)obj).booleanValue();
if (bool){
%>
<script>
location.href="/kosServlet/board?isudType=SALL";
</script>
<%
}
%>
</body>
</html>
8교시 (17:30-18:30)
- b_like.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>
<%
String count_1 = "409";
String count_2 = "43";
String count_3 = "23";
String count_4 = "15";
String count_5 = "31";
String count_6 = "44";
%>
<form>
<table>
<tr>
<td>
<img src="/kosServlet/img/img_like/1.png">
<br><span>좋아요</span><br><span><%= count_1 %></span>
</td>
<td>
<img src="/kosServlet/img/img_like/2.png">
<br><span>응원해요</span><br><span><%= count_2 %></span>
</td>
<td>
<img src="/kosServlet/img/img_like/3.png">
<br><span>축하해요</span><br><span><%= count_3 %></span>
</td>
<td>
<img src="/kosServlet/img/img_like/4.png">
<br><span>기대해요</span><br><span><%= count_4 %></span>
</td>
<td>
<img src="/kosServlet/img/img_like/5.png">
<br><span>놀랐어요</span><br><span><%= count_5 %></span>
</td>
<td>
<img src="/kosServlet/img/img_like/6.png">
<br><span>슬퍼요</span><br><span><%= count_6 %></span>
</td>
</tr>
</table>
</form>
</body>
</html>
Notes
728x90