MVC 패턴에서의 컨트롤러(Controller Layer)의 역할은 무엇일까?
– 화면 입력값 유효성 검사 – 화면 입력값 형태 가공 및 변환 – 서비스 호출 결과를 화면에 출력해 주기 위한 데이터 가공 및 변환, 바인딩 … 생각 나는대로 계속 나열해 보자~
– 화면 입력값 유효성 검사 – 화면 입력값 형태 가공 및 변환 – 서비스 호출 결과를 화면에 출력해 주기 위한 데이터 가공 및 변환, 바인딩 … 생각 나는대로 계속 나열해 보자~
public class NumberUtility { private static final Log LOG = LogFactory.getLog(NumberUtility.class); public static final BigDecimal INT_MIN_IN_BIGDECIMAL = new BigDecimal(Integer.MIN_VALUE); public static final BigDecimal INT_MAX_IN_BIGDECIMAL = new BigDecimal(Integer.MAX_VALUE); public static final BigDecimal LONG_MIN_IN_BIGDECIMAL = new BigDecimal(Long.MIN_VALUE); public static final BigDecimal LONG_MAX_IN_BIGDECIMAL = new BigDecimal(Long.MAX_VALUE); /** * 생성 금지 */ private NumberUtility(){} /** * Object를… Read More »
javascript object를 query string으로 변환해 주는 jQuery의 $.param() 함수 사용중, 값이 배열인 데이터를 query string으로 변환할 때 파라미터명 뒤에 “[]” 문자열이 붙는 현상이 있었다. 이 때, $.param() 함수의 두 번째 인수로 true 값을 주니 이 현상을 해결할 수 있었다. (ex: var qryStr = $.param(jsonObj, true); )
* JBoss 기동시 java vm option에 아래의 항목을 추가한다. (ex: env.properties에) org.apache.catalina.JSESSIONID=세션아이디명 * 웹서버가 존재할 경우 workers.properties 에 아래의 항목을 추가한다. worker.워커명.session_cookie=세션아이디명 (워커명은 uriworkermap.properties 에 정의된 이름이다.)
http://bluemind.kr/story/31
import java.sql.Timestamp; import java.text.SimpleDateFormat; long time = 1419260400000L; SimpleDateFormat mmddFormat = new SimpleDateFormat(“MM/dd”); String mmdd = mmddFormat.format(new Timestamp(time));
파라미터를 보낼 때 URLEncoder.encode()를 수행하지 않았거나, 파라미터를 받을 때 URLDecoder.decode()를 두 번 호출하지 않는지 점검해 보자.
@QueryParam 어노테이션(annotation)은 Web Service Interface 의 메서드 매개변수에만 정의해야 한다. 구현체 클래스(ex: Controller)의 메서드 매개변수에도 사용하면, 알 수 없는 URL맵핑에러 같은 것을 발생시킨다. (컴파일 타임에는 에러를 발생시키지 않음)
http://subokim.wordpress.com/2013/04/12/prevent-burnout/
1. 어노테이션 인터페이스 작성 @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.TYPE, ElementType.METHOD}) //클래스 혹은 메서드에 어노테이션 적용 public @interface SslCheck { boolean isBlock() default false; //어노테이션에 인수를 입력받아 활용하고 싶을 경우 메서드 정의 } 2. HandlerInterceptorAdapter를 상속받은 인터셉터 클래스를 작성하면서 어노테이션을 활용 public class SslCheckInterceptor extends HandlerInterceptorAdapter { //주로 preHandle()에 로직을 작성할 것이다. @Override public… Read More »
만약 ViewResolver로서 UrlBasedViewResolver를 상속받은 ViewResolver를 사용하고 있다면, ViewResolver의 xml 정의에 아래와 같이 redirectHttp10Compatible 멤버를 false로 셋팅해 주면 된다. <bean class=”org.springframework.web.servlet.view.UrlBasedViewResolver” id=”tilesViewResolver”> <property name=”viewClass” value=”org.springframework.web.servlet.view.tiles3.TilesView” /> <property name=”redirectHttp10Compatible” value=”false” /> </bean>
– 출처: http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery – javascript replace() 함수의 두 번째 인수로 함수를 넣을 수 있다는 것을 처음 알았다. ^ㅁ^; var entityMap = { “&”: “&”, “<“: “<”, “>”: “>”, ‘”‘: ‘"’, “‘”: ”’, “/”: ‘/’ }; function escapeHtml(string) { return String(string).replace(/[&<>”‘\/]/g, function (s) { return entityMap[s]; }); }
* Promise 객체 – Promise 객체는 $o.promise()로 생성하거나 $.when()의 인수로 넣어질 경우 생성된다. – Promise 객체가 되면 객체에서 일어나는 일들을 모니터링하여, 이벤트가 종료되면 done()을 호출한다. (ex: fadeOut())
실제로 이 경우는, jboss 서버가 죽지는 않았지만, Eclipse에 설치된 jboos tool이 서버가 죽었다고 판단하는 것이다. 보통의 경우에는 이 경우가 발생하지 않는데, 발생하는 경우는 주로 설정파일(ex: standalone.xml)을 수정했을 경우이다. 내 경우에는, 원래 설정 파일(ex: standalone.xml)에 로컬서버의 IP가 localhost (혹은 127.0.0.1)로 되어 있는 것을, 내 로컬PC의 공인IP로 바꾸었을 경우에 발생하였다. (어차피 같은 장비이지만 다르게 인식하는 것… Read More »
유튜브(YouTube) 동영상을 다운로드(download) 하기 위해서, 이런 저런 프로그램, 브라우저 확장프로그램 다 설치해 보았으나 여기만한 데가 없더라 >, < !! * 주의! 다운로드 화면에서 Download with accelerator and get recommendation offers 체크박스가 보인다면, 원하지 않는 프로그램을 설치하게 될 수도 있으니, 체크하지 않도록 하자!
@echo off for /F “usebackq tokens=1,2 delims==” %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if ‘.%%i.’==’.LocalDateTime.’ set ldt=%%j set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6% => 2012-06-19 10:23:47.048 의 형식으로 할 경우 set ldt=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%%ldt:~8,2%%ldt:~10,2%%ldt:~12,2% => 20120619102347 의 형식으로 할 경우 RENAME C:\aaa\standalone.xml standalone_%ldt%.xml
<if test=”@org.apache.commons.lang3.StringUtils@isNotEmpty(str)”> AND DEL_YN = ‘Y’ /* 조건절 샘플 */ </if>
톰캣으로 개발을 하다보면 서버를 재기동했음에도 불구하고, 사용자 세션이 살아 있는 것에 놀라는 경우가 있다. 이는 톰캣에서 제공하는 session persistence 라는 기능 때문인데 (7.0 버전 기준), 이 기능을 disable 시키는 방법을 적어 본다. (굳이 disable 해야 할 필요가 있겠냐마는 -_-…) 톰캣의 context.xml 을 보면, 아래의 항목이 기본적으로 주석처리 되어 있는 것을 볼 수 있는데,… Read More »
방법 1) 정적 자원 로딩(import) url 뒤에 버전을 나타내는 구분자 붙이기. * 브라우저가 1분 이상 정적 자원들을 캐싱하지 못하도록 막고 싶을 경우, 공통 heaer jsp 파일 소스코드 예시 <% request.setAttribute(“buildVer”, DateUtil.getCurrentDate(“yyyyMMddHHmm”)); //현재일시의 DateFormat을 리턴해 주는 사용자정의 메서드 getCurrentDate()가 있다고 치자. %> <script src=”${contextPath}/js/common.js?${buildVer}”></script> 나머지 방법들은 기회가 되면… … Read More »
하려고 하는 작업 특정 문자열에서 메타문자 {WRAP}{/WRAP}로 감싸진 숫자를 찾아서 마스킹 처리를 하고 {WRAP}{/WRAP} 메타문자는 삭제하고 싶다. String dtl = "블라블라 {WRAP}123456{/WRAP} 어쩌구 저쩌구 {WRAP}987654{/WRAP} 마무으리 등등등…"; Matcher matcher = Pattern.compile("\\{WRAP\\}(\\d*)\\{/WRAP\\}"); // grouping을 하나 한 것에 주목 StringBuffer sb = new StringBuffer(); while(matcher.find()){ // 계속해서 결과를 찾아간다. //문자열 맨 앞에서부터 sb에 붙여나가면서 치환 처리까지 수행한다.… Read More »