Category Archives: Lang

프로그래밍 언어

JSTL에서 세션 값을 가져올 때 세션명에 점(dot)이 들어가 있을 경우?

By | 4월 12, 2012

점(dot)은 EL에서 getter 역할을 하는 연산자이므로 다음과 같이 사용하자 >, < !! (참고 : 아래 예문에서 .language는 해당 객체가 가진 속성이다.) ${sessionScope[“org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE”].language} * 참고 – 위의 값을 JSTL의 변수(var)로 선언하고 싶을 때는? => 따옴표를 escape! <c:set var=”localeLanguage” value=”${sessionScope[\”org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE\”].language}”/>    

현재 JSP 페이지의 경로(path) 얻어오기

By | 4월 9, 2012

* 일단 JSP를 WebContent(혹은 webapp) 하위에 바로 넣는 경우는 거의 없고    대개 WEB-INF 하위로 숨긴다고 볼 때, 다음의 방법을 조합하여 얻어올 수 있을 것 같다. 1. root ~ WebContent 까지의 경로      어떻게든얻어온 ServletContext.getRealPath(“/”); 2. WEB-INF ~ JSP까지의 경로    어떻게든얻어온 ServletConfig.getServletName();

jsp의 커스텀태그(custom tag) 작성 관련

By | 4월 9, 2012

* tld 파일 예제     <?xml version=”1.0″ encoding=”UTF-8″?>     <taglib xmlns=”http://java.sun.com/xml/ns/j2ee”     xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”     xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd” version=”2.0″>     <tlib-version>1.2</tlib-version>      <uri>frameone</uri>            <tag>        <description>포맷에 맞게 날짜를 표시한다.</description>        <name>dateFmt</name>        <tag-class>xx.xxx.xxxxx.DateFormatTag</tag-class>        <body-content>empty</body-content>        <attribute>            <name>infmt</name>        … Read More »

java.net.URLEncoder.encode()로 인코딩한 문자열을 javascript에서 변환할 때 space(공백)가 +로 바뀌는 것에 대한 해결

By | 4월 6, 2012

예전에는 공백문자의 인코딩(URI encoding)결과가 “%20″(맞나?) 이었다고 하는데현재는 공백문자의 인코딩결과가 “+” 로 표준이 변경된 것 같다. java 내부적으로는 디코딩이 잘 될지 몰라도 자바스크립트에는 아직 “+” 로 바뀐 표준을 지원하지 않는 것처럼 보여서, 그냥 +를 공백문자로 relace(치환)하는 코드를 추가했다. value = decodeURIComponent(value || ”).replace(/\+/g, ‘ ‘);

[펌글] 자바스크립트 call()과 apply()의 차이점

By | 4월 5, 2012

세부적인 차이점은 잘 모르겠고 -_-; 가장 큰 차이점은 call()은 호출시 인수를 명시적으로 나열해 주어야 하고, apply()는 호출시 arguments와 같은 인수배열 하나를 받는다는 점이다. 그래서 공통작업 할 때 apply()가 좋아 >,. < !! * 참고링크 call()과 apply()에서 변경되는 this의 의미 call() apply()    

getRequestDispatcher().forward() 이후 IllegalStateException 에 대하여

By | 4월 4, 2012

실험적으로 얻은 지식에 의하면, getRequestDispatcher().forward() 가 실행되어도, 바로 그 시점에 리턴되는 것이 아니라forward() 작업과는 비동기적으로, 그 이후의 코드도 끝까지 실행되는 것으로 보인다. 그런데 문제는 그 이후의 코드에서 response를 write 하는 등의 코드가 존재하면IllegalStateException 이 발생한다는 것이다. 그러므로 getRequestDispatcher().forward() 이후에 return 을 붙이는 것이, 안전하면서도 내가 원하는 결과를 얻을 수 있는 패턴이라는 생각이 든다. * 참고링크      http://www.xyzws.com/Servletfaq/does-the-requestdispatcherforward-include-method-return/15   http://www.coderanch.com/t/360595/Servlets/java/RequestDispatcher-forward-method-returns-asynchronously

[펌글] ServletRequest의 getRequestDispatcher()와 ServletContext의 getRequestDispatcher()의 다른 점.

By | 4월 4, 2012

– 출처 : http://www.theserverside.com/news/thread.tss?thread_id=28471 –     The servletRequest’s getRequestDispatcher() can take a relative path while    ServletContext’s getRequestDispatcher() can not(can only take relative to the     current context’s root).     For example      with ServletContext both        -> request.getRequestDispatcher(“./jsp/jsppage.jsp”) – evaluated relative to the path of the request        ->… Read More »

jQuery ajax 호출시 http헤더(header)에 사용자정의 값을 셋팅하는 방법

By | 4월 3, 2012

1. 정적 셋팅     jQuery ajax option의 headers 속성에 {key:value} javascript object를 정의한다. 2. 동적 셋팅     jQuery ajax option으로 beforeSend() 이벤트 핸들러를 정의하고 그 내용에     setRequestHeader(key, value) 함수를 사용하여 원하는 header 값을 설정한다.    이 설정은 정적 셋팅을 오버라이딩한다.

서블릿에서 클라이언트 IP 얻어오기

By | 4월 3, 2012

* 네트워크장비 구성에 따라서 취해야 하는 헤더명이 다르므로 완벽한 코드는 아니다.     HttpServletRequest hReq = (HttpServletRequest)request;     String cltAddr = hReq.getHeader(“X-Forwarded-For”);    if(cltAddr == null || cltAddr.equals(“”)) {     cltAddr = hReq.getHeader(“Proxy-Client-IP”);     if(cltAddr == null || cltAddr.equals(“”)) {     cltAddr = request.getRemoteAddr();     }    }     * 참고링크    http://whitebear.tistory.com/80

[펌글] 자바스크립트(javascript)에서 arguments (인수의 배열)를 다른 함수로 그대로 넘겨서 실행하기

By | 3월 30, 2012

– 출처 : http://stackoverflow.com/questions/3914557/passing-arguments-forward-to-another-javascript-function –  * 개요 a()함수의 인수를 그대로 b함수로 넘기며 실행하되, b()함수의 인수의 갯수가 가변적일 경우에도 대응할 수 있도록  arguments 배열을 사용한다. function a(arg1, arg2, arg3){ b.apply(this, arguments); } function b(arg1, arg2, arg3){ alert(“arg1:”+arg1+”, arg2:”+arg2+”, arg3:”+arg3); } a(‘Jin’, ‘Nina’, ‘Paul’);   //테스트! * 응용 arguments 는 (객체)배열이므로 잘라내거나 병합할 수 있다. 응용해 보자!

자바스크립트 reset() 함수가 동작하지 않는다?!?!!

By | 3월 28, 2012

분명히 문법을 정확히 입력했음에도 왠지 javascript의 reset() 함수가 동작하지 않았었다. 왜일까…? 구글링을 해 보니  “reset() 함수는 폼엘리먼트의 내용을 비우는 것이 아니라 페이지 로딩시의 초기값으로 돌리는 기능을 한다”  라고 나와있었다. 그냥 싹 비우는 건 줄 알았는데 아니었어. >, <  결국 나름대로 제대로 동작하고 있던 것이었다.