전체 글

response.sendRedirect("detail.jsp?category="+category+"&no="+request.getParameter("no"));



-> result set 이 빈 이유는 값을 받지못했기때문.


sendRedirect로는 값을 전송할 수 없다.


pageContext.forward("detail.jsp?category="+category+"&no="+request.getParameter("no"));

로 대신하여 해결하였다.


1.블로그 카테고리를 받아 Select쿼리문으로 데이터갯수를 카운트해서

갯수가 0일경우는 창을 띄우고 빈 화면을 출력한다.


2.블로그 카테고리 항목을 클릭하였을 때

번호 내림차순으로 나온다(최신순)


3.첫페이지에서는 '다음'이 나오지 않아야하고

마지막 페이지에서는 '이전'이 나오지 않아야한다. 


detail.jsp


<%

      String category = request.getParameter("category");

      int currentPage = 0;

      if(request.getParameter("currentPage") != null){

            currentPage = Integer.parseInt(request.getParameter("currentPage"));

      }

     

      int endPage=100;

      String endPagesql = "select count(*) from board where category = ?";

      PreparedStatement epst = conn.prepareStatement(endPagesql);

      epst.setString(1, category);

      ResultSet result = epst.executeQuery();


int count=0;

      if(result.next()){

             count = result.getInt("count(*)");

            endPage = count -1;

      }

      if(count == 0){

             %>

            <script language="javascript">

            alert("카테고리에 포스트가 없습니다!");

            </script><%

           

      }

      else{

     

          if(result.next()){

            int count = result.getInt("count(*)");

            endPage = count -1;

          }

     

      if(currentPage>0){

            %>

            <a href ="./detail.jsp?category=<%=category%>&currentPage=<%=currentPage-1%>">

이전</a>

            <%

          }

          if(currentPage<endPage){

            %>

            <a href ="./detail.jsp?category=<%=category%>&currentPage=<%=currentPage+1%>">

다음</a>

    <%}}%>


(1)index 

첫화면




(2)insert_form 

포스트작성



(3)detail 

category에 해당하는 데이터중 가장 최근 데이터부터 불러온다.



(4)detail 

category에 해당되는 데이터가 없을때





(5)update_form 

수정하기



(6)delete_form 

비밀번호가 일치하면 삭제가 된다.




참고한사이트


부트스트랩 템플릿 배포 사이트

https://startbootstrap.com/


Clean Blog 테마사용




25DAY / Java Script 함수

2017. 5. 10. 09:50

<!doctype html>

<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width,initial-scale=1">

<meta http-equiv="x-ua-compatible" content="IE=edge">

<title>template</title>

<link href="./_common/css/style.css" rel="stylesheet" type="text/css">

<script>

      var countdown = function(goal){

      var now = new Date();

      var s = goal.getTime()-now.getTime();

      var h = Math.floor(s/1000/60/60)%24;

      var d = Math.floor(s/1000/60/60/24);

      var m = Math.floor(s/1000/60)%60;

      var result = document.getElementById("result");

      result.textContent =d+""+h+"시간"+m+""+s+" 남았습니다.";

      };

 

      var endDay = new Date();

      endDay.setFullYear(2017);

      endDay.setMonth(9);

      endDay.setDate(13);

      endDay.setHours(17);

      endDay.setMinutes(30);

     

      window.addEventListener("load", function() {

            setInterval(function(){

            countdown(endDay);

            },1000);

 

      }, capture)

 

</script>

</head>

<body>

<!-- header-contents begin -->   

<header>

    <div class="header-contents">

        <h1>제목</h1>

        <h2>부제목</h2>

    </div>

</header>

<!-- header-contents end -->

 

<div class="main-wrapper">

 

    <section>

    <span id = "result">

      </span>

        본문 내용

    </section>

</div>

 

<!-- footer-contents begin -->

<footer>

    꼬리글 내용

</footer>

<!-- footer-contents end -->

</body>

</html>



Java Script function

getTime() 메서드

시간 값을 밀리초 단위로 가져온다.


초 : ÷1000

분 : 초 ÷ 60

시 : 분 ÷ 60

날짜 : 시 ÷ 24



입력한 년,월,일,시간을 기준으로 현재시간에서 얼마나 남았는지 화면에 띄워준다.


블로그 만들기 시초다지기


1)데이터베이스 생성

2)JSP생성

page1 index

page2 insert_form

page3 detail

24DAY / useBean

2017. 5. 9. 13:33

다음은 같은 기능을 한다.


1-1)

<jsp:useBean id="m" class="kr.or.ksmart.dto.Member"/>


1-2)


<%@page import ="kr.or.ksmart.dto.Member" %> 

Member m =new Member();






2-1)

<jsp:setProperty name="m" property="*"/>


2-2)


      String m_id = request.getParameter("m_id");

      String m_pw = request.getParameter("m_pw");

      String m_level = request.getParameter("m_level");

      String m_name = request.getParameter("m_name");

      String m_email = request.getParameter("m_email");

            

      m.setM_id(m_id);

      m.setM_pw(m_pw);

      m.setM_level(m_level);

      m.setM_name(m_name);

      m.setM_email(m_email);

       



23DAY /

2017. 5. 8. 11:24


DriverDB.java


package kr.or.ksmart.driverdb;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

 

public class DriverDB {

 

       public Connection driverDbcon() throws ClassNotFoundException, SQLException{

             System.out.println("driverDbcon DriverDB.java");

             Connection reconn = null;

             Class.forName("com.mysql.jdbc.Driver");

            

             String jdbcDriver = "포트번호";

             String dbUser = "dbid";

             String dbPass = "dbpwi";

            

             reconn = DriverManager.getConnection(jdbcDriverdbUserdbPass);

             return reconn;

       }

}


1) 기존파일 (ex - user_list) 에 import

<%@ page import ="kr.or.ksmart.driverdb.DriverDB" %>


2)드라이버 로딩 부분 삭제 후 입력


DriverDB db = new DriverDB();

conn = db.driverDbcon();



[JDBC] 쿼리 공백 에러

2017. 5. 1. 15:08

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'id001'' at line 1


틀린 코드 ▼

수정한 코드▼


query = "select * from tb_member where "+sk+"= ?";


WHERE 조건문에서 공백을 주지않아서 쿼리에러가 발생하였다. 쿼리문장은 sql에서 실행후 복사,붙여넣기 하는것이 좋은것 같다






자바스크립트사용


자바스크립트 변수


변수타입


<!DOCTYPE html>
<html>
<head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    <script>
    // db -> select -> 배열
    let card = [
                 {num:1,  kind:"spade"}
                ,{num:2,  kind:"spade"}
                ,{num:3,  kind:"spade"}
                ,{num:4,  kind:"spade"}
                ,{num:5,  kind:"spade"}
                ,{num:6,  kind:"spade"}
                ,{num:7,  kind:"spade"}
                ,{num:8,  kind:"spade"}
                ,{num:9,  kind:"spade"}
                ,{num:10, kind:"spade"}
                ,{num:11, kind:"spade"}
                ,{num:12, kind:"spade"}
                ,{num:13, kind:"spade"}
                ,{num:1,  kind:"heart"}
                ,{num:2,  kind:"heart"}
                ,{num:3,  kind:"heart"}
                ,{num:4,  kind:"heart"}
                ,{num:5,  kind:"heart"}
                ,{num:6,  kind:"heart"}
                ,{num:7,  kind:"heart"}
                ,{num:8,  kind:"heart"}
                ,{num:9,  kind:"heart"}
                ,{num:10, kind:"heart"}
                ,{num:11, kind:"heart"}
                ,{num:12, kind:"heart"}
                ,{num:13, kind:"heart"}
                ,{num:1,  kind:"diamond"}
                ,{num:2,  kind:"diamond"}
                ,{num:3,  kind:"diamond"}
                ,{num:4,  kind:"diamond"}
                ,{num:5,  kind:"diamond"}
                ,{num:6,  kind:"diamond"}
                ,{num:7,  kind:"diamond"}
                ,{num:8,  kind:"diamond"}
                ,{num:9,  kind:"diamond"}
                ,{num:10, kind:"diamond"}
                ,{num:11, kind:"diamond"}
                ,{num:12, kind:"diamond"}
                ,{num:13, kind:"diamond"}
                ,{num:1,  kind:"clover"}
                ,{num:2,  kind:"clover"}
                ,{num:3,  kind:"clover"}
                ,{num:4,  kind:"clover"}
                ,{num:5,  kind:"clover"}
                ,{num:6,  kind:"clover"}
                ,{num:7,  kind:"clover"}
                ,{num:8,  kind:"clover"}
                ,{num:9,  kind:"clover"}
                ,{num:10, kind:"clover"}
                ,{num:11, kind:"clover"}
                ,{num:12, kind:"clover"}
                ,{num:13, kind:"clover"}
                ];
    
        window.addEventListener("load",function(){
            let play = document.getElementById("play");
            play.addEventListener("click"function(){
                for(let i=0; i<10000; i++) {
                    let r = Math.floor(Math.random()*card.length); // 0 ~ 3
                    let temp = card[0];
                    card[0= card[r];
                    card[r] = temp;
                }
                let str ="";
                for(let i=0; i<5; i++) {
                    let fileName = card[i].kind+card[i].num+".JPG";
                    let path = "<img src='./imgs/"+fileName+"'>"
                    str += path;
                }
                let result = document.getElementById("result");
                result.innerHTML = str;
            });
        });
        
        
 
        
    </script>
</head>
<body class="container">
    <button id="play" class="btn btn-primary">play</button>
    <div id="result">
    </div>
</body>
</html>



19DAY /Bootstrap,CSS

2017. 4. 27. 13:41


JSP와 CSS

CSS구문

다이어리만들기







































Bootstrap(부트스트랩) 사용하기 


1)부트스트랩 다운로드

http://getbootstrap.com/


2)압축풀기 후 각각 파일 복사붙여넣기


3)웹페이지열어 Stylesheet 와 JAVAScript 영역에 관련된 파일의 경로를 추가한다.


3)JQuery라이브러리 추가하기

ㄴCDN방식으로 HTML내에서 참조


4)원하는 component 사용


참조사이트 https://www.w3schools.com/bootstrap/default.asp


MySQL 라이브러리 추가하기


1)MySQL Community Server를 다운로드한다.


https://dev.mysql.com/downloads/mysql/




2) 이클립스에서 마우스 우클릭 - [ Build Path ] - [ Configure Build Path... ] 클릭




3) [ Add External JARs ] 선택후 다운받은 MySQL Zip파일을 선택한다.










JDBC(Java data base connectivity)

 프로그램 순서 7단계


01단계 :드라이버 로딩(mysql 드라이버 로딩)

02단계 :DB연결(Connection)

1)ip 2)port번호 3)db접속id 4)db접속비번 5)db명(sid,service name)


03단계 :Query실행을 위한 준비

DML(insert,update,delete,select등) Query문장

( statement 또는 PreparedStatement 객체생성)


04단계 :Query실행


05단계 :Query실행결과 사용

(insert,update,delete의 경우 생략 가능단계)


06단계 :statement 또는 PreparedStatement객체 종료(close())

07단계 :DB연결(Connection 객체) 종료(close())





+ Recent posts