본문 바로가기

Programming/JSP

(15)
[java] jsp&servlet bean spec (not ejb) 1) 반드시 인자가 없는 public 생성자가 있어야 합니다. default 생성자를 반드시 작성해주되 public 이어야 한다는 의미입니다. 2) 뒤에 동일한 단어가 뒤따라 나오는 접근자/설정자가 있어야 합니다. (foo > setFoo(), getFoo(). 만약 boolean이라면 isFoo()) 3) set의 parameter type과 get의 return type은 동일해야 합니다. ( int getFoo() , void setFoo(int foo) ) 4) 2)에서와 같이 foo라는 멤버 변수가 있다하여서 반드시 getFoo(), setFoo() 와 같은 접근자/설정자의 네이밍이 되어야할 강제는 없습니다. 멤버변수가 foo 라면 getBar(), setBar() 라고 작성해주어도 되며 내부 ..
[jsp] css, js파일을 제대로 로딩하지 못할 경우엔 동적으로 path를 잡아주세요. 지금 진행중인 프로젝트는 spring3 프레임워크로, spring mvc로 controller mapping을 하고tiles2로 view layout을 잡도록 진행중에 있습니다.그리고 javascript 공통코드는 따로 js파일을 만들어서 작업하고공통으로 적용해야하는 CSS 역시 따로 css파일을 만들어서 작업을 진행합니다. 그리고 작업의 편의를 위해서 tiles2에서 template으로 쓰이는 jsp파일(어떤 view 파일이든)에head에 공통 js, css파일들을 박아버리죠. 이러한 환경에서 처음 template 파일이 호출되는 시점에는 js, css파일을 못찾는 경우가 발생하더군요.경우의 수가 맞는지는 모르겠으나 경험적으로는메뉴카테고리 등을 클릭하여 tiles view에 definition에 기술된..
[jsp, jdbc, transaction] auto commit 예전에 스프링 공부하던 친구가 스프링의 트랜잭션관리를 보고 무척 신기하지 않냐면서스프링이 만들어준 신세계가 너무 고맙다더군요.전 친구에게 그건 sun에서 만들어준 스펙에 각 벤더가 맞춰주어서 그런거라고 얘기했죠.(사실 두리뭉실하게밖에 표현을 못하겠네요 -_-;;) 그러자 친구가 펄쩍 뛰면서 JDBC 써보기나 해봤냐며 나무라더군요.그때 전 대화가 길어지기 힘들겠다는 생각을 했습니다.jsp 책 하나만 잘 봤어도 이런 대화는 없었을텐데 말이죠. 저 밑에 링크는 jdbc auto commit에 관련된 글입니다. 이를 기준으로 어떤 persistence를 쓰던간에 spring에서 제공하는 transaction은그 persistence의 기술을 근간으로 합니다. (그게 프레임워크 의미 아닌가용...?) http:/..
tiles2는 commons-digester3 에 의존하지 않습니다!! 그 이전 버전에 의존됩니다. 아마 제목을 보시면 황당하실 겁니다.새로운 버전이 과거 버전에 대해서 지원을 못한다니????(참, 이 포스팅은...without maven 기준입니다ㅠㅠㅠ 그래서 import를 하나하나 다 해줘야해요ㅠㅠㅠㅠ) 우선 commons-digester가 하는 일은 XML파일을 파싱하여 객체화하는 데에 있다고..(bean뿐만 아니라 리스트도...ㅎㅎ)검색해보니 나오네요^^;;;(웁스!!! XML 파싱하여 객체화작업을 할 일이 있을때 매우 유용하겠는걸요?!!) 여튼 그런 역할을 하는 commons-digester에 대해서 tiles2가 의존하고 있습니다.그런데 이게 참 골때립니다.tiles2가 의존하는 녀석은 commons-digester인데http://commons.apache.org/digester/index...
JSP, javscript, etc : request에 대해서 redirect를 할 때 주의점. 우선 먼저 귀뜸하자면, jsp라고만 국한시켜놓기는 하였으나 이는 php, asp 등의server side script에서도 동일하게 적용될 것으로 생각됩니다.또한, 이 포스팅은 상세한 redirect 방법 code를 적진 않습니다^^; 그저 주의해야할 부분만 적을 따름입니다;; 예전에도 많았으나 특히나 최근에 mobile의 os에 따라서, 혹은 desktop일 경우에 대하여관련 요청을 처리하기 위해 redirect를 통해 분기를 하는 경우가 잦을 것입니다. 이때 방법은 제가 알기론 3가지정도가 있습니다.meta정보를 통해서와 javascript를 통해서, 그리고 마지막으로 server side script를 통해서이죠.meta정보는 거의 못보았고 저 역시도 안쓰기 때문에 제쳐두더라도javascript 는..
jsp : <%! %> tag instance 레벨의 java code를 뜻합니다. 메소드선언시에 사용하라고 여러 책들이 뜻하고 있으나 실제 jsp의 태그 내에 작성된 소스들은 변환된 java파일의 상단에 기술됩니다. 메소드 선언 뿐만이 아니라 인스턴스레벨에서 다루어져야하는 변수들 역시도 이곳에 기술하면 되겠습니다. (로컬변수와 인스턴스변수의 차이점에 대해 먼저 이해를 해야하겠어요~) ※ jsp 파일은 java파일로 변환시에 Servlet 파일처럼 변환됩니다. 따라서 jsp파일은 Service 메소드내에 차곡차곡 들어가게되죠. 위에서 말하는 태그는 그것과는 달리 인스턴스 레벨로 Service 메소드에 들어가지 않습니다.
jar, war, ear의 목적 우선 jar, war, ear 모두 어플리케이션 소스들을 배포할 시에 path 등의 설정에서의 에로점을 제거하기위해 탄생한 압축방식입니다. 이 압축방식 들은 압축의 해제없이 JDK에서 각 파일들을 접근하여 사용할 수 있도록 설계되어있습니다. 단위 : class < jar < war < ear java archive jar 압축은 하나의 application 기능이 가능하도록 java파일 등을 압축하고 지원해줍니다. 앞서 알려드린 대로 path 등의 경로를 유지하기 때문에 배포된 jar 파일을 사용하는 사용자들은 각 파일들에 대한 path 문제에서 벗어날 수 있습니다. 예를 든다면 ojdbc14.jar, servlet-api.jar 등을 들 수 있습니다. web archive war는 jar와 달리 웹 어..
DOM, javascript : document.getElementById().innerHTML document.getElementById() 를 이용한다면 현재 문서중 해당 Id값을 태그(element / id이므로 유일하겠죠?)에 접근하여 그것의 모든 것을 다룰 수 있습니다. (자식, 애트리뷰트 등의 모든.) 또한 innerHTML을 이용하여 태그의 자식 엘리먼트들을(?) 원하는 것으로 수정할 수 있습니다. 만약 삭제될 테이블 박스 이라는 html 태그가 있을 경우에 javascript function을 활용하여 var tb1 = document.getElementById("table1"); tb1.border='1'; tb1.innerHTML = "예제입니다."; 이라고 함수를 넣어서 호출해준다면 예제입니다. 위와 같은 결과를 볼 수 있습니다. 음............................