보안관련 점검을 하다가 스로스사이트 스크립트 문제가 있어서 형태의 공격을 막을 일이 생겼습니다. JSP에서 단순하게 등의 기호만 치환문자로 변경을 하여 서버단으로 넘기지는 않고 간단히 해결 하려고 했는데 한가지 문제가 생기더군요. 로컬에서 컴파일 1.5, 1.4등에서 테스트를 할 때에는 아무런 문제가 안생기다가 서버에 올리기만 하면 오류가 생겼습니다. jdk 1.4 버전 이하에서의 replace 사용 결론 부터 말씀드리자면 제공 되는 replace 함수나 replaceAll 등은 전부 문제가 생겨서 함수 자체를 만들어서 사용하기로 하였습니다. 왜 안되는지 확인하기에 귀찮아서 잘 되는걸로 그냥 사용을 하게 되었네요. 저와 비슷한 사례가 보여서 여기에서 제공된 replace함수를 jsp에 생성을 해서 적용을..
이번에는 자바에서 이미지 파일의 사이즈를 알아보는 방법을 알아보도록 하겠습니다. 이미지의 크기를 파악해서 게시물 업로드를 할때 썸네일 이미지를 생성한다던지 파일 사이즈를 줄일때 사용하면 좋겠네요. 자바 이미지사이즈 알아보는 방법 안내 그럼 첫번째로 아래 방법이 있습니다. Image img = newImageIcon(이미지경로).getImage(); System.out.println( img.getWidth(null)); System.out.println( img.getHeigt(null)); try{ File file = newFile(이미지경로); BufferedImage bi = ImageIO.read( file ); System.out.println( bi.getWidth() + “,” + bi.g..
개발도중 컴파일된 파일의 컴파일 버전이 필요한 경우가 있습니다. 서버에 올려진 클래스파일과 로컬에서 작업한 클래스파일 버전이 달라서 서버 재가동중에 오류를 뿜는 경우가 종종 있습니다. 로컬에서 작업한 소스는 컴파일 버전을 이클리스같은 툴에서 바로 확인할 수 있는데, 서버에 올려진 컴파일된 클래스 파일은 도저히 확인할 길이 없죠. 서버의 자바 버전으로 추측만 할 수 있지만 정봑한 방법은 아닙니다. 서버에서 클래스파일을 다운 받습니다. 그리고 아래 명령어를 실행해주세요 javap -verbose 파일명(.class제외) | find "version" 파일명을 임의로 1로 바꿔서 테스트해 보았습니다. major version 은 0 으로 minor version 이 46으로 표기 되어 있습니다. 그럼, 아래표..
1. 자바를 시작하시는 분들께 2. 기초환경 구축 3. 변수명선언 숫자형 문자형 프로그램을 실행하는데 있어서 값을 담아서 다시 내어 쓰는건 아주중요한 작업입니다. JAVA 뿐만 아니라 어떤 언어에서든 메모리에 값을 가지고 있다가 다시 꺼내어 쓰는 일을 계속 하고 있는데, 사용하지도 않는 메모리를 너무 크게 잡고 있으면 메모리용량이 부족해서 실행하는데 무척 오래걸리거나 제대로 실행이 되지를 않습니다. 따라서 그 크기에 따라 변수선언을 해주고 있습니다. 변수란 무엇일까요? 이름 그대로 값이 변하는 메모리상의 지정된 값입니다. JAVA에서는 이런 변수를 여러가지로 구분을 해 놓았습니다. 메모리의 낭비를 줄여서 사용할 수 있게 말이죠. 기본적으로 문자형과 숫자형을 말씀드릴께요. 우선은 쉬운것부터 살펴보도록 하겠..
1. 자바를 시작하시는 분들께 2. 기초환경 구축 JAVA로된 실행환경 설정을 하려면 JDK를 설치하고, 환경변수설정을 한뒤 컴파일할 수 있는 변환툴이 필요합니다. 실무에서는 대표적으로 이클립스를 가장많이 쓰고 있으며, 텍스트에디터로서는 Edit Plus, Sublime Text, Ultra Edit 등 여러 가지가 있습니다. 이클립스는 간단한 자바컴파일을 하기에는 무거우니 Edit Plus 로 앞으로의 강의를 진행하겠습니다. 참고포스팅 : 에디터플러스 컴파일 환경설정 우선 Hello.java 파일을 생성해주세요. class Hello{ public static void main(String[] args){ System.out.println("Hello World"); } } java파일을 생성하면 꼭 ..
날자 출력에 관한 예제 입니다. java.util 의 Calendar 클래스를 사용합니다. 년 월 일 입니다. 현재시각은 시 분 초 입니다. 간단한 거지만 날짜가 필요 할때 참고하세요. 참고로today.get(Calendar.DAY_OF_WEEK)으로 1~ 7까지 값을 리턴 받을 수 있으며 1은 '일',.... 7은 '토' 입니다. today.get(Calendar.AM_PM) 은 0과 1을 반환하며0이 '오전', 1이 '오후' 입니다.