하루동안 열지 않기 [쿠키]

개발/실전 2015. 4. 1. 19:55

    <p style="float:left"><input type="checkbox" name="checkbox" value="checkbox" id="checkPopClose">하루동안 보지않음</p>
    <a href="javascript:closeWin();" class="close" id="closePopup">닫기</a>

 

// JavaScript Document

$(function()

{
    checkCookie();
     $('#closePopup').click(function()

{
    //checkbox 체크여부 확인
    if($('#checkPopClose').is(':checked')) //check 박스에 체크를 했으면

{
    closeWin('1');
}

else

{
    $('#headbanner').slideUp(300);

}

});
})

function closeWin(obj)
{
    if (obj == "1" )   
    {
    setCookie2( "topBanner", "done" , 1);
    }

$('#headbanner').slideUp(300);

}

function setCookie2( name, value, expiredays )
{
var todayDate = new Date();
todayDate.setDate( todayDate.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

function checkCookie()

{
//쿠키값이 있으면 element를 가려준다
if(getCookie2("topBanner") == "done")
document.getElementById("headbanner").style.display="none";
//쿠키값이 없으면 element를 보여준다
else
document.getElementById("headbanner").style.display="block";
}

function getCookie2( name )
{
var nameOfCookie = name + "=";
var x = 0;
while ( x <= document.cookie.length )
{
var y = (x+nameOfCookie.length);
if ( document.cookie.substring( x, y ) == nameOfCookie )
{
if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
endOfCookie = document.cookie.length;
return unescape( document.cookie.substring( y, endOfCookie ) );
}
x = document.cookie.indexOf( " ", x ) + 1;
if ( x == 0 )
break;
}
return "";
}

'개발 > 실전' 카테고리의 다른 글

접속 기기가 PC , 모바일인지 구분하는 스크립트.  (0) 2015.11.24
도메인 자동 주소 변경  (0) 2015.08.11
checkbox 사용  (0) 2014.10.29
오라클 long 타입 insert  (0) 2014.08.28
getInstance() 란 무엇인가  (0) 2014.06.18

checkbox 사용

개발/실전 2014. 10. 29. 17:29

체크 박스 4개가 있어서

쿼리문의 OR로 사용 하려했다.

각각 A~D값을 가지고 있을때 

query += AND ( A='Y' OR B='Y') 이런식으로 체크한것에 대한 값을 OR 로 가져오고 싶었다 

여기선 A와 B를 체크했다고 가정해봅니다.

 

<input type="checkbox" name="benefit" value="A"<%=benefits.indexOf("A")>=0?"checked":""%>>A
<input type="checkbox" name="benefit" value="B"<%=benefits.indexOf("B")>=0?"checked":""%>>B
<input type="checkbox" name="benefit" value="C"<%=benefits.indexOf("C")>=0?"checked":""%>>C         

<input type="checkbox" name="benefit" value="D"<%=benefits.indexOf("D")>=0?"checked":""%>>D

 

이런식으로 체크박스를 선언하고

<%

String[] benefit = request.getParameterValues("benefit");   //배열로 값을 가져온다.

String benefits = ""; // 임의의 변수를 하나 추가해준다.

int i=0;

 

if(benefit != null){            //만약 체크박스가 null 값이 아니라면
  for(i=0;i<benefit.length;i++){   //i값은 benefit의 값보다 작고 증가 .
   benefits += (" "+benefit[i]+" = 'Y' OR");   //임의의 변수 추가해준것에 넣어준다

                                                            // 결과적으로는

                                                             //benefits = A='Y' OR B='Y' OR 의 값이 들어갔을 것이다.
  }
 }  

if(benefits.length() >0 ) //benefits 0보다 크므로
 {
  query += "AND ("+benefits.substring(0,benefits.length()-2)+") ";  //쿼리에 A='Y' OR B='Y' OR 값을 넣고

                                                                                             //substring으로 이용해서 OR를 자른다.
                                                                                 //결과적으로 query += AND(A='Y' OR B='Y')

 }

%>

 

'개발 > 실전' 카테고리의 다른 글

도메인 자동 주소 변경  (0) 2015.08.11
하루동안 열지 않기 [쿠키]  (0) 2015.04.01
오라클 long 타입 insert  (0) 2014.08.28
getInstance() 란 무엇인가  (0) 2014.06.18
현재시간함수  (0) 2014.06.05

오라클 long 타입 insert

개발/실전 2014. 8. 28. 17:52

DB 이관문제로 INSERT INTO SELECT 문을 사용했다

보통 테이블이라면 (LONG타입이 없다면)

 

INSERT INTO TABLE1

SELECT * FROM TABLE2

 

하면, TABLE2의 내용이 전부 TABLE1에 삽입되게 된다. (여기서 TABLE1,2 는 컬럼, 속성이 같다)

하지만 LONG타입의 컬럼이 들어가있다면

 

ORA-00997: LONG 데이터 유형은 사용할 수 없습니다

이런 에러를 볼 수있다.

 

처음에는 INSERT INTO TALBL2 (MEMO) SELECT TO_LOB(MEMO) FROM TABLE2

 

이런식으로 LONG 타입을 LOB으로 변형시켜서 넣었다

에러는 안났는데

TABLE2에 데이터가 안들어가있는것이였다..ㅠㅠ

 

그래서....다시 인터넷 검색해서 찾아봤다.( 어렵게 찾았다 ㅠㅠ사실 내가 찾은것도 아니지만..)

 

DECLARE
 BEGIN
     DECLARE CURSOR CURSOR_NAME IS
           SELECT BOARD_NUM, ROOT_NUM, PARENT_NUM, STEP, DEPTH, TITLE, WRITER, CONTENT,

    CON_TYPE, INSERT_DATE, VISITED,EMAIL, IPADDR, PASSWD

FROM PLUS_BOARD;
     BEGIN
         FOR I IN CURSOR_NAME LOOP     
             INSERT INTO PLUS_BOARD2 (BOARD_NUM, ROOT_NUM, PARENT_NUM, STEP, DEPTH, TITLE, WRITER, CONTENT, CON_TYPE, INSERT_DATE, VISITED,EMAIL, IPADDR, PASSWD)
             VALUES(I.BOARD_NUM, I.ROOT_NUM, I.PARENT_NUM, I.STEP, I.DEPTH, I.TITLE, I.WRITER, I.CONTENT, I.CON_TYPE, I.INSERT_DATE, I.VISITED,I.EMAIL, I.IPADDR, I.PASSWD);
         END LOOP;
     END;
 END;

 

즉,

 

DECLARE
 BEGIN
     DECLARE CURSOR CURSOR_NAME IS
           SELECT COLUMN1, COLUMN2   --테이블의 모든 컬럼을 넣어준다

     FROM TABLE2;
     BEGIN
         FOR I IN CURSOR_NAME LOOP     
             INSERT INTO TABLE1 (COLUMN1, COLUMN2)   --테이블의 모든 컬럼을 넣어준다           

            VALUES(I.COLUMN1, I.COLUMN2); --테이블의 모든 컬럼을 넣어준다            
         END LOOP;
     END;
 END;

 

원리는 모르겠지만 일단 성공은 했다.....

 

 

'개발 > 실전' 카테고리의 다른 글

하루동안 열지 않기 [쿠키]  (0) 2015.04.01
checkbox 사용  (0) 2014.10.29
getInstance() 란 무엇인가  (0) 2014.06.18
현재시간함수  (0) 2014.06.05
executeQuery, executeUpdate  (0) 2014.06.03

getInstance() 란 무엇인가

개발/실전 2014. 6. 18. 16:09

new()와 getInstance()의 차이

new()            : 객체를 계속계속 만들 수 있다.

getInstance()  : 싱글턴패턴, 하나의 인스턴스만 가지고 공유해서 쓴다.

 

싱글턴패턴

: 생성자를 private로 선언하여 다른클래스에서 해당 클래스의 인스턴스를 

new로 생성하지 못하게 하고, getInstance()함수를 통해서 인스턴스를 갖도록 한다.

 

자바는 클래스들로 이루어져 있고, 매번 새로운 객체를 생성합니다.
하지만 매번 새로운 객체를 생성하는 것이 아닌
한번만 새로운 객체를 생성하고 그후에는
모든 클래스들이 동일한 객체(인스턴스)를 써야 하는 경우가 생긴다면 어떻게
할것인가에 대한 해답이 위에 나온 getInstance()라는 메소드입니다.

프로그래밍 디자인 패턴중 하나인 싱글턴 패턴이라는 것 입니다.

하지만 그렇게 자세히 알면 짜증나고 머릿속에도 안들어옵니다.
그냥 간단하게 여러분들이 알고 있는 아이온으로 설명하겠습니다.

아래 소스에서 보면 제일 처음 만나는 getInstance()는 DataManager.getInstance();입니다.
이걸 예들 들어 설명하자면
아이온을 하는데 플레이어는 각각 다른 객체로 생성됩니다.
하지만 그 플레이어들이 사용하는 데이터정보는 항상 같이야 합니다.
부활지점정보,큐브확장,비행가능지역,비행고리,채집물,상점들,아이템정보,몬스터정보 등
많은 데이터들은 모든 플레이어들에게 같은 것을 보여주어야 합니다.
그럴때 쓰는게 인스턴스화이다. 이 데이터관리 클래스인 DataManager 클래스를
인스턴스화 한 객체로 만들면 모든 다른 객체들이 참조해서 사용할때
동일한 값 또는 메소드를 동일한 조건으로 사용할 수 있게 됩니다.

GameServer클래스에서 처음에 getInstance()를 한것은 해당 객체를 인스턴스화해서
생성하기 위함이며 다른 서비스나 컨트롤에서 해당 인스턴스화된 객체를 사용하려면
getInstance().메소드() 식으로 사용할 수 있습니다.

'개발 > 실전' 카테고리의 다른 글

checkbox 사용  (0) 2014.10.29
오라클 long 타입 insert  (0) 2014.08.28
현재시간함수  (0) 2014.06.05
executeQuery, executeUpdate  (0) 2014.06.03
원하는 순서 문자 변경  (0) 2014.04.18

현재시간함수

개발/실전 2014. 6. 5. 14:34

 

 

<%@page contentType = "text/html;charset=EUC-KR"%>

<%@page import = "java.util.*"%>

<%

     Calendar today = Calendar.getInstance();   // today 변수 선언 - 오늘 날짜를 받음.

     int year = today.get(Calendar.YEAR);

     int month = today.get(Calendar.MONTH)+1;

     int date = today.get(Calendar.DATE);

     int dayInt = today.get(Calendar.DAY_OF_WEEK);


 

     int hour = today.get(Calendar.HOUR);

     int minute = today.get(Calendar.MINUTE);

     int second = today.get(Calendar.SECOND);

     int ampmInt = today.get(Calendar.AM_PM);


 

     String day = "";

     String ampm = "";


 

     switch(dayInt)

     {

     case 1 : day = "일";

                         break;

     (..중략..)

     case 7 : day = "토";

                        break;

     }


 

     switch(ampmInt)

     {

     case 0 : ampm = "오전";

                              break;

     case 1 : ampm = "오후";

                              break;

     }

%>


 

오늘은 <%=year%> 년 <%=month%> 월 <%=date%> 일 <%=day%> 요일 입니다. <br>

현재시각은 <%=ampm%> <%=hour%> 시 <%=minute%> 분 <%=second%> 초 입니다.


 

날짜시간(Tue Sep 14 12:11:05 GMT+09:00 2004) <%=new java.util.Date()%>

[출처] jsp 현재시간 함수|작성자 DearBlue

 

'개발 > 실전' 카테고리의 다른 글

오라클 long 타입 insert  (0) 2014.08.28
getInstance() 란 무엇인가  (0) 2014.06.18
executeQuery, executeUpdate  (0) 2014.06.03
원하는 순서 문자 변경  (0) 2014.04.18
자바스크립트 현재 날짜  (0) 2014.04.07

executeQuery, executeUpdate

개발/실전 2014. 6. 3. 16:21

pstmt.executeQuery();

- select 문을 요청한다.

- 결과 값이 ResultSet 객체로 반환된다.

- 레코드 선택은 next() 메서드를 사용한다. (다음 행이 없으면 false, 있으면 true 반환)

- 컬럼은 데이터 형에 따라 getInt(컬럼명), getString(컬럼명) 메서드를 사용한다.


pstmt.executeUpdate();

- insert, delete, update 문을 요청한다.

- 변경된 레코드의 개수가 정수 값으로 반환된다. 

 

'개발 > 실전' 카테고리의 다른 글

getInstance() 란 무엇인가  (0) 2014.06.18
현재시간함수  (0) 2014.06.05
원하는 순서 문자 변경  (0) 2014.04.18
자바스크립트 현재 날짜  (0) 2014.04.07
클릭했을때 팝업창 + 팝업창 옵션  (0) 2014.03.27

원하는 순서 문자 변경

개발/실전 2014. 4. 18. 14:17

       <td bgcolor="ffffff" align="right" style="padding-right:1px"><%=String.valueOf(user.getDealerAuth()).indexOf("R") > -1 ?    String.valueOf(data.get("2")):func.replaceStringLen(String.valueOf(data.get("2")),7,"*")%></td> <!--주민번호-->

 

주민번호 같은 경우 가려야 하기때문에 위와 같이 사용한다

2번째 데이터를 가져와서 replace한다, 7번째부터 *로 표시한다

'개발 > 실전' 카테고리의 다른 글

현재시간함수  (0) 2014.06.05
executeQuery, executeUpdate  (0) 2014.06.03
자바스크립트 현재 날짜  (0) 2014.04.07
클릭했을때 팝업창 + 팝업창 옵션  (0) 2014.03.27
URI 와 URL  (0) 2014.03.26

자바스크립트 현재 날짜

개발/실전 2014. 4. 7. 09:38

<SCRIPT language="JavaScript">
<!--
 var today = new Date();
 document.write(today.getYear()+ "년 ");
 document.write((today.getMonth()+ 1) + "월");
 document.write(today.getDate()+ "일 ");
 document.write(today.getHours()+"시 ");
 document.write(today.getMinutes()+ "분 ");
 document.write(today.getSeconds()+ "초 ");
 //-->
 </SCRIPT>

 

 

 

'개발 > 실전' 카테고리의 다른 글

executeQuery, executeUpdate  (0) 2014.06.03
원하는 순서 문자 변경  (0) 2014.04.18
클릭했을때 팝업창 + 팝업창 옵션  (0) 2014.03.27
URI 와 URL  (0) 2014.03.26
Hashmap과 ArrayList 사용법  (0) 2014.03.21

클릭했을때 팝업창 + 팝업창 옵션

개발/실전 2014. 3. 27. 14:40

  <td bgcolor="ffffff" style="padding-right:2px; text-align:center"><a href="javascript:click();">LGU플러스</a></td>

<script>
 function click()
 {
  window.open('/item/kch6.jsp','child','width=2000','height=1500',true);
 }
</script>

====================================================================================================

 팝업창 옵션 종료(yes나 no로 지정)

toolbar = 상단 도구창 출력 여부 
menubar = 상단 메뉴 출력 여부
location = 메뉴아이콘 출력 여부
directories = 제목 표시줄 출력 여부
status = 하단의 상태바 출력 여부
scrollbars = 스크롤바 사용 여부
resizable = 팝업창의 사이즈 변경 가능 여부

사이즈 정의(픽셀 px)
width = 팝업창의 가로 길이 설정
height = 팝업창의 세로 길이 설정
top = 팝업창이 뜨는 위치(화면 위에서부터의 거리 지정)
left = 팝업창이 뜨는 위치(화면 왼쪽에서부터의 거리 지정)

var options = {
      height: 300,    
      width: 300,          
      toolbar: 0,     
      scrollbars: 0,  
      status: 0,      
      resizable: 1,   
      left: 0,        
      top: 0,         
      center: 0,      
      createnew: 0,   
      location: 0,    
      menubar: 0      
  };

  var parameters = "location=" + options.location +
                   ",menubar=" + options.menubar +
                   ",height=" + options.height +
                   ",width=" + options.width +
                   ",toolbar=" + options.toolbar +
                   ",scrollbars=" + options.scrollbars +
                   ",status=" + options.status +
                   ",resizable=" + options.resizable +
                   ",left=" + options.left +
                   ",screenX=" + options.left +
                   ",top=" + options.top +
                   ",screenY=" + options.top;

  // target URL
  var urlAdd= 'URL 주소'

  popup = window.open(urlAdd, 'popup', parameters);  

 

'개발 > 실전' 카테고리의 다른 글

원하는 순서 문자 변경  (0) 2014.04.18
자바스크립트 현재 날짜  (0) 2014.04.07
URI 와 URL  (0) 2014.03.26
Hashmap과 ArrayList 사용법  (0) 2014.03.21
iframe, target 에 대해서[펌]  (0) 2014.03.18

URI 와 URL

개발/실전 2014. 3. 26. 13:44

URIURL의 차이점! 

 

URI는 Uniform Resource Identifier 의 약자로, 필요로 하는 자원(파일 등)의 위치 정보를 기술하는 데 사용한다.

일반적으로 알고있는 URL과의 차이점은 프로토콜, 주소, 포트 번호를 제외한 경로만을 표시한다는 것이다.

 

URL 예 : http://localhost:8080/jsp/book/index.jsp

URI 예 : /jsp/book/index.jsp 

'개발 > 실전' 카테고리의 다른 글

자바스크립트 현재 날짜  (0) 2014.04.07
클릭했을때 팝업창 + 팝업창 옵션  (0) 2014.03.27
Hashmap과 ArrayList 사용법  (0) 2014.03.21
iframe, target 에 대해서[펌]  (0) 2014.03.18
getAttribute  (0) 2014.03.17