### : 목차 구분 기호
--- : 목차 내에 항목 구분 기호
@@@ : 태그 용도
--- : 목차 내에 항목 구분 기호
@@@ : 태그 용도
,,, : 같은 항목 내에 구분 기호
목차
1. 이론 및 정보
2. 설정 및 그 밖에
3. 소스코드 또는 실습
4. 과제
###################################
1. 이론 및 정보
-----------------------------------
10. Twitter BootStrap Framework(틀) (센차터치 라는 것도 있음)
- jquery가 안에서 많이 사용됨
- jquery가 안에서 많이 사용됨
- 레이아웃을 잡아줄 때 매우 좋음
(1) 버전
1) 1.X : PC 환경
2) 2.X : 모바일 겸용
3) 3.X : 모바일 우선 지원
(2) 참고 사이트
1) http://www.getbootstrap.com/2.3.2
-----------------------------------
-----------------------------------
-----------------------------------
###################################
2. 설정 및 그 밖에
-----------------------------------
###################################
2. 설정 및 그 밖에
-----------------------------------
* 부트스트랩을 연습하기 위한 새로운 프로젝트 생성 - BootStrap2
/BootStrap2/WebContent/bootstrap
다운 받은 부트스트랩 압축 풀어서 복사함
bootstrap-responsive.css 는 반응형 css
bootstrap-responsive.min.css 는 최소 기능만
-----------------------------------
* /BoardApp/WebContent/v2/*.jsp
v2 jsp파일에 bean.v0.~ 를 bean.v2.~로 변경
-----------------------------------
###################################
3. 소스코드 또는 실습
3. 소스코드 또는 실습
-----------------------------------
3-1
Workspace : ~\JSP\EclipseWork
/BoardApp/src/bean/v2/BoardDao.java
package bean.v2;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class BoardDao {
private Connection con;
private PreparedStatement pstmt;
private ResultSet rs;
private DataSource dataSource;
public BoardDao() {
try {
dataSource = (DataSource)new InitialContext()
.lookup("java:comp/env/jdbc/oracleDB");
} catch (Exception e) {
System.out.println("DB연결 객체준비 : " + e);
}
}
public void freeConnection(){
if(con!=null)try{con.close();}catch (Exception e) {}
if(pstmt!=null)try{pstmt.close();}catch (Exception e) {}
if(rs!=null)try{rs.close();}catch (Exception e) {}
}
// List.jsp
public Vector getBoardList(String keyField, String keyWord){
Vector list = new Vector();
String sql = "";
if(keyWord==""|| keyWord.isEmpty()){
sql = "select * from tblboard order by pos";
}else{
sql = "select * from tblboard where "+keyField
+" like '%"+keyWord+"%' order by pos";
}
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
BoardDto dto = new BoardDto();
dto.setNum(rs.getInt("num"));
dto.setName(rs.getString("name"));
dto.setEmail(rs.getString("email"));
dto.setHomepage(rs.getString("homepage"));
dto.setSubject(rs.getString("subject"));
dto.setContent(rs.getString("content"));
dto.setPass(rs.getString("pass"));
dto.setCount(rs.getInt("count"));
dto.setIp(rs.getString("ip"));
dto.setRegdate(rs.getString("regdate"));
dto.setPos(rs.getInt("pos"));
dto.setDepth(rs.getInt("depth"));
list.add(dto);
}
}catch(Exception e) {
System.out.println("Vector getBoardList(String keyField, String keyWord) : " + e);
}finally{freeConnection();}
return list;
}
// Post.jsp
public void updatePos(Connection con){
String sql = "update tblboard set pos=pos+1";
try{
pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
}catch(Exception e){
System.out.println("void updatePos(Connection con) : " + e);
}
}
public void insertBoard(BoardDto dto){
int result = 0;
String sql = "insert into "
+ "tblboard (num,name,email,homepage,subject,content,"
+ "pass,count,ip,regdate,pos,depth)"
+ " values(seq_num.nextVal,?,?,?,?,?,?,?,?,sysdate,0,0)";
try {
con = dataSource.getConnection();
updatePos(con);
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getHomepage());
pstmt.setString(4, dto.getSubject());
pstmt.setString(5, dto.getContent());
pstmt.setString(6, dto.getPass());
pstmt.setInt(7, dto.getCount());
pstmt.setString(8, dto.getIp());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void insertBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// Read.jsp, Update.jsp
public BoardDto getBoard(int num, String page){
BoardDto dto = new BoardDto();
String sql = "";
try {
con = dataSource.getConnection();
if(page.equals("read")){
sql = "update tblboard set count=count+1 where num=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
pstmt.executeUpdate();
}
sql = "select * from tblboard where num=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
rs = pstmt.executeQuery();
if(rs.next()){
dto.setNum(rs.getInt("num"));
dto.setName(rs.getString("name"));
dto.setEmail(rs.getString("email"));
dto.setHomepage(rs.getString("homepage"));
dto.setSubject(rs.getString("subject"));
dto.setContent(rs.getString("content"));
dto.setPass(rs.getString("pass"));
dto.setCount(rs.getInt("count"));
dto.setIp(rs.getString("ip"));
dto.setRegdate(rs.getString("regdate"));
dto.setPos(rs.getInt("pos"));
dto.setDepth(rs.getInt("depth"));
}
}catch(Exception e) {
System.out.println("void BoardDto getBoard(int num) : " + e);
}finally{freeConnection();}
return dto;
}
// Updateproc.jsp
public void updateBoard(BoardDto dto){
int result = 0;
String sql = "update tblboard set name=?,email=?,"
+ "subject=?,content=? where num=?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getSubject());
pstmt.setString(4, dto.getContent());
pstmt.setInt(5, dto.getNum());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void updateBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// Delete.jsp
public void deleteBoard(int num){
int result = 0;
String sql = "delete from tblboard where num = ?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void deleteBoard(int num) : " + e);
}finally{freeConnection();}
}
// ReplyProc.jsp
public void replyUpdatePos(BoardDto dto){
int result = 0;
String sql = "update tblboard set pos=pos+1 where pos > ?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, dto.getPos());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void reqlyUpdatePos(int pos) : " + e);
}finally{freeConnection();}
}
public void replyBoard(BoardDto dto){
int result = 0;
String sql = "insert into "
+ "tblboard (num,name,email,homepage,subject,content,"
+ "pass,count,ip,regdate,pos,depth)"
+ " values(seq_num.nextVal,?,?,?,?,?,?,?,?,sysdate,?,?)";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getHomepage());
pstmt.setString(4, dto.getSubject());
pstmt.setString(5, dto.getContent());
pstmt.setString(6, dto.getPass());
pstmt.setInt(7, dto.getCount());
pstmt.setString(8, dto.getIp());
pstmt.setInt(9, dto.getPos()+1);
pstmt.setInt(10, dto.getDepth()+1);
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void replyBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// 들여쓰기
public String useDepth(int depth){
String result = "";
for(int i=0;i<depth*3;i++){
result+=" ";
}
return result;
}
/*
try {
}catch(Exception e) {
System.out.println("empty : " + e);
}finally{freeConnection();}
*/
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class BoardDao {
private Connection con;
private PreparedStatement pstmt;
private ResultSet rs;
private DataSource dataSource;
public BoardDao() {
try {
dataSource = (DataSource)new InitialContext()
.lookup("java:comp/env/jdbc/oracleDB");
} catch (Exception e) {
System.out.println("DB연결 객체준비 : " + e);
}
}
public void freeConnection(){
if(con!=null)try{con.close();}catch (Exception e) {}
if(pstmt!=null)try{pstmt.close();}catch (Exception e) {}
if(rs!=null)try{rs.close();}catch (Exception e) {}
}
// List.jsp
public Vector getBoardList(String keyField, String keyWord){
Vector list = new Vector();
String sql = "";
if(keyWord==""|| keyWord.isEmpty()){
sql = "select * from tblboard order by pos";
}else{
sql = "select * from tblboard where "+keyField
+" like '%"+keyWord+"%' order by pos";
}
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
BoardDto dto = new BoardDto();
dto.setNum(rs.getInt("num"));
dto.setName(rs.getString("name"));
dto.setEmail(rs.getString("email"));
dto.setHomepage(rs.getString("homepage"));
dto.setSubject(rs.getString("subject"));
dto.setContent(rs.getString("content"));
dto.setPass(rs.getString("pass"));
dto.setCount(rs.getInt("count"));
dto.setIp(rs.getString("ip"));
dto.setRegdate(rs.getString("regdate"));
dto.setPos(rs.getInt("pos"));
dto.setDepth(rs.getInt("depth"));
list.add(dto);
}
}catch(Exception e) {
System.out.println("Vector getBoardList(String keyField, String keyWord) : " + e);
}finally{freeConnection();}
return list;
}
// Post.jsp
public void updatePos(Connection con){
String sql = "update tblboard set pos=pos+1";
try{
pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
}catch(Exception e){
System.out.println("void updatePos(Connection con) : " + e);
}
}
public void insertBoard(BoardDto dto){
int result = 0;
String sql = "insert into "
+ "tblboard (num,name,email,homepage,subject,content,"
+ "pass,count,ip,regdate,pos,depth)"
+ " values(seq_num.nextVal,?,?,?,?,?,?,?,?,sysdate,0,0)";
try {
con = dataSource.getConnection();
updatePos(con);
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getHomepage());
pstmt.setString(4, dto.getSubject());
pstmt.setString(5, dto.getContent());
pstmt.setString(6, dto.getPass());
pstmt.setInt(7, dto.getCount());
pstmt.setString(8, dto.getIp());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void insertBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// Read.jsp, Update.jsp
public BoardDto getBoard(int num, String page){
BoardDto dto = new BoardDto();
String sql = "";
try {
con = dataSource.getConnection();
if(page.equals("read")){
sql = "update tblboard set count=count+1 where num=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
pstmt.executeUpdate();
}
sql = "select * from tblboard where num=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
rs = pstmt.executeQuery();
if(rs.next()){
dto.setNum(rs.getInt("num"));
dto.setName(rs.getString("name"));
dto.setEmail(rs.getString("email"));
dto.setHomepage(rs.getString("homepage"));
dto.setSubject(rs.getString("subject"));
dto.setContent(rs.getString("content"));
dto.setPass(rs.getString("pass"));
dto.setCount(rs.getInt("count"));
dto.setIp(rs.getString("ip"));
dto.setRegdate(rs.getString("regdate"));
dto.setPos(rs.getInt("pos"));
dto.setDepth(rs.getInt("depth"));
}
}catch(Exception e) {
System.out.println("void BoardDto getBoard(int num) : " + e);
}finally{freeConnection();}
return dto;
}
// Updateproc.jsp
public void updateBoard(BoardDto dto){
int result = 0;
String sql = "update tblboard set name=?,email=?,"
+ "subject=?,content=? where num=?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getSubject());
pstmt.setString(4, dto.getContent());
pstmt.setInt(5, dto.getNum());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void updateBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// Delete.jsp
public void deleteBoard(int num){
int result = 0;
String sql = "delete from tblboard where num = ?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, num);
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void deleteBoard(int num) : " + e);
}finally{freeConnection();}
}
// ReplyProc.jsp
public void replyUpdatePos(BoardDto dto){
int result = 0;
String sql = "update tblboard set pos=pos+1 where pos > ?";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, dto.getPos());
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void reqlyUpdatePos(int pos) : " + e);
}finally{freeConnection();}
}
public void replyBoard(BoardDto dto){
int result = 0;
String sql = "insert into "
+ "tblboard (num,name,email,homepage,subject,content,"
+ "pass,count,ip,regdate,pos,depth)"
+ " values(seq_num.nextVal,?,?,?,?,?,?,?,?,sysdate,?,?)";
try {
con = dataSource.getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getEmail());
pstmt.setString(3, dto.getHomepage());
pstmt.setString(4, dto.getSubject());
pstmt.setString(5, dto.getContent());
pstmt.setString(6, dto.getPass());
pstmt.setInt(7, dto.getCount());
pstmt.setString(8, dto.getIp());
pstmt.setInt(9, dto.getPos()+1);
pstmt.setInt(10, dto.getDepth()+1);
result = pstmt.executeUpdate();
}catch(Exception e) {
System.out.println("void replyBoard(BoardDto dto) : " + e);
}finally{freeConnection();}
}
// 들여쓰기
public String useDepth(int depth){
String result = "";
for(int i=0;i<depth*3;i++){
result+=" ";
}
return result;
}
/*
try {
}catch(Exception e) {
System.out.println("empty : " + e);
}finally{freeConnection();}
*/
}
-----------------------------------
3-2
Workspace : ~\JSP\EclipseWork
/BoardApp/WebContent/v2/Reply.jsp
<%@page import="bean.v2.BoardDto"%>
<%@ page contentType="text/html; charset=EUC-KR"%>
<html>
<head> <title>JSPBoard</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script>
function check() {
if (document.form.pass.value == "") {
alert("등록을 위해 패스워드를 입력하세요.");
form.pass.focus();
return false;
}
document.form.submit();
}
</script>
</head>
<body>
<%request.setCharacterEncoding("euc-kr");%>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<%
int num = Integer.parseInt(request.getParameter("num"));
BoardDto dto = dao.getBoard(num, "update");
String subject = dto.getSubject();
String content = dto.getContent();
%>
<center>
<br><br>
<table width=460 cellspacing=0 cellpadding=3>
<tr>
<td bgcolor=#FF9018 height=21 align=center class=m>답변하기</td>
</tr>
</table>
<form name=form method=post action="ReplyProc.jsp" >
<input type="hidden" name="num" value="<%=num %>" />
<input type="hidden" name="ip" value="<%=request.getRemoteAddr() %>" />
<table width=70% cellspacing=0 cellpadding=7>
<tr>
<td align=center>
<table border=0>
<tr>
<td width=20%>성 명</td>
<td width=80%>
<input type=text name=name size=30 maxlength=20 >
</td>
</tr>
<tr>
<td width=20%>E-Mail</td>
<td width=80%>
<input type=text name=email size=30 maxlength=30 >
</td>
</tr>
<tr>
<td width=20%>제 목</td>
<td width=80%>
<input type=text name=subject size=50 maxlength=50 value="답변:<%=subject %>">
</td>
<tr>
<td width=20%>내 용</td>
<td width=80%>
<textarea name=content rows=10 cols=50>--------------------
<%=dto.getContent()%></textarea>
</td>
</tr>
<tr>
<td width=20%>비밀 번호</td>
<td width=80%><input type=password name=pass size=15 maxlength=15 value="">
등록시에는 비밀번호가 필요합니다.</td>
</tr>
<tr>
<td colspan=2 height=5><hr size=1></td>
</tr>
<tr>
<td colspan=2>
<input type=Button value="등록" onClick="check()">
<input type=reset value="취소">
<input type=button value="뒤로" onClick="history.back()">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<%@ page contentType="text/html; charset=EUC-KR"%>
<html>
<head> <title>JSPBoard</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script>
function check() {
if (document.form.pass.value == "") {
alert("등록을 위해 패스워드를 입력하세요.");
form.pass.focus();
return false;
}
document.form.submit();
}
</script>
</head>
<body>
<%request.setCharacterEncoding("euc-kr");%>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<%
int num = Integer.parseInt(request.getParameter("num"));
BoardDto dto = dao.getBoard(num, "update");
String subject = dto.getSubject();
String content = dto.getContent();
%>
<center>
<br><br>
<table width=460 cellspacing=0 cellpadding=3>
<tr>
<td bgcolor=#FF9018 height=21 align=center class=m>답변하기</td>
</tr>
</table>
<form name=form method=post action="ReplyProc.jsp" >
<input type="hidden" name="num" value="<%=num %>" />
<input type="hidden" name="ip" value="<%=request.getRemoteAddr() %>" />
<table width=70% cellspacing=0 cellpadding=7>
<tr>
<td align=center>
<table border=0>
<tr>
<td width=20%>성 명</td>
<td width=80%>
<input type=text name=name size=30 maxlength=20 >
</td>
</tr>
<tr>
<td width=20%>E-Mail</td>
<td width=80%>
<input type=text name=email size=30 maxlength=30 >
</td>
</tr>
<tr>
<td width=20%>제 목</td>
<td width=80%>
<input type=text name=subject size=50 maxlength=50 value="답변:<%=subject %>">
</td>
<tr>
<td width=20%>내 용</td>
<td width=80%>
<textarea name=content rows=10 cols=50>--------------------
<%=dto.getContent()%></textarea>
</td>
</tr>
<tr>
<td width=20%>비밀 번호</td>
<td width=80%><input type=password name=pass size=15 maxlength=15 value="">
등록시에는 비밀번호가 필요합니다.</td>
</tr>
<tr>
<td colspan=2 height=5><hr size=1></td>
</tr>
<tr>
<td colspan=2>
<input type=Button value="등록" onClick="check()">
<input type=reset value="취소">
<input type=button value="뒤로" onClick="history.back()">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
-----------------------------------
3-3
Workspace : ~\JSP\EclipseWork
/BoardApp/WebContent/v2/ReplyProc.jsp
<%@page import="bean.v2.BoardDto"%>
<%@ page contentType="text/html; charset=EUC-KR"%>
<%request.setCharacterEncoding("euc-kr");%>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<jsp:useBean id="dto" class="bean.v2.BoardDto"/>
<jsp:setProperty name="dto" property="*"/>
<%
int num = Integer.parseInt(request.getParameter("num"));
BoardDto parentDto = dao.getBoard(num, "reply");
dao.replyUpdatePos(parentDto);
dto.setPos(parentDto.getPos());
dto.setDepth(parentDto.getDepth());
dao.replyBoard(dto);
response.sendRedirect("List.jsp");
%>
<%@ page contentType="text/html; charset=EUC-KR"%>
<%request.setCharacterEncoding("euc-kr");%>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<jsp:useBean id="dto" class="bean.v2.BoardDto"/>
<jsp:setProperty name="dto" property="*"/>
<%
int num = Integer.parseInt(request.getParameter("num"));
BoardDto parentDto = dao.getBoard(num, "reply");
dao.replyUpdatePos(parentDto);
dto.setPos(parentDto.getPos());
dto.setDepth(parentDto.getDepth());
dao.replyBoard(dto);
response.sendRedirect("List.jsp");
%>
-----------------------------------
3-4
Workspace : ~\JSP\EclipseWork
/BoardApp/WebContent/v2/List.jsp
<%@page import="java.util.Vector"%>
<%@page import="bean.v2.BoardDto"%>
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<link href="style.css" rel="stylesheet" type="text/css">
<script>
function check(){
if(document.search.keyWord.value == ""){
alert("검색어를 입력하세요.");
document.search.keyWord.focus();
return;
}
document.search.submit();
}
function read(num) {
document.read.num.value = num;
document.read.submit();
}
</script>
<body>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<%!
int totalRecord = 0; // 전체 글의 갯수
int numPerPage = 5; // 한 페이지당 보여질 글의 갯수
int pagePerBlock = 3; // 한 블럭당 페이지 수
int totalPage = 0; // 전체 페이지 갯수
int totalBlock = 0; // 전체 블럭 수
int nowPage = 0; // 현재 페이지 번호
int nowBlock = 0; // 현재 블럭 번호
int beginPerPage = 0; // 페이지당 시작 번호, 똑같은 글이 중복되서 보여주는 것을 방지
%>
<%
String keyField = request.getParameter("keyField");
String keyWord = request.getParameter("keyWord");
if(keyField == null){
keyField = "name";
keyWord = "";
}
if(request.getParameter("reload")!=null){
if(request.getParameter("reload").equals("true")){
keyWord = "";
}
}
Vector list = dao.getBoardList(keyField, keyWord);
// 페이징 기능 구현
totalRecord = list.size();
totalPage = (int)Math.ceil((double)totalRecord/numPerPage);
if(request.getParameter("nowPage") != null){
nowPage = Integer.parseInt(request.getParameter("nowPage"));
}
if(request.getParameter("nowBlock") != null){
nowBlock = Integer.parseInt(request.getParameter("nowBlock"));
}
beginPerPage = nowPage * numPerPage;
totalBlock = (int)Math.ceil((double)totalPage/pagePerBlock);
%>
<center><br>
<h2>JSP Board</h2>
<table align=center border=0 width=80%>
<tr>
<td align=left>Total : <%=totalRecord%> Articles(
<font color=red> <%=nowPage+1%> / <%=totalPage%> Pages </font>)
</td>
</tr>
</table>
<table align=center width=80% border=0 cellspacing=0 cellpadding=3>
<tr>
<td align=center colspan=2>
<table border=0 width=100% cellpadding=2 cellspacing=0>
<tr bgcolor=#D0D0D0 height=120%>
<td> 번호 </td>
<td width=80%> 제목 </td>
<td> 이름 </td>
<td> 날짜 </td>
<td> 조회수 </td>
</tr>
<%
if(list.size() == 0){
// 등록된 글이 없습니다.
}
%>
<%
if(list.size() != 0){
for(int i=beginPerPage;i<beginPerPage+numPerPage;i++){
if(i == totalRecord)
break;
BoardDto dto = (BoardDto)list.get(i);
%>
<tr height=120%>
<td><%=dto.getNum()%></td>
<td>
<%=dao.useDepth(dto.getDepth())%>
<%if(dto.getDepth()>0){ %>
<img src="../image/re.gif"/>
<%}%>
<a href="javascript:read('<%=dto.getNum()%>')"><%=dto.getSubject()%></a>
</td>
<td> <%=dto.getName()%> </td>
<td> <%=dto.getRegdate()%> </td>
<td> <%=dto.getCount()%> </td>
</tr>
<% }
}%>
</table>
</td>
</tr>
<tr>
<td><BR><BR></td>
</tr>
<tr>
<td align="left">Go to Page
<%if(nowBlock > 0){%>
<a href="List.jsp?nowBlock=<%=nowBlock-1%>&nowPage=<%=(nowBlock-1) * pagePerBlock%>">이전 <%=pagePerBlock%>개</a> :::
<%}%>
<%
for(int i=0;i<pagePerBlock;i++){
if(i+(nowBlock * pagePerBlock) == totalPage){
break;
}
%>
<a href="List.jsp?nowPage=<%=i+(nowBlock * pagePerBlock)%>&nowBlock=<%=nowBlock%>"/><%=i+1+(nowBlock * pagePerBlock)%></a>
<%
}
%>
<%if(totalBlock > nowBlock+1){%>
::: <a href="List.jsp?nowBlock=<%=nowBlock+1%>&nowPage=<%=(nowBlock+1) * pagePerBlock%>">다음 <%=pagePerBlock%>개</a>
<%}%>
</td>
<td align=right>
<a href="Post.jsp">[글쓰기]</a>
<a href="List.jsp?reload=true">[처음으로]</a>
</td>
</tr>
</table>
<BR>
<form action="List.jsp" name="search" method="post">
<table border=0 width=527 align=center cellpadding=4 cellspacing=0>
<tr>
<td align=center valign=bottom>
<select name="keyField" size="1">
<option value="name" <%if(keyField.equals("name")){%>selected="selected"<%}%>> 이름</option>
<option value="subject" <%if(keyField.equals("subject")){%>selected="selected"<%}%>> 제목</option>
<option value="content" <%if(keyField.equals("content")){%>selected="selected"<%}%>> 내용</option>
</select>
<input type="text" size="16" name="keyWord">
<input type="button" value="찾기" onClick="check()">
<input type="hidden" name="page" value= "0">
</td>
</tr>
</table>
</form>
<form name="read" metho="post" action="Read.jsp">
<input type="hidden" name="num" />
<input type="hidden" name="keyWord" value="<%=keyWord%>" />
<input type="hidden" name="keyField" value="<%=keyField%>" />
</form>
</center>
</body>
</html>
<%@page import="bean.v2.BoardDto"%>
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<link href="style.css" rel="stylesheet" type="text/css">
<script>
function check(){
if(document.search.keyWord.value == ""){
alert("검색어를 입력하세요.");
document.search.keyWord.focus();
return;
}
document.search.submit();
}
function read(num) {
document.read.num.value = num;
document.read.submit();
}
</script>
<body>
<jsp:useBean id="dao" class="bean.v2.BoardDao"/>
<%!
int totalRecord = 0; // 전체 글의 갯수
int numPerPage = 5; // 한 페이지당 보여질 글의 갯수
int pagePerBlock = 3; // 한 블럭당 페이지 수
int totalPage = 0; // 전체 페이지 갯수
int totalBlock = 0; // 전체 블럭 수
int nowPage = 0; // 현재 페이지 번호
int nowBlock = 0; // 현재 블럭 번호
int beginPerPage = 0; // 페이지당 시작 번호, 똑같은 글이 중복되서 보여주는 것을 방지
%>
<%
String keyField = request.getParameter("keyField");
String keyWord = request.getParameter("keyWord");
if(keyField == null){
keyField = "name";
keyWord = "";
}
if(request.getParameter("reload")!=null){
if(request.getParameter("reload").equals("true")){
keyWord = "";
}
}
Vector list = dao.getBoardList(keyField, keyWord);
// 페이징 기능 구현
totalRecord = list.size();
totalPage = (int)Math.ceil((double)totalRecord/numPerPage);
if(request.getParameter("nowPage") != null){
nowPage = Integer.parseInt(request.getParameter("nowPage"));
}
if(request.getParameter("nowBlock") != null){
nowBlock = Integer.parseInt(request.getParameter("nowBlock"));
}
beginPerPage = nowPage * numPerPage;
totalBlock = (int)Math.ceil((double)totalPage/pagePerBlock);
%>
<center><br>
<h2>JSP Board</h2>
<table align=center border=0 width=80%>
<tr>
<td align=left>Total : <%=totalRecord%> Articles(
<font color=red> <%=nowPage+1%> / <%=totalPage%> Pages </font>)
</td>
</tr>
</table>
<table align=center width=80% border=0 cellspacing=0 cellpadding=3>
<tr>
<td align=center colspan=2>
<table border=0 width=100% cellpadding=2 cellspacing=0>
<tr bgcolor=#D0D0D0 height=120%>
<td> 번호 </td>
<td width=80%> 제목 </td>
<td> 이름 </td>
<td> 날짜 </td>
<td> 조회수 </td>
</tr>
<%
if(list.size() == 0){
// 등록된 글이 없습니다.
}
%>
<%
if(list.size() != 0){
for(int i=beginPerPage;i<beginPerPage+numPerPage;i++){
if(i == totalRecord)
break;
BoardDto dto = (BoardDto)list.get(i);
%>
<tr height=120%>
<td><%=dto.getNum()%></td>
<td>
<%=dao.useDepth(dto.getDepth())%>
<%if(dto.getDepth()>0){ %>
<img src="../image/re.gif"/>
<%}%>
<a href="javascript:read('<%=dto.getNum()%>')"><%=dto.getSubject()%></a>
</td>
<td> <%=dto.getName()%> </td>
<td> <%=dto.getRegdate()%> </td>
<td> <%=dto.getCount()%> </td>
</tr>
<% }
}%>
</table>
</td>
</tr>
<tr>
<td><BR><BR></td>
</tr>
<tr>
<td align="left">Go to Page
<%if(nowBlock > 0){%>
<a href="List.jsp?nowBlock=<%=nowBlock-1%>&nowPage=<%=(nowBlock-1) * pagePerBlock%>">이전 <%=pagePerBlock%>개</a> :::
<%}%>
<%
for(int i=0;i<pagePerBlock;i++){
if(i+(nowBlock * pagePerBlock) == totalPage){
break;
}
%>
<a href="List.jsp?nowPage=<%=i+(nowBlock * pagePerBlock)%>&nowBlock=<%=nowBlock%>"/><%=i+1+(nowBlock * pagePerBlock)%></a>
<%
}
%>
<%if(totalBlock > nowBlock+1){%>
::: <a href="List.jsp?nowBlock=<%=nowBlock+1%>&nowPage=<%=(nowBlock+1) * pagePerBlock%>">다음 <%=pagePerBlock%>개</a>
<%}%>
</td>
<td align=right>
<a href="Post.jsp">[글쓰기]</a>
<a href="List.jsp?reload=true">[처음으로]</a>
</td>
</tr>
</table>
<BR>
<form action="List.jsp" name="search" method="post">
<table border=0 width=527 align=center cellpadding=4 cellspacing=0>
<tr>
<td align=center valign=bottom>
<select name="keyField" size="1">
<option value="name" <%if(keyField.equals("name")){%>selected="selected"<%}%>> 이름</option>
<option value="subject" <%if(keyField.equals("subject")){%>selected="selected"<%}%>> 제목</option>
<option value="content" <%if(keyField.equals("content")){%>selected="selected"<%}%>> 내용</option>
</select>
<input type="text" size="16" name="keyWord">
<input type="button" value="찾기" onClick="check()">
<input type="hidden" name="page" value= "0">
</td>
</tr>
</table>
</form>
<form name="read" metho="post" action="Read.jsp">
<input type="hidden" name="num" />
<input type="hidden" name="keyWord" value="<%=keyWord%>" />
<input type="hidden" name="keyField" value="<%=keyField%>" />
</form>
</center>
</body>
</html>
-----------------------------------
3-5
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/HelloWorld.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<p>안녕하세요</p>
<p>반갑습니다</p>
<p>또 만나요</p>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<p>안녕하세요</p>
<p>반갑습니다</p>
<p>또 만나요</p>
</body>
</html>
-----------------------------------
3-6
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/HelloWorld_bootstrap.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<p>안녕하세요</p>
<p>반갑습니다</p>
<p>또 만나요</p>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<p>안녕하세요</p>
<p>반갑습니다</p>
<p>또 만나요</p>
</body>
</html>
-----------------------------------
3-7
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/BootStrapDemo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
body {padding:30px}
</style>
</head>
<body>
<p class="well">안녕하세요</p>
<p class="lead">반갑습니다</p>
<p class="alert">또 만나요</p>
<span class="icon-search"></span>검색
<table class="table table-striped table-hover table-bordered">
<tr><td>HTML</td></tr>
<tr><td>CSS</td></tr>
<tr><td>JavaScript</td></tr>
</table>
<div class="pagination pagination-centered">
<ul>
<li>처음</li>
<li>1</li>
<li>2</li>
<li>다음 10개</li>
</ul>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
body {padding:30px}
</style>
</head>
<body>
<p class="well">안녕하세요</p>
<p class="lead">반갑습니다</p>
<p class="alert">또 만나요</p>
<span class="icon-search"></span>검색
<table class="table table-striped table-hover table-bordered">
<tr><td>HTML</td></tr>
<tr><td>CSS</td></tr>
<tr><td>JavaScript</td></tr>
</table>
<div class="pagination pagination-centered">
<ul>
<li>처음</li>
<li>1</li>
<li>2</li>
<li>다음 10개</li>
</ul>
</div>
</body>
</html>
-----------------------------------
3-8
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/layout/layout.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
div{border: 1px solid red}
</style>
</head>
<body>
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
div{border: 1px solid red}
</style>
</head>
<body>
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
-----------------------------------
3-9
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/layout/fixedLayout.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
-----------------------------------
3-10
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/layout/fluidLayout.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<h1>가변 길이</h1>
<div class="container-fluid">
<div class="row-fluid">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row-fluid">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<h1>가변 길이</h1>
<div class="container-fluid">
<div class="row-fluid">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row-fluid">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
-----------------------------------
3-11
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/layout/responsiveDesign.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<h1>가변 길이</h1>
<div class="container-fluid">
<div class="row-fluid">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row-fluid">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
[class*="span"]{
background-color: gray;
text-align: center;
margin-top: 10px;
}
</style>
</head>
<div class="container">
<div class="row">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<h1>가변 길이</h1>
<div class="container-fluid">
<div class="row-fluid">
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span4">4</div>
<div class="span5">5</div>
</div>
<div class="row-fluid">
<div class="span3">3</div>
<div class="span6 offset3">6 3칸공백</div>
</div>
<div class="row-fluid">
<div class="span12">
<img src="../images/Desert.jpg"/>
</div>
</div>
</div>
<div class="row">
<div class="span3">
<h1>카테고리</h1>
</div>
<div class="span7">
<h1>제목</h1>
<p>내용...<br/>내용...<br/>내용...<br/>내용...<br/>
내용...<br/>내용...<br/>내용...<br/>내용...</p>
</div>
<div class="span2">
<h2>사이드바</h1>
<p>내용...<br/>내용...<br/>내용...</p>
</div>
</div>
</body>
</html>
-----------------------------------
3-12
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/layout/responsiveDesignClass.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
/*div{border:1px solid red}*/
[class*="span"]{
background-color:gray;
text-align:center;
margin-top:10px
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="span4">
<div class="visible-phone">휴대폰 환경에서만 보여짐</div>
</div>
<div class="span4">
<div class="visible-tablet">태블릿 환경에서만 보여짐</div>
</div>
<div class="span4">
<div class="visible-desktop">데스크 탑 환경에서만 보여짐</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="span4">
<div class="hidden-phone">휴대폰 환경에서만 숨겨짐</div>
</div>
<div class="span4">
<div class="hidden-tablet">태블릿 환경에서만 숨겨짐</div>
</div>
<div class="span4">
<div class="hidden-desktop">데스크 탑 환경에서만 숨겨짐</div>
</div>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
/*div{border:1px solid red}*/
[class*="span"]{
background-color:gray;
text-align:center;
margin-top:10px
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="span4">
<div class="visible-phone">휴대폰 환경에서만 보여짐</div>
</div>
<div class="span4">
<div class="visible-tablet">태블릿 환경에서만 보여짐</div>
</div>
<div class="span4">
<div class="visible-desktop">데스크 탑 환경에서만 보여짐</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="span4">
<div class="hidden-phone">휴대폰 환경에서만 숨겨짐</div>
</div>
<div class="span4">
<div class="hidden-tablet">태블릿 환경에서만 숨겨짐</div>
</div>
<div class="span4">
<div class="hidden-desktop">데스크 탑 환경에서만 숨겨짐</div>
</div>
</div>
</div>
</body>
</html>
-----------------------------------
3-13
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/BaseCss/code.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
/*div{border:1px solid red}*/
[class*="span"]{
background-color:gray;
text-align:center;
margin-top:10px
}
</style>
<body>
코드는 인라인(<cope><span>안녕</span></cope>)으로 표시됩니다
<hr/>
<pre class="pre-scrollable">
<span>안녕</span>
<span>안녕</span>
<span>안녕>/span>
<span>안녕</span>
<span>안녕</span>
<span>안녕</span>
</pre>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
/*div{border:1px solid red}*/
[class*="span"]{
background-color:gray;
text-align:center;
margin-top:10px
}
</style>
<body>
코드는 인라인(<cope><span>안녕</span></cope>)으로 표시됩니다
<hr/>
<pre class="pre-scrollable">
<span>안녕</span>
<span>안녕</span>
<span>안녕>/span>
<span>안녕</span>
<span>안녕</span>
<span>안녕</span>
</pre>
</body>
</html>
-----------------------------------
3-14
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/BaseCss/form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h2>기본 폼</h2>
<div class="container">
<div class="row">
<div class="span12">
<form>
<fieldset>
<legend>범례</legend>
<label>레이블</label> <input type="text" placeholder="플레이스 홀더">
<span class="help-block">샘플 도움말 텍스트</span>
<label class="checkbox">
<input type="checkbox"> 체크 박스
</label>
<button type="submit" class="btn">전송 버튼</button>
</fieldset>
</form>
</div>
</div>
<div class="row">
<div class="span12">
<h2>폼 레이아웃 옵션</h2>
<h3>1. 검색 폼</h3>
<form class="form-search">
<input type="text" class="input-large search-query" /> <input
type="submit" class="btn" />
</form>
<h3>2. 인라인 폼</h3>
<form class="form-inline">
<input type="text" class="input-small" placeholder="이메일" /> <input
type="password" class="input-small" placeholder="암호" /> <label
class="checkbox"> <input type="checkbox" /> 체크 박스
</label>
<button type="submit" class="btn">가입</button>
</form>
<h3>3. 수평 폼</h3>
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">이메일</label>
<div class="controls">
<input type="text" placeholder="이메일">
</div>
</div>
<div class="control-group">
<label class="control-label">패스워드</label>
<div class="controls">
<input type="password" placeholder="패스워드">
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox">체크박스
</label>
<button type="submit" class="btn">가입</button>
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h2>기본 폼</h2>
<div class="container">
<div class="row">
<div class="span12">
<form>
<fieldset>
<legend>범례</legend>
<label>레이블</label> <input type="text" placeholder="플레이스 홀더">
<span class="help-block">샘플 도움말 텍스트</span>
<label class="checkbox">
<input type="checkbox"> 체크 박스
</label>
<button type="submit" class="btn">전송 버튼</button>
</fieldset>
</form>
</div>
</div>
<div class="row">
<div class="span12">
<h2>폼 레이아웃 옵션</h2>
<h3>1. 검색 폼</h3>
<form class="form-search">
<input type="text" class="input-large search-query" /> <input
type="submit" class="btn" />
</form>
<h3>2. 인라인 폼</h3>
<form class="form-inline">
<input type="text" class="input-small" placeholder="이메일" /> <input
type="password" class="input-small" placeholder="암호" /> <label
class="checkbox"> <input type="checkbox" /> 체크 박스
</label>
<button type="submit" class="btn">가입</button>
</form>
<h3>3. 수평 폼</h3>
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">이메일</label>
<div class="controls">
<input type="text" placeholder="이메일">
</div>
</div>
<div class="control-group">
<label class="control-label">패스워드</label>
<div class="controls">
<input type="password" placeholder="패스워드">
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox">체크박스
</label>
<button type="submit" class="btn">가입</button>
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
-----------------------------------
3-15
Workspace : ~\JSP\EclipseWork
/BootStrap2/WebContent/BaseCss/table.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {background-color: pink;}
</style>
</head>
<body>
<div class="span12">
<table class="table table-bordered table-hover table-condensed table-striped">
<caption>강의 리스트</caption>
<thead>
<tr><th>구분</th><th>제목</th></tr>
</thead>
<tbody>
<tr><td>프로그래밍 언어</td><td>C언어</td></tr>
<tr><td>프로그래밍 언어</td><td>C++</td></tr>
<tr><td>프로그래밍 언어</td><td>C#</td></tr>
<tr><td>프로그래밍 언어</td><td>JAVA</td></tr>
</tbody>
</table>
</div>
</body>
</html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="../bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
<style>
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {background-color: pink;}
</style>
</head>
<body>
<div class="span12">
<table class="table table-bordered table-hover table-condensed table-striped">
<caption>강의 리스트</caption>
<thead>
<tr><th>구분</th><th>제목</th></tr>
</thead>
<tbody>
<tr><td>프로그래밍 언어</td><td>C언어</td></tr>
<tr><td>프로그래밍 언어</td><td>C++</td></tr>
<tr><td>프로그래밍 언어</td><td>C#</td></tr>
<tr><td>프로그래밍 언어</td><td>JAVA</td></tr>
</tbody>
</table>
</div>
</body>
</html>
-----------------------------------
###################################
4. 과제
-----------------------------------
4. 과제
-----------------------------------
4-1
-----------------------------------
4-2
-----------------------------------
4-3
-----------------------------------
4-4
-----------------------------------
4-5
-----------------------------------
###################################
5. 과제 해결
-----------------------------------
5. 과제 해결
-----------------------------------
5-1
-----------------------------------
5-2
-----------------------------------
5-3
-----------------------------------
5-4
-----------------------------------
###################################
6. 기타
----------------------------------- -----------------------------------
'OpenFrameWork' 카테고리의 다른 글
오픈프레임워크_Day50 (0) | 2015.05.26 |
---|---|
오픈프레임워크_Day49 (0) | 2015.05.22 |
오픈프레임워크_Day47 (0) | 2015.05.20 |
오픈프레임워크_Day46 (0) | 2015.05.19 |
오픈프레임워크_Day45 (0) | 2015.05.18 |