jquery 파일 다운로드

스크립트 다운로드(MIT) jquery.fileDownload.js


1
2
3
4
5
6
7
8
9
10
11
<script src="../js/jquery.fileDownload.js"></script>
<script>
$(document).ready(function () {
   $('#btn').click(function () {
       $.fileDownload('/Download.html?filePath=' + filePath)
        .done(function () { alert('다운로드 성공'); })
        .fail(function () { alert('다운로드 실패'); });
        return false;
    });    
});
</script>
cs


'정리없는자료 > Javascript' 카테고리의 다른 글

jquery 파일 다운로드  (0) 2016.04.07
javascript 파일 업로드 타입,크기 체크  (0) 2016.04.07
jquery 이메일 주소 체크  (0) 2016.04.06
javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05

javascript 파일 업로드 타입,크기 체크



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 if (window.File && window.FileReader && window.FileList && window.Blob) 
{
      fsize = $('#FileUpload1')[0].files[0].size;
      ftype = $('#FileUpload1')[0].files[0].type;
      fname = $('#FileUpload1')[0].files[0].name;
      sizeInMb = fileSize.size / 1024;
      sizeLimit = 1024 * 10;
      switch (ftype) {
           case 'image/png':
           case 'image/gif':
           case 'image/jpeg':
           case 'image/pjpeg':
                  break;
            default:
                   alert('이미지 파일만 등록가능합니다.');
                return false;
         }
}
cs


'정리없는자료 > Javascript' 카테고리의 다른 글

jquery 파일 다운로드  (0) 2016.04.07
javascript 파일 업로드 타입,크기 체크  (0) 2016.04.07
jquery 이메일 주소 체크  (0) 2016.04.06
javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05


<script src="/jquery/jquery-1.11.1.min.js" ></script>


var regEmail = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;


if (!regEmail.test($("#txtEmail").val())) {

   alert('이메일 형식이 잘못되었습니다.');

   $("#txtEmail").focus();

   return false;

}

'정리없는자료 > Javascript' 카테고리의 다른 글

jquery 파일 다운로드  (0) 2016.04.07
javascript 파일 업로드 타입,크기 체크  (0) 2016.04.07
jquery 이메일 주소 체크  (0) 2016.04.06
javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05

json encoding

function json_encode($data) {
 switch (gettype($data)) {
  case 'boolean':
   return $data?'true':'false';
  case 'integer':
  case 'double':
   return $data;
  case 'string':
   return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"';
  case 'array':
   $rel = false; // relative array?
    $key = array_keys($data);
   foreach ($key as $v) {
    if (!is_int($v)) {
     $rel = true;
     break;
    }
   }

   $arr = array();
   foreach ($data as $k=>$v) {
    $arr[] = ($rel?'"'.strtr($k, array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v);
   }

   return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']';
  default:
   return '""';
 }
}


 

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript 파일 업로드 타입,크기 체크  (0) 2016.04.07
jquery 이메일 주소 체크  (0) 2016.04.06
javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05
javascript 테이블 셀이동  (0) 2008.05.05
function getDate(gDate,gValue,gCont) {
    gDate = gDate.replaceAll("-","");
    if (gDate.length < 8) return "";
    var today = new Date(Number(gDate.substring(0,4)),Number(gDate.substring(4,6))-1,Number(gDate.substring(6,8)));
    if (gCont == "YEAR") {
        gday.setYear(today.getYear()+Number(gValue));
    } else if (gCont == "MONTH") {
        today.setMonth(today_.getMonth()+Number(gValue));
    } else {
        today.setDate(today_.getDate()+Number(gValue));
    }
    return (today.getYear()+"")
         + ((today.getMonth()+1)+"").lpad(2,"0")
         + (today.getDate()+"").lpad(2,"0");
}

'정리없는자료 > Javascript' 카테고리의 다른 글

jquery 이메일 주소 체크  (0) 2016.04.06
javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05
javascript 테이블 셀이동  (0) 2008.05.05
javascript CapLock  (0) 2008.05.05
  1. 문틈사이로하늘 2008.08.03 21:50 신고

    영어가 많으면 ...구글광고도 영어로 뜨는 구나 ..^^ 이거 ~~~ 응용해 볼만한데요..^^

    • rails 2008.08.05 12:46 신고

      아무래도 프로그래밍 관련이다보니
      영어로 광고가 많이 뜨네요.

<!DOCTYPE html PUBLIC "-//w3c/DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<OBJECT type="application/x-oleobject"CLASSID="CLSID:1A683544-F15C-9344-29A0-24030107643B"></OBJECT>

<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=EUC-KR" />
<style type="text/css">
#data1 {
 position: absolute;
 top: 100px; left: 100px;
 padding: 0;
 width: 200px;
 height: 200px;
 background-color: #ff0;
 clip:rect(0px 200px 200px 0px);
}

#data1 h3{
 margin: 0;
 padding: 5px;
 font-size: smaller;
 background-color: #006;
 color: #fff;
}

#contained{
 margin: 10px;
}
</style>

<script type="text/javascript">
//<![CDATA[
 var bottom = 200;
 var hidden = false;
 var obj = null;
 function clipItem(){
  obj = document.getElementById("data1");
  if(hidden){
   showItem();
  }else{
   hideItem();
  }
 }

 function hideItem(){
  bottom -= 1;
  var clip = "rect(0px, 200px, " + bottom + "px,0px)";
  document.title = bottom;
  obj.style.clip = clip;
  if(bottom == 20){
   hidden = true;
  }else{
   setTimeout("hideItem()", 1);
  }
 }

 function showItem(){
  bottom += 1;
  var clip = "rect(0px, 200px, " + bottom + "px, 0px)";
  obj.style.clip=clip;
  if(bottom == 200){
   hidden = false;
  }else{
   setTimeout("showItem()", 1);
  }
 }
//]]
</script>
</head>
<body>
<div id="data1">
<h3 onclick="clipItem();">Click to expand or collapse</h3>
<div id="contained">
this is the text contained within the div block.
</div>
</div>

<img src="building.bmp" style="position:absolute;top:320px;left:50px;clip:rect(30px 222px 222px 30px)">
</body>
</html>

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript json encoding  (0) 2011.12.12
javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05
javascript 테이블 셀이동  (0) 2008.05.05
javascript CapLock  (0) 2008.05.05
javascript 달력  (0) 2008.05.03

<html>
<OBJECT type="application/x-oleobject"CLASSID="CLSID:7AFD018D-8135-C8D8-37A2-DCECCFFB51AB"></OBJECT>

<head>
<script type="text/javascript">
//<![CDATA[

//초기 이벤트 캡쳐
if(window.addEventListener){
 window.addEventListener("load",setup,false);
}else if(window.attachEvent){
 window.attachEvent("onload",setup);
}else{
 window.onload = setup;
}


var count = -1;
var arrayObj = new Array("객체1","객체2","객체3","객체4","객체5");
var str = "";

function keyDownEvnt(evnt){
 evnt = evnt ? evnt : window.event;
 var obj = document.getElementById('table1');
 var cellTotal = obj.cells.length;

 //아래로 : 40   위로 : 38
 if(evnt.keyCode == 40){
  if(count < (cellTotal-1))
   count++;
 }else if(evnt.keyCode == 38){
  if(count > 0)
   count--;
 }

 for(var i=0; i < cellTotal; i++){
  if(i == count){
   obj.cells[i].style.backgroundColor = "#ff0000";
   str = obj.cells[i].innerText;
  }else{
   obj.cells[i].style.backgroundColor = "#ffffff";
  }
 }

 document.getElementById('txtbox').value = str;
 document.title = count;
}

function setup(){
 document.onkeydown = keyDownEvnt;
}


//]]>
</script>
<style type="text/css">
#table1{
 font: 9pt 돋움;
 border: 1px solid #FF3300;
}
</style>
</head>
<body>
<table id="table1" cellspacing="0" cellpadding="6" width="300">
<tr>
 <td>객체1</td>
</tr>
<tr>
 <td>객체2</td>
</tr>
<tr>
 <td>객체3</td>
</tr>
<tr>
 <td>객체4</td>
</tr>
<tr>
 <td>객체5</td>
</tr>
</table>
<br />
<input type="text" id="txtbox" size="30">
</body>
</html>

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript 년/월/일 뒤의 날짜 리턴  (2) 2008.05.23
javascript 클리핑  (0) 2008.05.05
javascript 테이블 셀이동  (0) 2008.05.05
javascript CapLock  (0) 2008.05.05
javascript 달력  (0) 2008.05.03
[javascript] 자동 입력  (0) 2007.12.21

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<OBJECT type="application/x-oleobject"CLASSID="CLSID:12E539E3-8587-0996-8AB8-F8B9FA02043E"></OBJECT>

<HEAD>
     <TITLE>Caps Lock Message</TITLE>
     <script type="text/javascript">
     function fnKeyPress(e)
     {
      var keyCode = 0;
      var shiftKey = false;
      keyCode = e.keyCode;
      shiftKey = e.shiftKey;
      if ((keyCode >= 65 && keyCode <= 90) && !shiftKey)
       fnShowCapsLockMsg();
      else
       fnHiddenCapsLockMsg();
     }
     function fnKeyDown(e)
     {
      var keyCode  = 0;
      keyCode = e.keyCode;
      if (keyCode == 20)
       fnHiddenCapsLockMsg();
     }
     function fnShowCapsLockMsg()
     {
      var divCapsLock = document.getElementById("CapsLock");
      divCapsLock.style.pixelTop = (document.body.clientHeight / 2) - (154 / 2);
      divCapsLock.style.pixelLeft = (document.body.clientWidth / 2) - (502 / 2);
      divCapsLock.style.display = "block";
     }
     function fnHiddenCapsLockMsg()
     {
      var divCapsLock = document.getElementById("CapsLock");
      divCapsLock.style.pixelTop = -154;
      divCapsLock.style.pixelLeft = -502;
      divCapsLock.style.display = "none";
     }
     </script>
    </HEAD>

    <BODY>
     <DIV ID="SomeForm">
     <FORM NAME="Form1" ID="Form1">
      <INPUT TYPE="TEXT" NAME="SomeText" ID="SomeText" VALUE="" SIZE="20" ONKEYPRESS="javascript:fnKeyPress(event);" ONKEYDOWN="javascript:fnKeyDown(event);" />
     </FORM>
     </DIV>
     <DIV ID="CapsLock" STYLE="display:none;">CapsLock 키가 눌려있습니다.</DIV>
    </BODY>
</HTML>

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript 클리핑  (0) 2008.05.05
javascript 테이블 셀이동  (0) 2008.05.05
javascript CapLock  (0) 2008.05.05
javascript 달력  (0) 2008.05.03
[javascript] 자동 입력  (0) 2007.12.21
[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>Untitled Document</title>
<style type="text/css">
body{
 font: 9pt 돋움 #333333;
}

a{
 selector-dummy: expression(this.hideFocus=true);
}
a:link {
 font: 9pt 돋움 #FF0000; text-decoration: none;
}
a:visited {
 font: 9pt 돋움 #FF0000; text-decoration: none;
}
a:active {
 font: 9pt 돋움 #FF0000; text-decoration: none;
}
a:hover {
 font: 12pt 돋움 #333333; text-decoration: none;
}

#div1{
 position: absolute;
 border: 3px solid #336666;
 padding: 5px;
 top: 10px;
 left: 30px;
}
</style>

<script type="text/javascript">
//<![CDATA[

//---------------------------------------------------------------------------
//선택한 날짜
var currYear;
var currMonth;
var currDate;

//오늘 날짜
var tdyYear;
var tdyMonth;
var tdyDate;

//시작요일 & 마지막날
var firstDay;
var endDate;

//날짜 배열
var endDateSolar = new Array(31,28,31,30,31,30,31,31,30,31,30,31); //평년
var endDateLunar = new Array(31,29,31,30,31,30,31,31,30,31,30,31); //윤년
//---------------------------------------------------------------------------


//----- 이벤트 모음 ---------------------------------------------------------
//이전 달 이동
function prevMonth(){
 currMonth--;
 
 if(currMonth < 1){
  currMonth = 12;
  currYear--;
 }
 
 CalendarPrint();
}
//다음 달 이동
function nextMonth(){
 currMonth++;
 
 if(currMonth > 12){
  currMonth = 1;
  currYear++;
 }
 
 CalendarPrint();
}
//선택 년도 이동
function moveYear(){
}
//선택 달 이동
function moveMonth(){
}

//셀 마우스 오버
function OnMouseCell(evnt){
 evnt = evnt ? evnt : window.event;
 theTarget = evnt.target ? evnt.target : evnt.srcElement;
 
 bt_effect(theTarget, "#ff0000");
}
//셀 마우스 아웃
function OutMouseCell(evnt){
 evnt = evnt ? evnt : window.event;
 theTarget = evnt.target ? evnt.target : evnt.srcElement;
 
 bt_effect(theTarget, "#f6f6f6");
}
//셀 클릭
function SelectDate(year, month, date){
}

//필터효과
function bt_effect(target,after) {
 target.style.filter = 'blendTrans(duration=0.4)';
 target.filters.blendTrans.stop();
 target.filters.blendTrans.Apply();
 target.style.backgroundColor= after;
 target.filters.blendTrans.Play();
}

//----- 이벤트 모음 끝 ------------------------------------------------------

//캘린더 출력
function CalendarPrint(){
 endDate = EndDateReturn(currYear, currMonth, currDate);
 firstDay = new Date(currYear, currMonth-1, 1).getDay();
 
 var idx = firstDay+1;
 var countDay = 1;

 for(var i=1; i <= 42; i++){
  if(i >= idx && i <= (endDate + firstDay)){
   document.getElementById('cValue'+idx).innerHTML = countDay;
   document.getElementById('cValue'+i).style.backgroundColor = "#F6F6F6";
   document.getElementById('cValue'+i).style.cursor = "hand";
   document.getElementById('cValue'+i).attachEvent("onmouseover",OnMouseCell);
   document.getElementById('cValue'+i).attachEvent("onmouseout",OutMouseCell);

   
   if((i%7) == 0 || (i%7) == 1) weekendMark('cValue'+i);
   idx++;
   countDay++;
  }else{
   document.getElementById('cValue'+i).innerHTML = "";
   document.getElementById('cValue'+i).style.backgroundColor = "#F2F2F2";
   document.getElementById('cValue'+i).style.cursor = "default";
   document.getElementById('cValue'+i).detachEvent("onmouseover",OnMouseCell);
   document.getElementById('cValue'+i).detachEvent("onmouseout",OutMouseCell);
  }
 }
 
 //오늘 날짜 표시
 if(currYear == tdyYear && currMonth == tdyMonth)
  todayMark();
 
 //주말 표시
 
 document.getElementById('viYear').innerHTML = currYear + "년";
 document.getElementById('viMonth').innerHTML = currMonth + "월";
}

//마지막날 반환
function EndDateReturn(year, month, date){
 //윤년체크
 var isLunar = ((year % 4) == 0 && (year%100) != 0 || (year%400) == 0);
 var edDate = (isLunar) ? endDateLunar : endDateSolar;
 
 return edDate[month-1];
}

//오늘날짜 표시
function todayMark(){
 var idx = firstDay + tdyDate;
 document.getElementById('cValue'+idx).style.backgroundColor = "#FF0000";
}

//주말 표시
function weekendMark(obj){
 document.getElementById(obj).style.color = "#F32200";
}

//셋팅
function setup(){
 //초기 형태 셋팅
 for(var i=1; i <= 42; i++){
  document.getElementById('cValue' + i).style.textAlign = "right";
  document.getElementById('cValue' + i).style.verticalAlign = "top";
  document.getElementById('cValue' + i).style.padding = "5px";
 }
 
 //초기값 설정
 var now = new Date();
 currYear = tdyYear = now.getFullYear();
 currMonth = tdyMonth = now.getMonth() + 1;
 currDate = tdyDate = now.getDate();
 
 CalendarPrint();
}


//Cross Browser Loading....
if(window.addEventListener){
 window.addEventListener("load",setup,false);
}else if(window.attachEvent){
 window.attachEvent("onload", setup);
}else{
 window.onload = setup;
}
//]]
</script>
</head>

<body>
<div id="div1">
<!-- 달력 헤더 시작 -->
<table id="calendarHead" align="center">
  <tr height="30">
   <td align="center"><a href="" onclick="prevMonth();return false;">◀</a></td>
 <td align="center" id="viYear"></td>
 <td align="center" id="viMonth"></td>
 <td align="center"><a href="" onclick="nextMonth();return false;">▶</a></td>
  </tr>
</table>
<!-- 달력 헤더 끝 -->

<!-- 달력 몸체 시작 -->
<table id="calendarBody" cellspacing="2">
  <tr>
   <td align="center"><font color="#990000">일</font></td>
 <td align="center">월</td>
 <td align="center">화</td>
 <td align="center">수</td>
 <td align="center">목</td>
 <td align="center">금</td>
 <td align="center"><font color="#0066CC">토</font></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue1"></td>
 <td width="40" id="cValue2"></td>
 <td width="40" id="cValue3"></td>
 <td width="40" id="cValue4"></td>
 <td width="40" id="cValue5"></td>
 <td width="40" id="cValue6"></td>
 <td width="40" id="cValue7"></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue8"></td>
 <td width="40" id="cValue9"></td>
 <td width="40" id="cValue10"></td>
 <td width="40" id="cValue11"></td>
 <td width="40" id="cValue12"></td>
 <td width="40" id="cValue13"></td>
 <td width="40" id="cValue14"></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue15"></td>
 <td width="40" id="cValue16"></td>
 <td width="40" id="cValue17"></td>
 <td width="40" id="cValue18"></td>
 <td width="40" id="cValue19"></td>
 <td width="40" id="cValue20"></td>
 <td width="40" id="cValue21"></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue22"></td>
 <td width="40" id="cValue23"></td>
 <td width="40" id="cValue24"></td>
 <td width="40" id="cValue25"></td>
 <td width="40" id="cValue26"></td>
 <td width="40" id="cValue27"></td>
 <td width="40" id="cValue28"></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue29"></td>
 <td width="40" id="cValue30"></td>
 <td width="40" id="cValue31"></td>
 <td width="40" id="cValue32"></td>
 <td width="40" id="cValue33"></td>
 <td width="40" id="cValue34"></td>
 <td width="40" id="cValue35"></td>
  </tr>
  <tr height="40">
   <td width="40" id="cValue36"></td>
 <td width="40" id="cValue37"></td>
 <td width="40" id="cValue38"></td>
 <td width="40" id="cValue39"></td>
 <td width="40" id="cValue40"></td>
 <td width="40" id="cValue41"></td>
 <td width="40" id="cValue42"></td>
  </tr>
</table>
<!-- 달력 몸체 끝 -->
</div>
</body>
</html>

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript 테이블 셀이동  (0) 2008.05.05
javascript CapLock  (0) 2008.05.05
javascript 달력  (0) 2008.05.03
[javascript] 자동 입력  (0) 2007.12.21
[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21
[xml] xml을 웹으로  (0) 2007.05.31
<script language="javascript">
<!--

var msg = new Array()
msg[0] = "자바스크립트"
msg[1] = "입니다."
msg[2] = "무쟈게 쉽죠."

var count = 0;
var offset = 0;

function show(){
        var text = msg[count];
        if(offset < text.length){
                var message = text.substring(0,offset+1);
                window.status = message;
                offset++;
        }else{
                offset = 0;
                count++;
                if(count == msg.length){
                        count=0;
                }
        }
       
        setTimeout("show()",100);
}

//-->
</script>

<body onload="show()">

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript CapLock  (0) 2008.05.05
javascript 달력  (0) 2008.05.03
[javascript] 자동 입력  (0) 2007.12.21
[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21
[xml] xml을 웹으로  (0) 2007.05.31
[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
<script type="text/javascript">
function idclear() {
  document.login.id.style.backgroundImage = '';
 }
function pwclear() {
  document.login.pw.style.backgroundImage = '';
 }
</script>

<form name="login">
<input type="text" name="id" value="" onFocus="idclear();"  style="background:url(xxx.gif);" >
<input type="password" name="pw" value="" onFocus="pwclear();"  style="background:url(xxx.gif);" >
</form>

'정리없는자료 > Javascript' 카테고리의 다른 글

javascript 달력  (0) 2008.05.03
[javascript] 자동 입력  (0) 2007.12.21
[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21
[xml] xml을 웹으로  (0) 2007.05.31
[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
[CGI] CGI 사용/ 동작  (0) 2007.05.30
XML,
TransformerFactory factory = TransformerFactory.newInstance();

// XSL 문서의 정보를 Source 객체로 생성
String xmlPath= application.getRealPath("bml.xml");
String xslPath= application.getRealPath("bml.xsl");

Source sourceXSL = new StreamSource(xslPath);


// XSL 변환기 생성: 변환후 저장 및 전송 수행
Transformer transformer = factory.newTransformer(sourceXSL);

// 출력 속성 설정
transformer.setOutputProperty(OutputKeys.ENCODING, "EUC-KR");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

// DOMSource 객체 생성
Source sourceXML = new StreamSource(xmlPath);

// StreamResult 객체 생성
Result resultXML =  new StreamResult(System.out);

// 모니터로 출력하기
transformer.transform(sourceXML, resultXML);

'정리없는자료 > Javascript' 카테고리의 다른 글

[javascript] 자동 입력  (0) 2007.12.21
[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21
[xml] xml을 웹으로  (0) 2007.05.31
[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
[CGI] CGI 사용/ 동작  (0) 2007.05.30
[xml] findSax,xpath  (2) 2007.05.29
CGI
처리방식
일반 프로그램이 자체 시스템에서 실시간으로 실행되며 프로그램이나 데이터가 메모리에 상주,
자료의 요청과 응답으로 이루어지며, 요청에 대한 응답이 종료되면 실행이 종료

기동방식
클라이언트/서버 환경의 프로그램이 주로 클라이언트의 프로그램을 실행하면서 자료의 공유 등을 위하여 서버를 이용,
CGI프로그램은 서버의 기능을 확장하기 위해 만들어진 서버 종속용 프로그램

프로토콜
클라이언트/서버 환경의 프로그램이 특정 통신규칙을 가지고 있음,
CGI프로그램은 어떤 통신규칙이 사용될지 사전에는 알 수 없다. 브라우저가 서버에 자료를 요구하는 헤더(MIME)를 분석해야만 답을 줄 수 있다.

'정리없는자료 > Javascript' 카테고리의 다른 글

[javascript] 입력폼에 이미지삽입 & 제거  (0) 2007.12.21
[xml] xml을 웹으로  (0) 2007.05.31
[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
[CGI] CGI 사용/ 동작  (0) 2007.05.30
[xml] findSax,xpath  (2) 2007.05.29
[xml] sax 이밴트  (0) 2007.05.28
CGI
CGI(Common Gateway Interface)는 HTTP와 같은 웹 서버와 외부 응용 프로그램과 인터페이스를 위한 표준이다. 기존의 HTTP text는 정적인 파일 형태로 존재하지만, CGI 프로그램은 실시간 실행 중인 출력 text 정보를 동적으로 변경 시킬 수 있다.
CGI를 실행 시키는 사용자는 이 실행 파일을 강제로 실행 시키는 권한을 금지한다. CGI 실행 파일은 cgi-bin이라는 특정한 디렉토리에서 관리된다.

CGI 프로그램의 종류

카운터나 방명록, 웹 게시판, 대화방, 검색엔진, 배너, 자료실, 사용자 ID와 비밀번호를 확인 등

CGI 동작

1. 각 사용자가 브라우저 안에 입력한 내용을 웹 서버로 보낸다.
2. 서버는 입력된 자료를 받아 CGI 스크립트를 보낸다. 서버는 CGI를 적당한 방법으로 호출한다.
3. CGI 스크립트는 입력된 자료를 처리하고, 실행 결과를 웹 서버에 전달한다.
4. 웹 서버는 요구한 사용자의 브라우저, 클라이언트에 CGI의 결과를 반환한다.

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] xml을 웹으로  (0) 2007.05.31
[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
[CGI] CGI 사용/ 동작  (0) 2007.05.30
[xml] findSax,xpath  (2) 2007.05.29
[xml] sax 이밴트  (0) 2007.05.28
[xml] dom,sax  (2) 2007.05.26
findbook
로직순서
findbook클래스에서 검색할 엘리먼트 및 검색어를 선택, 파싱
findbookhandler
difaulthandler 상속
생성자로 검색할 엘리먼트,검색어 입력 및 해쉬태이블생성
        //검색 엘리먼트
     this.condition = condition;
        //검색 문자열
     this.keyWord = keyWord;
     //검색 내용을 저장할 Hashtable 객체
        this.hash = new Hashtable();
 
startelement에서 검색할 엘리먼트 찾기
if(qName.equals("book")) {
            isBook = true;
            String isbn = attributes.getValue("ISBN");
            hash.put("ISBN", isbn);
        } else if(qName.equals("Title")) {
            isTitle = true;
        } else if(qName.equals("Author")) {
            isAuthor = true;
        } else if(qName.equals("FixedPrice")) {
            isPrice = true;
        }
 
characters에서 검색할 엘리먼트와 그에 해당하는 문자열 해쉬태이블에 입력
        String str = new String(ch,start,length).trim();
        if(isTitle) {
            hash.put("Title", str);
            isTitle = false;
        } else if(isAuthor) {
            hash.put("Author", str);
            isAuthor = false;
        } else if(isPrice) {
            hash.put("FixedPrice", str);
            isPrice = false;
        }
 
endelement에서 검색할 엘리먼트에해당하는 문자열이 검색되면 북정보출력
        if(qName.equals("book")) {
         if(condition.equals("ISBN")) {
                String isbn = (String) hash.get("ISBN");
                if(isbn.indexOf(keyWord)!=-1) displayBookInfo();
         } else if(condition.equals("Title")) {
                String title = (String) hash.get("Title");
                if(title.indexOf(keyWord)!=-1) displayBookInfo();
            } else if(condition.equals("Author")) {
                String author = (String) hash.get("Author");
                if(author.indexOf(keyWord)!=-1) displayBookInfo();
            }
            hash.clear();
            isBook = false;
        }
 
출력~
System.out.println("Title: " + (String) hash.get("Title"));
        System.out.println("Author: " + (String) hash.get("Author"));
        System.out.println("Price: " + (String) hash.get("FixedPrice"));
        System.out.println("----------------------");      
 
애러처리
 public void warning(SAXParseException exception) throws SAXException {
  throw new SAXException("warning 이벤트 처리");
 }
 public void error(SAXParseException exception) throws SAXException {
  System.out.println("DTD 또는 XML Schema 문서 구조에 위배됩니다.");
  System.out.println("유효하지 않는 문서 입니다.");    
  throw new SAXException("error 이벤트 처리");
 }
 public void fatalError(SAXParseException exception) throw
 SAXException {
  System.out.println("XML 권고안의 내용을 지키지 않았습니다.");
  System.out.println("잘 짜여진 XML 문서가 아닙니다.");
  throw new SAXException("fatalError 이벤트 처리");
 }
==================================================================================
- findByXPath
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
new InputSouce("aaa/aaa.xml");

id로 내용찾기
String title=xpath.evaluate("/aaa/aaa/aaa[../@id='aa']",inputSource);
 
id로 엘리먼트찾기
Node node=(Node)xpath.evaluate("/aaa/aaa/aaa[@id='aa']",inputSource,XPathConstants.NODE);
 
해당 엘레먼트갯수 검색
Double no = (Double)xpath.evaluate("count(/aaa/aaa/aaa)",inputSource,XPathConstants.NUMBER);
 
엘레먼트들 검색
NodeList nl = (NodList)xpath.evaluate("/aaa/aaa/aaa",inputSource,XPathConstants.NODESET);

/books/book[@id='1']/@kind

'정리없는자료 > Javascript' 카테고리의 다른 글

[CGI] CGI 일반 프로그래밍과의 차이점  (0) 2007.05.30
[CGI] CGI 사용/ 동작  (0) 2007.05.30
[xml] findSax,xpath  (2) 2007.05.29
[xml] sax 이밴트  (0) 2007.05.28
[xml] dom,sax  (2) 2007.05.26
[xml] domparser 연습  (0) 2007.05.23
  1. Kangsigner 2007.05.30 01:20 신고

    아아..눈이 뱅글뱅글 돕니다@_@

    • rails 2007.05.30 01:22 신고

      오잉 강자이너님 졸려서 그러실꺼에요..^^

=============== saxParser.java ========
package sax;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.helpers.*;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class SaxParser1 {
 private void init() throws ParserConfigurationException, SAXException, IOException{
  SAXParserFactory factory = SAXParserFactory .newInstance();
  factory.setValidating(true);
  SAXParser parser = factory.newSAXParser(); 
  parser.parse("./src/books.xml", new MyDefaultHandler());
 }
 
 public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
  SaxParser1 sax = new SaxParser1();
  sax.init();
 }
 
 class MyDefaultHandler extends DefaultHandler{
  public void startDocument() throws SAXException{
   System.out.println("처음");  
  }
 
  public void startElement(String  uri,
                String  localName,
                String  qName,
                Attributes  attributes)
         throws SAXException {  
   System.out.println("<"+qName+">");
   for(int i = 0 ; i < attributes.getLength();i++){
    System.out.println("속성 : "+ attributes.getQName(i)+":"+attributes.getValue(i));
   }
  }
 
  public void characters(char[] ch,
                int start,
                int length)
         throws SAXException{
   System.out.println("내용 : "+new String(ch,start,length)+"");
  }
 
  public void error(SAXParseException  e)
        throws SAXException {
   System.out.println(e);
  }
 
 
 }
}
==============================================

- sax 유형별로 검색하기

====================== FindBook.java =============
package sax;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import javax.xml.parsers.*;

public class FindBook {
    ///Field
    ///Constructor
    ///Method
    public static void main(String args[]) {
        try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
          
            System.out.println("1. ISBN 으로 검색");
            System.out.println("2. Title로 검색");
            System.out.println("3. Author로 검색");
            System.out.print("=>");
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int inputNum = Integer.parseInt(br.readLine());
            FindBookEventHandler handler;
            switch(inputNum){
             case 1:
              System.out.println("########################################");
                 System.out.println("ISBN으로 검색");
                 System.out.println("########################################");
                 handler = new FindBookEventHandler("ISBN", "asd");
                 parser.parse("src/books.xml", handler);
                 break;
               
             case 2:
              System.out.println("########################################");
                 System.out.println("Title로 검색");
                 System.out.println("########################################");
                 handler = new FindBookEventHandler("Title", "제목213");
                 parser.parse("src/books.xml", handler);
                 break;
               
             case 3:
              System.out.println("########################################");
                 System.out.println("Author로 검색");
                 System.out.println("########################################");
                 handler = new FindBookEventHandler("Author", "김씨");
                 parser.parse("src/books.xml", handler);
                 break;
             default:
              System.out.println("잘못입력하였습니다");           
            }
          
          
        } catch(Exception e) {
         System.out.println("잘못입력하였습니다");
            e.printStackTrace();
        }
    }
}
------------------------- FindBookEventHandler.java -----------------
package sax;

import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.util.*;

public class FindBookEventHandler extends DefaultHandler {
    ///Field
    private boolean isBook, isTitle, isAuthor, isPrice;
    private String condition, keyWord;
    private Hashtable hash;
    private Attributes attributes;

    ///Constructor
    public FindBookEventHandler(String condition, String keyWord) {
        //검색 엘리먼트
     this.condition = condition;
        //검색 문자열
     this.keyWord = keyWord;
     //검색 내용을 저장할 Hashtable 객체
        this.hash = new Hashtable();
    }

    ///Method
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
     if(qName.equals("book")) {
            isBook = true;
            String isbn = attributes.getValue("ISBN");
            hash.put("ISBN", isbn);
        } else if(qName.equals("Title")) {
            isTitle = true;
        } else if(qName.equals("Author")) {
            isAuthor = true;
        } else if(qName.equals("FixedPrice")) {
            isPrice = true;
        }
    }
    public void characters(char[] ch, int start, int length) throws SAXException {
        String str = new String(ch,start,length).trim();
        if(isTitle) {
            hash.put("Title", str);
            isTitle = false;
        } else if(isAuthor) {
            hash.put("Author", str);
            isAuthor = false;
        } else if(isPrice) {
            hash.put("FixedPrice", str);
            isPrice = false;
        }
    }
    public void endElement(String uri, String localName, String qName) throws SAXException {
        if(qName.equals("book")) {
         if(condition.equals("ISBN")) {
                String isbn = (String) hash.get("ISBN");
                if(isbn.indexOf(keyWord)!=-1) displayBookInfo();
         } else if(condition.equals("Title")) {
                String title = (String) hash.get("Title");
                if(title.indexOf(keyWord)!=-1) displayBookInfo();
            } else if(condition.equals("Author")) {
                String author = (String) hash.get("Author");
                if(author.indexOf(keyWord)!=-1) displayBookInfo();
            }
            hash.clear();
            isBook = false;
        }
    }
    public void displayBookInfo() {
        System.out.println("Title: " + (String) hash.get("Title"));
        System.out.println("Author: " + (String) hash.get("Author"));
        System.out.println("Price: " + (String) hash.get("FixedPrice"));
        System.out.println("----------------------");      
    }
 public void warning(SAXParseException exception) throws SAXException {
  throw new SAXException("warning 이벤트 처리");
 }
 public void error(SAXParseException exception) throws SAXException {
  System.out.println("DTD 또는 XML Schema 문서 구조에 위배됩니다.");
  System.out.println("유효하지 않는 문서 입니다.");   
  throw new SAXException("error 이벤트 처리");
 }
 public void fatalError(SAXParseException exception) throws SAXException {
  System.out.println("XML 권고안의 내용을 지키지 않았습니다.");
  System.out.println("잘 짜여진 XML 문서가 아닙니다.");
  throw new SAXException("fatalError 이벤트 처리");
 }   
}

'정리없는자료 > Javascript' 카테고리의 다른 글

[CGI] CGI 사용/ 동작  (0) 2007.05.30
[xml] findSax,xpath  (2) 2007.05.29
[xml] sax 이밴트  (0) 2007.05.28
[xml] dom,sax  (2) 2007.05.26
[xml] domparser 연습  (0) 2007.05.23
[xml] DOMparser  (4) 2007.05.21
DOM, sax, XML
dom 저장
  //출력하기
  //   변환기 생성
  TransformerFactory tf = TransformerFactory.newInstance();
  Transformer transformer = tf.newTransformer();

  // 출력 포맷 설정
  transformer.setOutputProperty(OutputKeys.ENCODING, "euc-kr");
  transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "bml.dtd");
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");

  // DOMSource 객체 생성
  DOMSource source = new DOMSource(xmlDoc);

  // StreamResult 객체 생성
  StreamResult result =  new StreamResult(new File("./books_rev1.xml"));

  // 파일로 저장하기
  transformer.transform(source, result);

  System.out.println(""); 

- SAX 파서와 DOM 파서의 비교

구분          
DOM 파서   SAX 파서
파서 해석 결과  객체 트리   이벤트
데이터 접근 방식 네비게이션(스크롤) 접근  1회 순차적인 접근
메모리   XML 문서량에 비례하여 증가 XML 문서량과 상관없이 일정 메모리 사용
데이터  용량  적을 경우 유리   상관 없음
데이터 재사용  가능    불가능(재파싱해서 사용), 저장 메커니즘 필요
유리한 작업 형태 네비게이션 검색 작업  DB 입력, 순차적 검색 작업, XML 문서 유효성 검사 작업

- SAX 파서에 다양한 기능 추가하기

//SAX 파서 공장 생성
SAXParserFactory factory = SAXParserFactory.newInstance();
//① DTD Validation 검사를 하게함
factory.setValidating(true);  
//② NameSpace를 해석하도록 함
factory.setNamespaceAware(true);
//③ XML Schema Validation 검사를 하게함(NameSpace 해석 기능 필수)
//factory.setFeature("http://apache.org/xml/features/validation/schema", true);//
//SAX 파서 생성
SAXParser parser = factory.newSAXParser();

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] findSax,xpath  (2) 2007.05.29
[xml] sax 이밴트  (0) 2007.05.28
[xml] dom,sax  (2) 2007.05.26
[xml] domparser 연습  (0) 2007.05.23
[xml] DOMparser  (4) 2007.05.21
[xml] 노테이션,컨디셔널섹션  (0) 2007.05.15
  1. boundless 2007.05.26 02:36 신고

    dom,SAX 파서... 오늘도 한번 읽어보고 갑니다~^^

    또 주말이네요. 한주가 어떻게 갔는지 모르겠네요.. 이번주는 술을 좀 마신날이 많아서 금방 갔네요.

    오늘도 술을 마시자는 친구의 유혹을 뿌리치고 집에 왔습니다.
    요즘은 블로그에서 노는 것이 참 재미있네요...^^ 관심있는 것을 하다보니...

    rails님도 즐거운 주말 보내세요~

    • rails 2007.05.26 03:00 신고

      자다가 잠시 깨서 컴터를 들여다 보고있습니다.
      boundless님 댓글이 딱하나있네요..반가워서 잠깨고
      답글다는중입니당^^
      저도 요즘 블로깅하는 맛에 삽니당.

      즐거운 주말 보내세요~

domparser 연습
package dom;
import java.io.IOException;

import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;

/*
1.ISBN NO : H890-7914-155-6
2.판매상태 : 판매중
3.책제목 : 퍼펙트 자바 네트워크 게임 프로그래밍
4.저자 : 박용우, 이재한
5.가격 : 31500원
7.내용 :
 */
public class DomPaser1 {
 public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
  DocumentBuilderFactory factory =
   DocumentBuilderFactory.newInstance();
  factory.setIgnoringElementContentWhitespace(true);
  DocumentBuilder docParser =factory.newDocumentBuilder();
 
  Document xmlDoc = docParser.parse("./src/books.xml");
  Element eRoot = xmlDoc.getDocumentElement();
  NodeList eBooks = eRoot.getChildNodes();
  for(int i = 0 ; i <eBooks.getLength();i++){
   System.out.println("===============================================");
   System.out.println("             책            정            보");
   System.out.println("===============================================");
   Element eBook = (Element)eBooks.item(i);
   if(eBook.getNodeType()==Node.ELEMENT_NODE){
    String isbn=eBook.getAttribute("ISBN");
    System.out.println("1.ISBN : " +isbn);
    
    String state=eBook.getAttribute("State");
    System.out.println("2.판매상태 : " +state);
    
    NodeList infoBook=eBook.getChildNodes();
    System.out.println("3.책제목 : "+infoBook.item(0).getTextContent ());
    
    System.out.println("4.저   자 : "+infoBook.item(1).getTextContent ());
    
    Element price = (Element)infoBook.item(3);
    Element FixedPrice = (Element)price.getFirstChild();
    System.out.print("5.가   격 : "+price.getFirstChild().getTextContent());    
    System.out.println(FixedPrice.getAttribute("PriceUnit"));
    
    NodeList contents = infoBook.item(4).getChildNodes();
    System.out.println("6.내   용");
    for(int j = 0 ; j < contents.getLength();j++){
     System.out.println("   "+ contents.item(j).getTextContent());     
    }   
    
    
   }
   System.out.println();
  }  
 }
}

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] sax 이밴트  (0) 2007.05.28
[xml] dom,sax  (2) 2007.05.26
[xml] domparser 연습  (0) 2007.05.23
[xml] DOMparser  (4) 2007.05.21
[xml] 노테이션,컨디셔널섹션  (0) 2007.05.15
[xml] 엔티티,외부일반파스드엔티티,내부(외부)파라매타엔티티  (2) 2007.05.14
DOMparser
 
package dom;
import java.io.IOException;

import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;

public class DomPaser1 {
 public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
  DocumentBuilderFactory factory =
   DocumentBuilderFactory.newInstance();
  factory.setIgnoringElementContentWhitespace(true);
  DocumentBuilder docParser =factory.newDocumentBuilder();
 
  Document xmlDoc = docParser.parse("./src/books.xml");
  Element eRoot = xmlDoc.getDocumentElement();
  NodeList eBooks = eRoot.getChildNodes();
  for(int i = 0 ; i <eBooks.getLength();i++){
   Element eBook = (Element)eBooks.item(i);
   if(eBook.getNodeType()==Node.ELEMENT_NODE){
    ////////////////////방법1
    Element eTitle = (Element)eBook.getFirstChild();   
    System.out.println(i+1+".책제목 : "+eTitle.getTextContent());
    
    
    ////////////////////////방법2
        Node titleNode=eBook.getFirstChild();
    Node textNode=titleNode.getFirstChild();
    String title=((Text)textNode).getData();
        System.out.println((i+1)+".책제목 : "+title);
      
   }    
  }  
 }
}
  1. boundless 2007.05.21 20:37 신고

    오늘도 열공하시는군요...
    스킨이 참 깔끔합니다. 굿~

    날씨가 참 좋았던 주말이었죠?
    저는 시골가서 모내기하고 왔답니다~
    날씨가 좋아서 일하기는 좋았답니다.

    또 즐거운 한주 보내세요~

    • rails 2007.05.21 20:59 신고

      ^^모내기 한판!
      스킨을 바꾸긴했는데 수익이 아에 없어졌네요.
      단가도 많이 내려갔구요. 하나당 0.02정도.ㅠ

      이젠 블로그에 머물러 있지않고 다른걸 생각해봐야겠습니다.이왕 시작한거 최고의 수익을 올려봐야죵!!

  2. 키위노트 2007.05.21 22:46 신고

    좋은 정보가 참 많네요~ 제 블로그에 댓글 남겨주셔서 방문했습니다.^^
    저도 프로그래머라 앞으로도 계속 자주 들려야 할 것 같습니다.ㅎㅎ

    • rails 2007.05.21 23:04 신고

      전 거의 공부하는 입장이니 가서 많이 배우겠습니다.
      ^^

노테이션,컨디셔널섹션

============= image.xml ==================
<?xml version="1.0" encoding="euc-kr"?>
<!DOCTYPE book [
<!NOTATION gif PUBLIC "image/gif" "photoshop.exe">
<!NOTATION jpg PUBLIC "image/jpg" "photoshop.exe">
<!ENTITY front_image SYSTEM "front.gif" NDATA gif>
<!ATTLIST book
    image ENTITY #REQUIRED>  
<!ELEMENT book (#PCDATA)>
]>
<book image="front_image"/>

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

============= untitle.xml ==============
<?xml version="1.0" encoding="euc-kr"?>
<!DOCTYPE booklist SYSTEM "untitled2.dtd" [
    <!ENTITY % en "INCLUDE">
    <!ENTITY % kr "IGNORE">
]>

<booklist>
    <book>
        <title>시인과도둑</title>
        <author>이문열</author>
    </book>
</booklist>
-------------------- untitled2.dtd -----------
<?xml version="1.0" encoding="euc-kr"?>
<!ENTITY % en "INCLUDE" >
<!ENTITY % kr "IGNORE" >

<![%en;[
    <!ELEMENT booklist (book*)>
    <!ELEMENT book (title, author)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)> 
]]>

<![%kr;[
    <!-- 한글 엘리먼트 선언 -->
    <!ELEMENT 책목록 (책*)>
    <!ELEMENT 책 (제목, 저자)>
    <!ELEMENT 제목 (#PCDATA)>
    <!ELEMENT 저자 (#PCDATA)>
]]>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] domparser 연습  (0) 2007.05.23
[xml] DOMparser  (4) 2007.05.21
[xml] 노테이션,컨디셔널섹션  (0) 2007.05.15
[xml] 엔티티,외부일반파스드엔티티,내부(외부)파라매타엔티티  (2) 2007.05.14
[xml] attlist,id,idref,entity  (5) 2007.05.11
[xml]  (0) 2007.05.11
엔티티,외부일반파스드엔티티,내부파라매타엔티티,외부파라매타엔티티

============ books.dtd ===============================
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+) >
    <!ELEMENT book (Title,Author+,Page,Price,Contents,Appendixes)>
        <!ELEMENT Title (#PCDATA)>
        <!ELEMENT Author (#PCDATA)>       
        <!ELEMENT Page (#PCDATA)>
        <!ELEMENT Price (FixedPrice,DiscountPrice?,eCoin?)>
            <!ELEMENT FixedPrice (#PCDATA)>
            <!ELEMENT DiscountPrice (#PCDATA)>
            <!ELEMENT eCoin (#PCDATA)>
        <!ELEMENT Contents (Content+)>
            <!ELEMENT Content (#PCDATA)>
        <!ELEMENT Appendixes (Appendix+)>
            <!ELEMENT Appendix (#PCDATA)>
           
<!ATTLIST book
    ISBN ID #REQUIRED
    State (판매중|미입고|절판) "판매중">
<!ATTLIST Author
    Representation IDREFS #IMPLIED>
<!ENTITY % levelnum1 "1" >
<!ENTITY % levelnum2 "2">
<!ENTITY % levelnum3 "3">
<!ENTITY % levelnum4 "4">
<!ENTITY % levelnum5 "5">
<!ENTITY % difficultyLevel "(%levelnum1;|%levelnum2;|%levelnum3;|%levelnum4;|%levelnum5;)">
<!ATTLIST Title
    Assortment NMTOKENS #REQUIRED
    Level %difficultyLevel; "3">
<!ATTLIST Page
    Unit CDATA #FIXED "쪽">
<!ATTLIST FixedPrice
    PriceUnit (원|엔|달러|유로) "원">
<!ATTLIST DiscountPrice
    PriceUnit (원|엔|달러|유로) "원">
<!ATTLIST eCoin
    PriceUnit (원|엔|달러|유로) "원">  
<!ENTITY sgml "XML">
<!ENTITY contents SYSTEM "contents.xml">
<!ENTITY appendixes SYSTEM "appendixes.xml">
   
================== books.xml====================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "file:/C:/eclipse/workspace/xml510/books.dtd">
<books>
    <book ISBN="asd">
        <Title Assortment="asd d" Level="5">제목 &sgml;</Title>
        <Author Representation="Q3 asd">김씨</Author>
        <Page Unit="쪽">123</Page>
        <Price>
            <FixedPrice PriceUnit="원">44</FixedPrice>
            <DiscountPrice PriceUnit="원">44</DiscountPrice>
            <eCoin>44</eCoin>
        </Price>
        &contents;
        &appendixes;       
    </book>
    <book ISBN="Q3">
        <Title Assortment="asd">제목213</Title>
        <Author Representation="Q4">김씨</Author>
        <Page Unit="쪽">12233</Page>
        <Price>
            <FixedPrice PriceUnit="원">44123</FixedPrice>
            <DiscountPrice PriceUnit="원">42134</DiscountPrice>
            <eCoin PriceUnit="원">3244</eCoin>
        </Price>
        <Contents>
            <Content>호잇1</Content>
            <Content>호잇1 &sgml;</Content>
        </Contents>
        <Appendixes>
            <Appendix>없어1</Appendix>
        </Appendixes>
    </book>
    <book ISBN="Q4">
        <Title Assortment="a14d">제목23</Title>
        <Author>김씨</Author>
        <Page>141233</Page>
        <Price>
            <FixedPrice>44123</FixedPrice>
        </Price>
        <Contents>
            <Content>호잇1</Content>
        </Contents>
        <Appendixes>
            <Appendix>없어1</Appendix>
        </Appendixes>
    </book>
</books>
================= contents.xml =====================
<?xml version="1.0" encoding="UTF-8"?>
<Contents>
    <Content>호잇1</Content>
    <Content>호잇1</Content>
    <Content>호잇1</Content>
    <Content>호잇1</Content>
</Contents>
================= appendixes.xml =====================
<?xml version="1.0" encoding="UTF-8"?>
<Appendixes>
    <Appendix>없어</Appendix>
</Appendixes>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] DOMparser  (4) 2007.05.21
[xml] 노테이션,컨디셔널섹션  (0) 2007.05.15
[xml] 엔티티,외부일반파스드엔티티,내부(외부)파라매타엔티티  (2) 2007.05.14
[xml] attlist,id,idref,entity  (5) 2007.05.11
[xml]  (0) 2007.05.11
[xml] 기초자료  (0) 2007.05.07
  1. 키위노트 2007.05.14 16:55 신고

    헉.. 제 블로그에 고멘트를 달아주셔서 방문했더니 프로그래밍을 하시는 분이시군요. ㅎ 더 반갑습니다. 동종업계에 계시는 분을 만나네요~ 행복한 프로그래밍하는 하루 되세요~

============== books.dtd ====================
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+) >
    <!ELEMENT book (Title,Author+,Page,Price,Contents,Appendixes)>
        <!ELEMENT Title (#PCDATA)>
        <!ELEMENT Author (#PCDATA)>       
        <!ELEMENT Page (#PCDATA)>
        <!ELEMENT Price (FixedPrice,DiscountPrice?,eCoin?)>
            <!ELEMENT FixedPrice (#PCDATA)>
            <!ELEMENT DiscountPrice (#PCDATA)>
            <!ELEMENT eCoin (#PCDATA)>
        <!ELEMENT Contents (Content+)>
            <!ELEMENT Content (#PCDATA)>
        <!ELEMENT Appendixes (Appendix+)>
            <!ELEMENT Appendix (#PCDATA)>
           
<!ATTLIST book
    ISBN ID #REQUIRED
    State (판매중|미입고|절판) "판매중">
<!ATTLIST Author
    Representation IDREFS #IMPLIED>
<!ATTLIST Title
    Assortment NMTOKENS #REQUIRED
    Lebel (1|2|3|4|5) "3">
<!ATTLIST Page
    Unit CDATA #FIXED "쪽">
<!ATTLIST FixedPrice
    PriceUnit (원|엔|달러|유로) "원">
<!ATTLIST DiscountPrice
    PriceUnit (원|엔|달러|유로) "원">
<!ATTLIST eCoin
    PriceUnit (원|엔|달러|유로) "원">  
<!ENTITY sgml "XML">
   
--------------------- books.xml -------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "file:/C:/eclipse/workspace/xml510/books.dtd">
<books>
    <book ISBN="asd">
        <Title Assortment="asd d">제목 &sgml;</Title>
        <Author Representation="Q3 asd">김씨</Author>
        <Page Unit="쪽">123</Page>
        <Price>
            <FixedPrice PriceUnit="원">44</FixedPrice>
            <DiscountPrice PriceUnit="원">44</DiscountPrice>
            <eCoin>44</eCoin>
        </Price>
        <Contents>
            <Content>호잇</Content>
            <Content>호잇</Content>
        </Contents>
        <Appendixes>
            <Appendix>없어</Appendix>
        </Appendixes>
    </book>
    <book ISBN="Q3">
        <Title Assortment="asd">제목213</Title>
        <Author Representation="Q4">김씨</Author>
        <Page Unit="쪽">12233</Page>
        <Price>
            <FixedPrice PriceUnit="원">44123</FixedPrice>
            <DiscountPrice PriceUnit="원">42134</DiscountPrice>
            <eCoin PriceUnit="원">3244</eCoin>
        </Price>
        <Contents>
            <Content>호잇1</Content>
            <Content>호잇1 &sgml;</Content>
        </Contents>
        <Appendixes>
            <Appendix>없어1</Appendix>
        </Appendixes>
    </book>
    <book ISBN="Q4">
        <Title Assortment="a14d">제목23</Title>
        <Author>김씨</Author>
        <Page>141233</Page>
        <Price>
            <FixedPrice>44123</FixedPrice>
        </Price>
        <Contents>
            <Content>호잇1</Content>
        </Contents>
        <Appendixes>
            <Appendix>없어1</Appendix>
        </Appendixes>
    </book>
</books>
  1. outsider 2007.05.11 16:37 신고

    이 블로그에서만 200달러 넘게 애드센스로 수익이 발생하나요?^^

    • rails 2007.05.11 16:43 신고

      아뇨..이블로그에서는 50~60정도가 발생합니다.

  2. 영민C 2007.05.11 21:08

    xml이네요. 흐흐 머리아프군요.

    • 백쉰 2007.05.11 23:45

      ^^그런가요..간단한거..입니당

  3. 티에프 2007.05.12 01:11 신고

    우와 그래도 한달에 50이면 제법 성공이네요. 근 3달만에 수표 받게 되는 꼴이죠?

XML
<?xml version="1.0" encoding="euc-kr"?>
<!ELEMENT 팩스 (수신, 발신, 날짜, 제목, 내용)>
 <!ELEMENT 수신 (수신처, 수신자, 연락처)>
  <!ELEMENT 수신처 (#PCDATA)>
  <!ELEMENT 수신자 (#PCDATA)>
  <!ELEMENT 연락처 (전화번호?, 팩스번호?)>
   <!ELEMENT 전화번호 (#PCDATA)>
   <!ELEMENT 팩스번호 (#PCDATA)>
 <!ELEMENT 발신 (발신처, 발신자, 연락처)>
  <!ELEMENT 발신처 (#PCDATA)>
  <!ELEMENT 발신자 (#PCDATA)>
 <!ELEMENT 날짜 (#PCDATA)>
 <!ELEMENT 제목 (#PCDATA)>
 <!ELEMENT 내용 (인사말, 본문)>
  <!ELEMENT 인사말 (#PCDATA)>
  <!ELEMENT 본문 (#PCDATA)>

<!ATTLIST 팩스 요망사항 (긴급 |답신요망) #REQUIRED>
<!ATTLIST 수신자 직위 CDATA "사원">
<!ATTLIST 발신자 직위 CDATA #FIXED "사장">
------------ fax.xml ---------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 팩스 SYSTEM "file:/C:/eclipse/workspace/xml510/fax.dtd">
<팩스 요망사항="긴급">
    <수신>
        <수신처>집</수신처>
        <수신자>김</수신자>
        <연락처>
            <전화번호>123</전화번호>
            <팩스번호>321</팩스번호>
        </연락처>
    </수신>
    <발신>
        <발신처>청와대</발신처>
        <발신자 직위="사장">말</발신자>
        <연락처>
            <전화번호>123</전화번호>
            <팩스번호>321</팩스번호>           
        </연락처>
    </발신>
    <날짜>오늘</날짜>
    <제목>뭐냐</제목>
    <내용>
        <인사말>ㅎㅇ</인사말>
        <본문>수겅</본문>
    </내용>
</팩스>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] 엔티티,외부일반파스드엔티티,내부(외부)파라매타엔티티  (2) 2007.05.14
[xml] attlist,id,idref,entity  (5) 2007.05.11
[xml]  (0) 2007.05.11
[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
xml 기초 ppt 자료입니다.

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] attlist,id,idref,entity  (5) 2007.05.11
[xml]  (0) 2007.05.11
[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
function check_jumin(form) {
        var chk =0;
        var yy = join.jumin1.value.substring(0,2);
        var mm = join.jumin1.value.substring(2,4);
        var dd = join.jumin1.value.substring(4,6);
        var sex = join.jumin2.value.substring(0,1);
        if (join.jumin2.value.split(" ").join("") == "") {
                alert ('주민등록번호를 입력하세요.');
                join.jumin1.value = "";
                join.jumin1.focus();
                return false;
        }
        if (isNaN(join.jumin1.value) || isNaN(join.jumin2.value)) {
                alert('주민등록번호는 숫자만 가능합니다.');
                join.jumin1.value = "";
                join.jumin2.value = "";
                join.jumin1.focus();
                return false;
        }
        if ((join.jumin1.value.length != 6) || (mm < 1 || mm > 12 || dd < 1)) {
                alert ('주민등록번호 앞자리가 잘못되었습니다.');
                join.jumin1.value = "";
                join.jumin1.focus();
                return false;
        }
        if ((sex != 1 && sex != 2 ) || (join.jumin2.value.length != 7 )) {
                alert ('주민등록번호 뒷자리가 잘못되었습니다.');
                join.jumin2.value = "";
                join.jumin2.focus();
                return false;
        }
        for (var i = 0; i <= 5 ; i++) {
        chk = chk + ((i % 8 + 2) * parseInt(join.jumin1.value.substring(i, i + 1)))
        }
        for (var i = 6; i <= 11 ; i++) {
        chk = chk + ((i % 8 + 2) * parseInt(join.jumin2.value.substring(i - 6, i - 5)))
        }
        chk = 11 - (chk % 11)
        chk = chk % 10
        if (chk != join.jumin2.value.substring(6, 7)) {
                join.jumin1.value = "";
                join.jumin2.value = "";
                alert ('올바른 주민등록번호가 아닙니다.');
                join.jumin1.focus();
                return false;
        }
        else {       
  join.submit();
  alert("가입완료");
        }
return true;
}

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml]  (0) 2007.05.11
[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
javascript 입력 포커스 자동 이동  (0) 2007.04.24
퀴즈
===========main.html============
<html>
 <head>
  <title> Main.html </title>
 </head>

  <frameset rows="15%,*" border="0" name='fset'>
  <frame src="tf.html" name='tf'>
  <frame src="Quizpage.html" name='contents'>
  </frameset>
</html>
---------------menu.html-------------
<html>
 <head>
  <title> menu.html </title>
 </head>

 <body bgcolor="#3399FF">
 <center> <font color="white"><H1>온라인 퀴즈 게임</H1></font></center>
 </body>
</html>
------------tf.html-----------------------
<html>
 <head>
  <title> tf.html </title>
 </head>

 <frameset rows='0,*' border='0'>
  <frame src='function.html' name='func'>
  <frame src='menu.html' name='menu'>
 </frameset>
</html>
-----------------quizpage.html------------
<html>
 <head>
  <title> Quizpage.html </title>
  <script language="javascript">
  function go(){
   document.location.href='question.html'
  }
  </script>
 </head>

 <body bgcolor="#FFFFFF">
 <center><font color="#0000CC" size="5"><b>온라인 퀴즈 게임에 오신 것을 환영합니다.</b></font><p>
 아래에 있는 퀴즈 시작 버튼을 누르시고 퀴즈에 도전해 보세요!<p>

 <form name="quizstart" action="question.html" method="post">
 <input type="button" name="start" value="퀴즈시작" onClick="go()"> </form>
 
 </center>
 </body>
</html>
----------------function.html----------
<html>
 <head>
  <title> fuction.html </title>
  <script language="javascript">
   answer=new Array();
   question=new Array();    //1차원 배열
   question[0]=new Array();  //2차원 배열
   question[0][0]="뽀빠이의 여자친구는?";
   question[0][1]="캔디";
   question[0][2]="아로미";
   question[0][3]="올리브";
   question[0][4]="나나";
   answer[0]='3'

   question[1]=new Array();
   question[1][0]="다음 중 가장 빨리달리는 것은?";
   question[1][1]="코난";
   question[1][2]="하니";
   question[1][3]="칼루이스";
   question[1][4]="둘리";
   answer[1]='1'

   question[2]=new Array();
   question[2][0]="타이타닉의 구명보트에는 몇 명이 탈수 있을까?";
   question[2][1]="9";
   question[2][2]="100";
   question[2][3]="500";
   question[2][4]="1000";
   answer[2]='1'

   question[3]=new Array();
   question[3][0]="심청이 마지막으로 간 곳은?";
   question[3][1]="우물";
   question[3][2]="인당수";
   question[3][3]="시집";
   question[3][4]="복지센터";
   answer[3]='3'

   question[4]=new Array();
   question[4][0]="껌데이의 의미는?";
   question[4][1]="남자가 여자에게 초콜렛 주는 날";
   question[4][2]="여자가 남자에게 사탕주는 날";
   question[4][3]="자장면 먹는날";
   question[4][4]="평소 미운사람에게 껌주는 날";
   answer[4]='4';
   
   var asked=3;
   var a=0;
   var qn=0;
   function getQuestion(){
    //0<Math.random()<1
    //0<Math.random()*5<5
    //0<floor(Math.random()*5)<=4
    //alert(Math.floor(Math.random()*question.length))

    if (a<asked)
    {
     a++;
     qn=Math.floor(Math.random()*question.length);
     dhtml='<form name="quizform">'
     dhtml+="문제 : "+question[qn][0]+"<p>";
     
     for (i=1;i<question[qn].length;i++)
     {
      dhtml=dhtml+"<input type='radio' value='"+i;
      dhtml=dhtml+"' name='dap' checked>"+question[qn][i];
      dhtml=dhtml+"<br>"
     }
     dhtml=dhtml+"<br><input type='button' name='next' value='정답확인' onClick='ok()'></form>"
     
     //document.write(dhtml);
     //alert(qn);
     
    }else{
     a=0;
     dhtml="끝 <a href = 'Main.html' target='_top'>매인으로</a>";
    }
    return dhtml;
   }
   
   function correct(d){
   if(answer[qn]==d){
     alert('정답');
    }else {
     alert('오답');
    }
   }
  </script>
 </head>

 <body>
 
 </body>
</html>
--------------------------question.html--------
<html>
 <head>
  <title> question.html </title>
  <script language="javascript">
   var addr=window.top.tf.func;

   function ok(){
    var d = 9;
    for(i=0;i<=3;i++){
     if(quizform.dap[i].checked==true){
      d=i;
      break;
     }
    }
    window.top.tf.func.correct(d+1);

    window.location.reload();
   }
  </script>
 </head>

<body>
 <script language="javascript">
   document.write(addr.getQuestion());
 </script>
 </body>
</html>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
javascript 입력 포커스 자동 이동  (0) 2007.04.24
javascript 띄어쓰기 여부 확인  (0) 2007.04.24
  1. 2010.04.24 00:33

    비밀댓글입니다

<script language="JavaScript">
 function Move()
 {
  divs=document.all.tags("DIV");
  showDiv = divs(0);
  windowHeight = document.body.clientHeight;
  windowWidth = document.body.clientWidth;
  scrollY=document.body.scrollTop;
  showDiv.style.display ="";
  showDiv.style.top=(windowHeight + scrollY-30)
  showDiv.style.left=(windowWidth-150);
 }
 function Init()
 {
  setInterval("Move()",10);
 }
</script>
 </HEAD>

 <BODY onload="Init()">
 <DIV style = "position:absolute; display:none; font:bold 20px; color:red;">
 따라다니나?
 </DIV>
========================================================
문제놀이

<HTML>
 <HEAD>
  <TITLE> </TITLE>
 </HEAD>
<script language="javascript">
question= new Array();

answer=new Array();
question[0] = new Array();
question[0][0] = "1+2는";
question[0][1] = "1";
question[0][2] = "2";
question[0][3] = "3";
question[0][4] = "4";
answer[0]='3';


question[1] = new Array();
question[1][0] = "1+3는";
question[1][1] = "1";
question[1][2] = "2";
question[1][3] = "3";
question[1][4] = "4";
answer[1]='4';


question[2] = new Array();
question[2][0] = "1+1는";
question[2][1] = "1";
question[2][2] = "2";
question[2][3] = "3";
question[2][4] = "4";
answer[2]='2';


question[3] = new Array();
question[3][0] = "1+0는";
question[3][1] = "1";
question[3][2] = "2";
question[3][3] = "3";
question[3][4] = "4";
answer[3]='1';


question[4] = new Array();
question[4][0] = "2+2는";
question[4][1] = "1";
question[4][2] = "2";
question[4][3] = "3";
question[4][4] = "4";
answer[4]='4';

function getQuestion(){
 qn=Math.floor(Math.random()*question.length);
 dhtml="문제 " + question[qn][0]+"<p>";
 for (i = 1;i < question[qn].length;i++)
 {
  dhtml=dhtml+"<input type='radio' value='"+i+"' name=dab>"+question[qn][i]+"<br>";
 
 }
 document.write(dhtml);
}

</script>
 <BODY onload="getQuestion()">

</BODY>
</HTML>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
javascript 입력 포커스 자동 이동  (0) 2007.04.24
javascript 띄어쓰기 여부 확인  (0) 2007.04.24
onkeypress 이벤트 핸들러를 통해
주민등록번호 입력시 6자리 후 다음폼으로 옮겨주는 소스입니다.
소스는 간단합니다. 코딩은 지저분합니다^^

<html><head><title>입력포커스자동이동</title>

<SCRIPT language = "javascript">
<!-- function check(){ if(document.min.first.value.length == 6)
document.min.second.focus(); }
-->
</SCRIPT>

</head><body><form name = "min">
<font size = 1> 주민번호입력 </font>
<input type = "text" name = "first" size "6" maxlength = "6" onkeypress="check()"
onfocus = "this.style.backgroundColor='#eeeeee'"
onblur="this.style.backgroundColor=''"> -

<input type = "text" name = "second" size = "7" maxlength = "7"
onfocus = "this.style.backgroundColor='#eeeeee'"
onblur="this.style.backgroundColor=''">
</form></body></html>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
javascript 입력 포커스 자동 이동  (0) 2007.04.24
javascript 띄어쓰기 여부 확인  (0) 2007.04.24
말 그대로 입력값을 전송하기 전 띄어쓰기 여부를 확인하는 소스입니다.
소스는 쉽습니다. 코딩은 지저분합니다.

<html><head><title>띄어쓰기확인!</title>

<SCRIPT language = "javascript"><!--
fucntion check(){ var val = document.min.first.value; var len = document.min.first.value.length;
chkarray = new Array();
for(i=0;i<len;i++){chkarray[i]=val.substring(i,i+1);
if(chkarray[i] == "") alert("error"); }} -->

</SCRIPT></head><body><form name = "min" action = "nexturl" method = "post">
<font size = 2> ID</font>
<input type = "text" name = "first" size = "6" maxlength = "6"
onfocus = "this.style.backgroundColor ='#eeeee'"
onblur = "this.style.backgroundColor=''">

<input type = "button" name ="chk" value ="enter" onclick="check()"></form></body></html>

'정리없는자료 > Javascript' 카테고리의 다른 글

[xml] 기초자료  (0) 2007.05.07
[javascript] 주민번호 체크  (0) 2007.05.04
[javascript] 퀴즈  (1) 2007.05.02
[javascript] 문제놀이  (0) 2007.05.01
javascript 입력 포커스 자동 이동  (0) 2007.04.24
javascript 띄어쓰기 여부 확인  (0) 2007.04.24

+ Recent posts