이것저것 알아봤는데

asx파일을 생성시켜 이걸 읽어들이는 방법이 제일 무난하다고 생각

java.io를 이용하여 asx생성을 하고 javascript 에서는 특정 asx파일만 읽어들이게 한다.

 

개선의 여지가 많다..

한개의 재생목록이 아닌 사용자별로 각각 다른 재생목록필요시 문제가 될수있다..

'개인적인 프로그램 > JAVA/JSP' 카테고리의 다른 글

request 라인단위로 읽기  (0) 2011.10.26
java 썸네일 thumbnail  (0) 2011.10.26
흠 static{} 이걸 왜 쓰는걸가?  (0) 2011.10.26
CalendarUtil을 만들면서..  (0) 2011.10.26
util을 만들면서...  (0) 2011.10.26
Posted by 삽지리
,

왜 이걸 몰랐을까? 라는 생각이 든다.

창의 크기를 줄이고 늘렸을때 특정 엘리먼트의 크기가 변해야되는 일이 있었을때

내가 생각한건 setinterval 함수로 계속 체크를 해주는 방법이였다.

벗뜨 onresize라는 이벤트가 있었으니.

다음은 msdn에서 퍼온것이다.

여기서 놀란것은 난 window.onresize 만 생각했는데

div.onresize도 있넴.. 흠좀무

출처 : http://msdn2.microsoft.com/en-us/library/ms536959(VS.85).aspx

--------------------------------------------------------------

onresize Event

Fires when the size of the object is about to change.

Syntax

Inline HTML <ELEMENT onresize = "handler" ... > All platforms
Event property object.onresize = handler JScript only
object.onresize = GetRef("handler") Visual Basic Scripting Edition (VBScript) 5.0 or later only
Named script <SCRIPT FOR = object EVENT = onresize> Internet Explorer only

Event Information

Bubbles No
Cancels No
To invoke Change the height or width of the object.
Default action No default action.

Event Object Properties

Although event handlers in the DHTML Object Model do not receive parameters directly, a handler can query the event object for the following event properties.

Available Properties

altKey Sets or retrieves a value that indicates the state of the ALT key.
altLeft Sets or retrieves a value that indicates the state of the left ALT key.
clientX Sets or retrieves the x-coordinate of the mouse pointer's position relative to the client area of the window, excluding window decorations and scroll bars.
clientY Sets or retrieves the y-coordinate of the mouse pointer's position relative to the client area of the window, excluding window decorations and scroll bars.
ctrlKey Sets or retrieves the state of the CTRL key.
ctrlLeft Sets or retrieves the state of the left CTRL key.
offsetX Sets or retrieves the x-coordinate of the mouse pointer's position relative to the object firing the event.
offsetY Sets or retrieves the y-coordinate of the mouse pointer's position relative to the object firing the event.
returnValue Sets or retrieves the return value from the event.
screenX Sets or retrieves the x-coordinate of the mouse pointer's position relative to the user's screen.
screenY Sets or retrieves the y-coordinate of the mouse pointer's position relative to the user's screen.
shiftKey Sets or retrieves the state of the SHIFT key.
shiftLeft Retrieves the state of the left SHIFT key.
srcElement Sets or retrieves the object that fired the event.
type Sets or retrieves the event name from the event object.
x Sets or retrieves the x-coordinate, in pixels, of the mouse pointer's position relative to a relatively positioned parent element.
y Sets or retrieves the y-coordinate, in pixels, of the mouse pointer's position relative to a relatively positioned parent element.

Remarks

The onresize event fires for block and inline objects with layout, even if document or CSS (cascading style sheets) property values are changed. Objects have layout when measurements such as the height and width attributes are set, or when the position of the object is set. Intrinsic objects, such as button, and windowed objects, such as window and iframe, fire as expected. This event does not fire for files with embedded controls.

Resizing HTML applications also fires the onresize event.

Standards Information

There is no public standard that applies to this event.

Applies To

A, ADDRESS, APPLET, B, BIG, BLOCKQUOTE, BUTTON, CENTER, CITE, CODE, CUSTOM, DD, DFN, DIR, DIV, DL, DT, EM, EMBED, FIELDSET, FORM, FRAME, hn, HR, I, IMG, INPUT type=button, INPUT type=file, INPUT type=image, INPUT type=password, INPUT type=reset, INPUT type=submit, INPUT type=text, ISINDEX, KBD, LABEL, LEGEND, LI, LISTING, MARQUEE, MENU, OBJECT, OL, P, PRE, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TEXTAREA, TT, U, UL, VAR, window, XMP

 

--------------------------------------------------------------

Posted by 삽지리
,

간단히 말해서

상위 엘리먼트에 overflow: auto 를 줬다

참조 :

http://hyeonseok.com/soojung/web/2005/03/07/123.html

그런데 ie6에서 상위엘리먼트가 하위를 덮어서 하위레이어가 안보인다.

이이유가 haslayout과 관련된 버그란다..

그래서 다시 그 상위엘리먼트에 zoom:1;을 주었다

참조 :

http://crowelee.wordpress.com/2007/01/26/ie-css-bug-fix-hack/

 

http://stophobia.tistory.com/90

Posted by 삽지리
,

대충만들어봣다.

 

이것의 쓰임새는 아무래도 onload에 무언가 이벤트를 추가할 필요성이 있는데 이 onload가 하나의 function이 아닌 여러개의 function이 돌아갈때 쓰이는것이겟다.

예를들면 left메뉴에 배너가 달려서 window.onload시 배너 function이 setInteval로 돌아가야하는데 나중에 컨텐츠 작업을 하면서 마찬가지로 window.onload돌아가야하는 이벤트가 있을경우 쓸모가 있다 하겠다.

 

삽질했다..

 

window.attachEvent

를 쓰면 되네 -_-

기존에 있는건 삭제 -_-

<script>
var a = "aaa()";
var b = "bbb()";
var windowOnload = new Array();
function aaa(){
 alert("야");
}
function bbb(){
 alert("호");
}

function ccc(talk){
 alert(talk);
}

var d = "바";


window.attachEvent("onload", aaa);

window.attachEvent("onload", bbb);

window.attachEvent("onload", new Function("ccc('가')"));
window.attachEvent("onload", new Function("ccc('"+d+"')"));
window.attachEvent("onload", new Function("ccc('다')"));

 


</script>

<body>
</body>

 

------------위 스크립트는 FF에서 안된다 ------------

그래서 아래와 같이 해준다...

 

function addEvent(object, event ,listener)
{
    if (object.addEventListener){
        object.addEventListener(event, listener, false);
    } else if (object.attachEvent){

        object.attachEvent('on' + event, listener);
    }
}
addEvent(window,'load',new Function("ccc('가')"));

-------------------2008년 4월 24일 수정 -------------

잘못알고 있었다.

위의 이벤트는 onload시가 아니라. 그냥 실행된것이라고 보면 된다.. 자바스크립트가 돌면서.. 하놔..

addEvent(window,'load',new Function("ccc('가')"));

위와 같이 되어 있는 이벤트는

 

addEvent(window,'load',function(){ccc('가');});

와 같이 하는것이 옳다..

 

그동안 낚이신 분들 지못미..

 

Posted by 삽지리
,

CalendarUtil은 기본적으로 Calendar를 기반으로 만들고 있는데

기본적인 날짜가 주어지고 Calendar의 set(int field, int value) 메쏘드를 이용하여

년,월,일을 별도로 세팅할 수 있게 하려고 했다.

벗뜨..

만약 2008년3월31일상태에서

Calendar c = Calendar.getInstance()

c.set(2008,2,31) // 월은 0이 1월이다.

c.set(Calendar.MONTH,1) //2월로 세팅

2월로 세팅할경우

Date형으로 바꾸고 포멧변환을 이용해서 String으로 변환하면 환산하면 2008년3월2일이된다.

 

java.text.SimpleDateFormat formatter =
            new java.text.SimpleDateFormat ("yyyyMMhh", java.util.Locale.KOREA);
 formatter.format(c.getTime()); 

 

대략난감해지는 상황..

이것은 비단 월만이 아니라 년도에도 해당된다.

이걸극복할 방법으로는 예를 들면 해당월의 일수나 해당년도의 일수를 구해서 계산을 통해 add()메쏘드를 이용해서

처리하는 방법이 있겠으나. 이것은 개발자마다 극히 주관적으로 생각할 수 있는 위험성이 있다고 판단되어 아예 년.월,일을 각각 세팅하는 메쏘드를 빼버렸다.

 

그리고 2개의 날짜를 계산하는것..

기본적으로 CalendarUtil는 내부에 Calendar 객체를 가지고 이것을 통해서 연산을 하고 날짜를 저장한다.

그런데..

추가로 날짜를 받아서 두 날짜의 차이를 구하면 원하는 차이값이 안나온다..

보통 사용돼는 방법이 2개의 값을 Date형으로 바꿔서 getTime()메쏘드를 이용해서 밀리초단위로 long형 데이터를 받아 이것을 비교하는 방법이다.

그런데 CalendarUtil내부 Calendar 객체는 이 long형 데이터 자체가 원하는 값이 나오지 않았다.

 

이유인 즉슨 CalendarUtil 생성자에서

 

this.calendar = Calendar.getInstance();   만으로 처리 했기떄문이다.

CalendarUtil 에서 내가 기본적으로 잡은 컨셉은 년월일에 대한 손쉬운 데이터 계산..

그런데 Calendar.getInstance();   했을경우

현재 시분초가 다들어간다..

그러니 나오는 데이터에 서 오차가 있을수밖에..

3월 13일 3시와 3월 14일 0시는 24시간의 차이가 없기때문에 날자차이가 1이 못되는 것이다..

그래서

 

this.calendar.clear(Calendar.HOUR);
  this.calendar.clear(Calendar.MINUTE);
  this.calendar.clear(Calendar.SECOND);
  this.calendar.clear(Calendar.MILLISECOND);

 

시분초를 다 없앴다..

Posted by 삽지리
,

util 을 만드는데 util에 대한 정의가 필요했다..

그래서 대충 아래와 같이 문서를 만들었지..

뭐 다 적은건 아니지만..

 

FileUtil   파일 컨트롤
    파일,디렉토리 copy,delete,move
    파일 디렉토리 검증 (유무, 해당 객체가 파일인지 디렉토리인지)
StringUtil   문자열 컨트롤과 암복호 지원
    각 암복호화 지원
    파일의 내용을 문자열로 얻기
    문자열을 일정길이 만큼만 보여주고 그 길이에 초과되는 문자열일 경우 특정문자를 덧붙여 보여줌.
CalendarUtil   날짜 컨트롤, DATE형의 데이터를 컨트롤  및 스트링으로 된 날짜 데이터를  DATE처럼 컨트롤
    데이터를 string형태로 받고 DATE처럼 컨트롤 가능하도록함
    한글 형식에 맞게 Date혹은 String 데이터를 변환시킨다.
XmlUtil   XML문서 컨트롤
ExcelUtil   엑셀문서 생성 및 다운로드, 데이터 컨트롤
ImageUtil   Thumbnail등의 이미지 컨트롤
    썸네일 이미지 생성
FtpUtil   FTP서버에 접속 파일을 가져오거나 업로드 한다.
    FTP 업로드 다운로드
HttpUtil   HTML 관련 유틸, 특문을 변환시키거나 개행문자의 변환을 담당한다.
    자주쓰는 문자열 변환등을 단순화시킨다.
CookieUtil   쿠키컨트롤
PagingUtil   페이징
    페이징계산
DownloadUtil   다운로드
    다운로드할 파일의 위치를 숨긴다.

 

허나 실제로 나와야했던건 다음과 같은 내용..

 

util.net.ftp

util.net.http

util.net.http.cookie

util.net.http.paging

util.document.xml

util.document.excel

util.document.hwp

util.string

 

이런식이였다.

이렇게 하는 이유는

각각의 유틸을 묶음으로써 interface를 사용할지 추상클래스를 사용할지에 대한 설계 디자인이 나올 수가 있다.

아무래도 좀더 체계적인 개발이 가능하겠지

인터넷을 뒤져바도 찾기힘든 지식들을 알게되는 이순간이 참 좋은것 같다.

 

 

 

Posted by 삽지리
,