728x90
수업내용
1교시 (09:30-10:20)
- popup_2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!--
자바
클래스 참조변수 = new 클래스();
참조변수.함수();
String str = 참조변수.함수();
자바스크립트
var day = new Date();
var 변수명 = 함수();
var win = window.open(url, name, specs, replace);
win.close();
1. win : 새로 만들어진 객체가 반환, 창 생성 실패하면 null 반환
2. url : 새창에 보여질 주소, 비워두면 빈창(about:blank)이 보임
3. name : 새로 열릴 창의 속성 또는 창의 이름 지정, 기본값은 _blank
_blank : 새창이 열림, 기본값
_parent : 부모 프레임이 열림
_self : 현재 페이지를 대체
_top : 로드된 프레임셋을 대체
name(임의의 이름) : 새창이 열리고 창의 이름을 지정
4. specs : 창의 위치, 창의 크기, 스크롤 여부, 리사이즈 가능 등 속성 지정
5. replace : true 현재 히스토리를 대체, false 히스토리에 새항목을 만듬
-->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var win = window.open( "/KosMember/kos_script/popup_notice.jsp",
"_blank",
"left=100,top100,width=300,height=300",
false);
function popup_close(){
alert("3초 후 팝업을 자동으로 닫기");
alert("win >>> : " + win);
// if (win) {
win.close();
// }
}
// 3초 후에 popup_close 프로퍼티를 실행하시오
// popup_close -> function popup_close() {}
setTimeout(popup_close, 1000);
});
</script>
</head>
<body>
<h3>공지사항 팝업 부모창(윈도우)</h3>
<hr>
</body>
</html>
- popup_cookie.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>POPUP COOKIE CHECK</h3>
<hr>
<%
String chkpop = request.getParameter("chkpop");
System.out.println("chkpop >>> : " + chkpop);
boolean bool = false;
if ("01".equals(chkpop)){
bool = true;
}
%>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<result><%= bool %></result>
</root>
</body>
</html>
- popup_3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>공지사항 팝업</title>
<!-- 뷰포트 : device에 맞게 화면 크기 조정 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--
레이어 팝업 드래그 하기 위해서 jquery ui draggable 라이브러리 사용
https://jqueryui.com/draggable/
-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<!--
<link rel="stylesheet" href="//resources/demos/style.css">
-->
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
<!--
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
-->
<script type="text/javascript">
$(document).ready(function(){
$("#noticePop").draggable();
$('#popBtn').on('click', function(){
alert("popBtn >>> : ");
let chkVal = $("#chkpop").is(":checked");
alert("checkbox checked >>> : " + chkVal);
/*
if (chkVal){
// Ajax 처리 루틴
let urlV = "/kosMember/kos_script/popup_cookie.jsp";
let typeV = 'GET';
let dataV = $("#chkpop").val();
alert("dataV >>> : " + dataV);
// $.ajax({});
// $.("폼네임").attr({}).submit();
if (chkVal){
$.ajax({
url: urlV,
type: typeV,
data: { "chkpop": dataV },
success : whenSuccess,
error : whenError
});
}
function whenSuccess(resData){
alert("리턴 데이터 >>> : \n" + resData);
var bool = $(resData).find('result').text();
alert("bool >>> : " + bool);
}
function whenError(){
alert("에러가 >>> : ");
}
}
*/
$('#noticePop').hide();
$('.imgPop').hide();
});
});
</script>
<style>
div#noticePop {
potition: absolute;
top: 50px;
left: 50px;
color: black;
border: 1px solid red;
width: 300px;
height: 300px;
text-align: center;
background-color: cyan; /* #ffffff */
}
div#noticePop > div {
position: relative;
top: 0px;
border: 1px solid gray;
padding: 10px;
color: black;
background-color: cyan; /* #fff */
}
</style>
</head>
<body>
<%
boolean popState = true;
%>
<h2>NOTICE POPUP</h2>
<hr>
<%
if (popState){
%>
<div id="noticePop">
<h4>공지사항 팝업</h4>
<hr>
<div class="imgPop">
<form name="noticePopForm" id="noticePopForm">
<img class="img_1" src="/KosMember/img/img_kakaofriends/08.png"><br>
<input type="checkbox" class="chkpop" name="chkpop" id="chkpop" value="01" />
하루 동안 열지 않음
<input type="button" id="popBtn" value="닫기" />
</form>
</div>
</div>
<%
}else{
%>
<%= "공지사항 팝업 없음" %>
<%
}
%>
</body>
</html>
2교시 (10:30-11:20)
- 개발 순서
========================
1. 라이브러리 포팅, 공통 클래스 포팅
2. 테이블 만들고
인덱스 확인, 채번 쿼리 만들고
3. 클래스 만들기
3.1 VO 패키지 및 클래스 만들기
3.2 Service 만들기 함수까지 다 만들기
3.3 DAO 만들기 함수까지 다 만들기
3.4 SQL 만들기 함수까지 다 만들기
%%--------------------------------
로그포제이 사용할 수 있게 포팅하기
1. kosServlet/WebContent/WEB-INF/lib/log4j-1.2.17.jar
2. Java Resources/src/log4j.xml 포팅하기
3. kosServlet/WebContent/WEB-INF/web.xml log4j.xml 경로 세팅하기
<!-- log4j setting -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
Logger logger = LogManager.getLogger(사용할 클래스이름.class);
logger.info("로그 메시지");
%%--------------------------------
3.5 Controller 만들기
3.5 insert 구문 만들기 <-- SQLDeveloper
3.6 DAOImpl 에서 함수 만들기
3.7 Service 하고 DAO 연결
3.8 Controller 코드해서 백단 테스트 하기
프론트 만드기
1. 게시판 글 입력
board.html BoardController BoardDAO BoardSqlMap
name="bnum" String bnum = request.getParameter("bnum") BNUM
name="bsubject" String bsubject = request.getParameter("bsubject") BSUBJECT
name="bwriter" String bwriter = request.getParameter("bwriter") BWRITER
name="bpw" String bpw = request.getParameter("bpw") BPW
name="bmemo" String bmemo = request.getParameter("bmemo") BMEMO
private String bnum;
private String bsubject;
private String bwriter;
private String bpw;
private String bmemo;
private String deleteyn;
private String insertdate;
private String updatedate;
프로퍼티 컬럼
--------------------------
bnum BNUM
bsubject BSUBJECT
bwriter BWRITER
bpw BPW
bmemo BMEMO
deleteyn DELETEYN
insertdate INSERTDATE
updatedate UPDATEDATE
========================================================================================
board.html
<form>
isudType="I"
bsubject
bwriter
bpw
bmemo
- BoardController - BoardService - BoardServicdImpl - BoardDAO - BoardDAOImpl - BoardSqlMap
if("I").equals(isudType){
isudType="I"
bsubject
bwriter
bpw
bmemo
BoardVO bvo;
BoardService
BoardServicdImpl().boardInsert(bvo)
}
- BoardService
boardInsert(bvo)
- BoardServicdImpl
boardInsert(bvo){
BoardDAO
BoardDAOImp().boardInsert(bvo)
}
- BoardDAO
boardInsert(bvo)
- BoardDAOImp
boardInsert(bvo){
Connection conn = null;
BoardSqlMap.getBoardInsert()
}
- BoardSqlMap
BoardSqlMpa - BoardDAOImpl - BoardDAO - BoardSerivceImpl - BoardService
- BoardController
성공
- boardInsert.jsp - BoardController
isudType="SALL"
실패
- board.html - 로그 찍기 및 SelectAll 추가, 약간의 수정
- TestDB.java
package a.b.c.com.common;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class TestDB {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Connection conn = DBCP_Connectivity.getConnection();
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM EMP");
ResultSet rsRs = stmt.executeQuery();
while (rsRs.next()) {
System.out.println(rsRs.getString(1) + " ");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3교시 (11:30-12:20)
- 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.KosConnectivity;
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
return null;
}
// 입력하기
@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
return false;
}
@Override
public boolean boardDelete(BoardVO bvo) {
// TODO Auto-generated method stub
return false;
}
}
- ChabunQuery.java
package a.b.c.com.common;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public abstract class ChabunQuery {
static Logger logger = LogManager.getLogger(ChabunQuery.class);
public static final short CHABUN_QUERY_BOARD = 0;
public static String chabun_query[] = {
"SELECT /*+ INDEX_DESC(A SYS_C0012485) */ NVL(MAX(SUBSTR(A.BNUM, -4)), 0) + 1 AS COMMON FROM MVC_BOARD A"
};
public static String getBoardChabunQuery() {
logger.info("ChabunQuery :: getBoardChabunQuery() 함수 진입 >>> : ");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
String commNum = "";
try {
conn = KosConnectivity.getConnection();
System.out.println("conn >>> : " + conn);
String sql = ChabunQuery.chabun_query[0];
pstmt = conn.prepareStatement(sql);
logger.info("채번 쿼리 >>> : \n" + sql);
rsRs = pstmt.executeQuery();
if (rsRs != null) {
while (rsRs.next()) {
commNum = rsRs.getNString("COMMON");
}
} else {
System.out.println("ChabunQuery :: 채번 검색 결과 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("ChabunQieru :: 채번 검색 중 에러가 >>> : " + e);
}
return commNum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String commNum = ChabunQuery.getBoardChabunQuery();
System.out.println("commNum >>> : " + commNum);
}
}
- Chabuntill.java
package a.b.c.com.common;
public abstract class ChabunUtil {
public static final String BIZ_GUBUN_BOARD = "B";
public static String numPad(String t, String c) {
for (int i = c.length(); i< 4; i++) {
c = "0" + c;
}
String ymd = DateFormatUtil.ymdFormats(t);
return ymd.concat(c);
}
public static String getBoardChabun(String type) {
String commNum = ChabunQuery.getBoardChabunQuery();
return BIZ_GUBUN_BOARD.concat(ChabunUtil.numPad(type, commNum));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.println(">>> : " + ChabunUtil.getMemChabun("d"));
System.out.println(">>> : " + ChabunUtil.getBoardChabun(""));
}
}
- 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() { return null;}
// 입력하기
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() { return null;}
public static String getBoardDelete() { return null;}
}
- 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
return null;
}
// 입력하기
@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
return false;
}
@Override
public boolean boardDelete(BoardVO bvo) {
// TODO Auto-generated method stub
return false;
}
}
- 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>");
}
}
}else {
logger.info("isudType 구분자가 없어서 무슨일을 할 지 모르겠어요 >>> : ");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
4교시 (12:30-13:20)
- 프론트 만들기
- Boatd.html 설명
5교시 (14:30-15:20)
- board.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<!-- 디바이스에 최적화된 크기로 출력됨 ------------------------------------->
<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">
$(document).ready(function(){
$("#bpw").on("input", function(){
var m = $("#bpw");
if (m.val().length > m.maxlength){
m.value = m.value.slice(0, m.maxlength);
}
});
$('#insertBtn').on('click', function(){
$('#insertForm').attr({
"action":"/kosServlet/board",
"method":"GET",
"enctype":"application/x-www-form-urlencoded"
}).submit();
});
});
</script>
<body>
<h3>board.html</h3>
<hr>
<form name="insertForm" id="insertForm">
<table>
<tr>
<td>글번호</td>
<td>
<input type="text" class="bnum" name="bnum" id="bnum"
placeholder="글번호" style="width:250px;" readonly/>
</td>
</tr>
<tr>
<td>글제목</td>
<td>
<input type="text" class="bsubject" name="bsubject" id="bsubject"
placeholder="글제목" style="width:250px;"/>
</td>
</tr>
<tr>
<td>글쓴이</td>
<td>
<input type="text" class="bwriter" name="bwriter" id="bwriter"
placeholder="글쓴이" style="width:250px;"/>
</td>
</tr>
<tr>
<td>비밀번호</td>
<td>
<input type="text" class="bpw" name="bpw" id="bpw"
placeholder="비밀번호는 8자리로" maxlength="8"
style="width:250px; background-color:#e6e6e6;"/>
</td>
</tr>
<tr>
<td>글내용</td>
<td>
<textarea class="bmemo" name="bmemo" id="bmemo" cols="32" rows="5"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<!-- hidden flag : 히든 플래그 -->
<input type="hidden" name="isudType" id="isudType" value="I" />
<input type="image" id="insertBtn"
src="/kosServlet/img/img_mando/ase.gif" width="50" height="50" value="글쓰기"/>
<button type="reset">
<img src="/kosServlet/img/img_mando/b-baa.gif" width="50" height="50"/>
</button>
</td>
</tr>
</table>
</form>
</body>
</html>
- boardInsert.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>boardInsert.jsp</h3>
<hr>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("boardInsert.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>
6교시 (15:30-16:20)
- index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>BOARD</title>
</head>
<body>
<h3>index.html</h3>
<hr>
<a href="/kosServlet/kosmo/board/board.html">입력 테스트</a>
</body>
</html>
- SelectAll 만들기 ← 위 코드에 추가해두었음
- BoardSqlMap.java
- BoardDAOImpl.java
7교시 (16:30-17: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>
</head>
<body>
<h3>boardSelectAll.jsp</h3>
<hr>
<form>
<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>
<%
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>
- index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>BOARD</title>
</head>
<body>
<h3>index.html</h3>
<hr>
<a href="/kosServlet/kosmo/board/board.html">입력 테스트</a>
<a href="/kosServlet/board?isudType=SALL">전체조회 테스트</a>
</body>
</html>
8교시 (17:30-18:30)
- boardSelectAll.jsp ← jQuery 추가
<%@ 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("bnumCheck");
console.log("chkObj >>> : " + chkObj);
for (var i=0; i < chkObj.length; i++){
if (chkObj[i] != chk){
chkObj[i].checked = false;
}
}
}
*/
$(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(){
if ($(this).prop('checked')){
$('.bnumChk').prop('checked', false);
$(this).prop('checked', true);
}
});
// 수정하기
$('#U').on('click', function(){
if ($('.bnumChk:checked').length == 0 ){
alert("수정할 글번호 하나를 선택하시오 !!!");
return;
}
});
});
</script>
<style type="text/css">
.tt{
text-align: center;
}
</style>
</head>
<body>
<h3>boardSelectAll.jsp</h3>
<hr>
<form>
<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>
<%
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>
Notes
728x90