jsp 파일중에 65535 byte가 넘는 큰 파일들이 있다. 이 파일들을 읽으려고 할때 설정이 없으면 오류가 발생한다. org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [100] in the generated java file: [big_jsp.java] The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit 대략 이런 오류이다. 소스의 길이가 엄청 길다는 말이다. 이것을 근본적으로 해결하려면 하나의 큰 jsp 파일을 include를 통해서 여러개로..
앞서 다음과 같이 EhCache를 사용하는 방법과 설정하는 방법에 대해 살펴보았다. Springboot + Ehcache 초간단 설정 및 사용방법 cache는 거의 변경될 여지가 없는 DB 조회 결과값을 메모리 혹은 디스크에 보관하고 있다가 다시 호출되었을때는 DB 조회를 하지 않고 메모리에 있는 결과값을 그대로 쓰고 싶을때 사용한다. 많은 oingdaddy.tistory.com EhCache xml config를 java config로 변환하기 spring의 version이 올라가면서 모든 설정은 java config로 하기를 권장하고 있다. 이에 따라서 관련된 글도 포스팅도 여러개 했었다. Spring 설정 Xml Config에서 Java Config로 바꾸는 방법 (요령) spring 프로.. oi..
spring의 version이 올라가면서 모든 설정은 java config로 하기를 권장하고 있다. 이에 따라서 관련된 글도 포스팅도 여러개 했었다. Spring 설정 Xml Config에서 Java Config로 바꾸는 방법 (요령) spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml spring 프로젝트에서 springboot 프로젝.. oingdaddy.tistory.com spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config spr..
XSS(Cross-site Scripting)는 서버단에서도 방어가 되어야 하지만 화면단에서도 방어가 필요하다. 다음과 같이 JavaScript 메소드를 활용함으로써 간단히 XSS 방어를 할 수 있다. function XSSCheck(str, level) { if (level == undefined || level == 0) { str = str.replace(/\|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); } else if (level != undefined && level == 1) { str = str.replace(/\/g, ">"); } return str; } XSS 방어를 적용해야 하는 문자열이 있다면 이것을 XSSCheck를 태워서 "" (빈 문자열)로 치환을 해주는 방식..
몇년전만 해도 기본 DataType으로 Map과 VO가 혼재되어 사용하고 있었는데 점차 VO로 굳혀져 가고 있는듯하다. 서비스당 VO도 하나씩만 작성해서 사용하면 참 좋겠지만 계층간 아키텍처를 명확하게 하기 위해 DTO(data transfer object)와 Entity로 구분을 해서 사용을 한다. DTO는 프로세스간의 데이터를 전달하는 객체이고 Entity는 Persistent 영역과의 통신을 위해 사용되는 객체라고 생각하면 된다. 즉 화면에서 보낸 요청에 실린 Parameter를 DTO에 담아서 계층간 이동을 하고 쿼리에 바인딩될때, 쿼리로부터 결과를 받은것은 Entity에 담는다. 이를 또 응답으로 주기 위해서 값을 DTO로 변환을 하여 담는다. 이를 위해 DTO -> Entity, Entity ..
Base64란? 컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. - 참조 : 위키백과 JAVA 8부터는 표준 API로 Base64 기능을 제공한다. java.util.Base64 유틸리티를 통해 사용할 수 있다. public class Base64EncodingTest { public static void main(String[] args) { String flatText = "oing is pretty"; String urlSample = "http://www.naver.com"; //===== en..
Mobile기기에서 접속을 했는지 PC에서 접속을 했는지에 따라 화면을 달리 보여줘야 하는 상황이 있다. 이럴 경우 여러가지 방법이 있지만 JAVA 단에서 할수 있는 가장 간단한 방법에 대해서 기술하고자 한다. private static final String IS_MOBILE = "MOBI"; private static final String IS_PC = "PC"; public static String isDevice(HttpServletRequest req) { String userAgent = req.getHeader("User-Agent").toUpperCase(); if(userAgent.indexOf(IS_MOBILE) > -1) { return IS_MOBILE; } else { retur..
엑셀을 업로드할때 다음과 같은 오류가 발생하는 경우가 있다. [ERROR][com.oingdaddy.ExcelUploader.excelUploader:line116] - Excel import exception : Invalid header signature; read 0x736146202D2D213C, expected 0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2 document, {} org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature; read 0x736146202D2D213C, expected 0xE11AB1A1E011CFD0 - Your fil..