본문 바로가기

분류 전체보기487

textarea로 입력 받은 글을 공백과 줄바꿈을 살려 출력하기 HTML에디터가 아닌 일반 textarea 로 입력 받은 글을 페이지에 출력해야 할 경우가 많이 있습니다. 출력시에는 보통 JSP 라면 형태로 출력합니다. 이 경우 html 태그들은 escape 되어서 태그가 화면에 그대로 보여지게 됩니다. 이것은 XSS(Cross Site Scripting)를 방지 하기 위한 방법이기도 합니다. 하지만, 그냥 출력하게 되면 컨텐츠의 모든 라인이 하나의 행으로 붙어서 출력이 되어서 보기 힘들게 됩니다. textarea로 입력한 문자열을 개행하여 보여주는 방법을 알아보겠습니다. 1. 출력에도 textarea를 사용하기 출력할 때도 textarea에 출력하는게 가장 간편한 방법입니다. 2. 서비스 단에서 또는 프레젠테이션 단에서 개행문자(\n)을 로 치환하는 방법 이 경우 .. 2018. 8. 7.
스프링프레임워크 <form:form> 태그 사용법 스프링프레임워크의 JSP 기술중에 form taglib 가 있습니다. form 태그라이브러리를 사용하면 HTML 폼에 데이터를 바인딩하거나 에러메세지 처리등을 간편하게 할 수 있습니다. 스프링프레임워크 form 태그라이브러리를 사용하기 위해서는 먼저 다음 taglib 설정을 페이지 상단에 추가합니다. 1. 옵션 없이 사용했을 경우 기본값 호출 URL이 /offbyone/boardForm.do 라고 가정하고, 옵션 없이 사용한 경우 form 태그: 결과 HTML: - id 속성은 "command" 가 기본값입니다.- action 속성은 자기 페이지의 URL 입니다.- method는 POST가 기본입니다 2. commandName과 modelAttribute 옵션 commandName 과 modelAttri.. 2018. 8. 5.
프로토콜에 상대적인 URL 지정하기 8월말부터 티스토리에 SSL이 적용된다고 하네요. 블로그 주소가 https://offbyone.tistory.com 으로 바뀔 경우 대비해야할 내용으로 외부리소스(javascript, image, css)의 주소가 http://로 시작하는 주소로 하드코딩되어 있는경우 변경이 필요하다는 내용이 공지 되어 있었습니다. 만약 외부 리소스가 http:// 로 시작하는 URL로 되어 있다면 어떻게 될까요? IE 라면 다음과 같은 오류가 뜨게 됩니다. "보안컨텐츠만 표시합니다." 라는 메세지를 내고 http://로 시작하는 자원은 표시를 하지 않게 됩니다. "모든 컨텐츠 표시"를 클릭하면 그때 모든 자원을 표시하게 됩니다. 외부자원을 사용하는 것이 있을때 먼저 확인해야 할것은 이 외부자원이 https 를 지원하는지.. 2018. 8. 1.
Windows 10의 IIS에 개발용 SSL설정과 IE에 인증서 설치하기 IIS(Internet Information Services)에는 개발용으로 사용할 수 있는 SSL 인증서가 포함되어 있습니다. IIS관리자에서 컴퓨터를 클릭하면 가운데 화면에서 서버 인증서를 확인할 수 있습니다. 서버인증서를 더블 클릭하면 기존의 인증서를 확인할 수 있습니다. 만료일이 2022년 10월이고, 발급대상이 localhost인 IIS Express Development Certificate가 있는 것을 확인할 수 있습니다 이미 인증서가 있으므로 이것을 이용해서 SSL을 사용할 수 있도록 설정을 해보겠습니다. - Default Web Site를 선택하고 화면 오른쪽 위쪽의 "바인딩..."을 클릭합니다.- 사이트 바인딩 창에서 추가를 누릅니다.- 사이트 바인딩 추가 창에서 종류에 https 를 .. 2018. 7. 28.
Windows 10에서 Tomcat과 IIS 연동하기 개발 및 테스트용으로 Windows 10 64bit에 IIS와 Tomcat을 설치하고 연동을 해보겠습니다. IIS와 Tomcat을 연동한다는 말은 웹서버로 IIS를 사용하고, Servlet/Jsp 에 대한 요청은 Tomcat이 처리하도록 한다는 뜻입니다. Tomcat도 내부에 HTTP 서버 기능이 있지만 보통 운영시에는 IIS나 Apache 같은 웹서버를 앞단에 두어 정적 데이터는 웹서버가 처리하고 동적 데이터의 처리는 Tomcat이 담당하도록 많이 구성합니다. 이때 IIS에 ISAPI(Internet Server Application Programming Interface) 확장 모듈을 사용해서 특정 URL 또는 특정 확장자(*.jsp, *.do)에 대한 요청이 오면 Tomcat으로 요청을 돌리도록 설.. 2018. 7. 26.
Windows 10에 Tomcat 설치하기 개발 및 테스트용으로 Windows 10 64bit 운영체제에 Tomcat을 서비스로 설치하는 방법을 알아보겠습니다. Tomcat 은 자바 실행환경이 있어야 하므로 JRE 가 설치되어 있어야 합니다. 1. JDK를 설치합니다. 설치는 다음글을 참조하세요. "윈도우에 JDK 8 설치하기" JDK를 설치하면 JRE도 같이 설치가 됩니다. 설치할 JDK의 버전은 7이상이면 되겠습니다. 2. Tomcat을 다운로드 받습니다. Tomcat의 현재 최신 버전은 9이지만 여기서는 8을 설치해보겠습니다. Tomcat의 공식 사이트는 http://tomcat.apache.org입니다. 왼쪽 Download 메뉴에서 Tomcat 8을 클릭합니다. Tomcat 8.5.32 버전이 현재 8버전대의 최상위이네요. 다운로드 페이.. 2018. 7. 25.
JSP에서 지시자(Directive) 또는 태그라이브러리에 의한 공백 라인을 제거하는 방법 JSP 페이지에서 지시자와 태그라이브러리를 사용하면 최종 출력 HTML에 지시자 또는 태그가 사용된곳에 빈줄이 삽입되어서 페이지 소스를 보기 어렵게 하고, 페이지 용량도 늘어납니다. JSP 2.1에서 부터는 이 공백을 제거할 수 있는 방법을 제공해 줍니다. 1. page 지시자의 속성으로 trimDirectiveWhitespaces="true" 를 삽입합니다. page 지시자의 다른 속성들과 같이 사용할 수도 있습니다. 이 방식은 trimDirectiveWhitespaces 속성을 사용한 페이지에만 적용이 됩니다. 만약 include 되는 페이지가 있을 경우 각각의 페이지에 별도로 적용을 해야만 합니다. include되는 페이지에 적용을 하지 않는다면 그 include되는 부분만 공백이 나올 것입니다. .. 2018. 7. 24.
JSTL - <c:url> 태그 사용법 태그는 URL에 자동으로 Context Path 를 붙여주는 일을 합니다. 컨텍스트를 변경하더라도 URL을 수정할 필요가 없게 되는 것입니다. 이 태그는 jstl core 태그에 포함되어 있으므로 을 사용하려면 다음 tablib 지시자를 페이지 상단에 포함하여야 합니다. 일반적인 사용법을 다음과 같습니다. 웹애플리케이션의 컨텍스트 패스가 http://도메인/site/ 로 되어 있다면 위의 코드는 출력시 아래와 같이 변환됩니다. 태그를 사용할 때 생성된 URL의 끝에 jsessionid 가 붙을 경우를 주의해야 합니다. 컨텍스트 패스가 추가가 되므로 대부분의 경우 아래의 코드는 잘 동작합니다. 하지만 서버 설정에 때라 세션 아이디가 URL에 붙는 경우가 있습니다. 이런경우 위 코드는 출력이 다음과 같에 만.. 2018. 7. 20.
MySQL(MariaDB) 서버 타임존 설정하기 Java에서 MySQL 서버에 연결하니 다음과 같은 에러가 발생하였습니다. ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (The server time zone value xxxxx is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone conf.. 2018. 7. 17.
Oracle 원하는 기간의 날짜 데이터 만들기 일자별로 일정을 저장하는 테이블을 가정해봅시다. 일정이 있는 날의 데이터만 저장되어 있습니다. 이제 이 데이터를 달력이나 일주일씩 화면에 표시하는 방법을 생각해 보겠습니다. 두 가지 방법이 있을 수 있겠습니다. 첫 번째는 데이터베이스에서 원하는 월 또는 주 기간의 데이터를 조회합니다. 프로그램으로 기간 동안의 날짜 데이터 리스트를 만듭니다. 리스트를 루핑하면서 그 날짜에 데이터베이스에서 조회한 데이터가 있는지 다시 루핑하면 체크하여 데이터가 있으면 출력합니다. 두 번째는 데이터베이스에서 데이터를 만들때 원하는 기간의 날짜를 모두 만든 다음에 일정 테이블에 조인하여 결과를 만드는 것입니다. 일정이 있는날과 일정이 없는날 모두 데이터가 만들어지고 프로그램에서는 루핑하면서 출력하면 됩니다. 두 번째 방법을 사.. 2018. 7. 14.
오라클 에러 ORA-00984: 열을 사용할 수 없습니다 쿼리 도중 "ORA-00984: 열을 사용할 수 없습니다" 라는 에러를 만났습니다. 입력문을 실행 도중 발생한 에러 입니다. 쿼리를 추출해서 sqldeveloper에서 실행해 보았습니다. 명령의 1 행에서 시작하는 중 오류 발생 - INSERT ... VALUES (...,SYDATE) 오류 발생 명령행: 1 열: 323 오류 보고 - SQL 오류: ORA-00984: 열을 사용할 수 없습니다 00984. 00000 - "column not allowed here" *Cause: *Action: 원래 에러메세지들은 친절하지 않지만 번역된 에러 메세지로 이해가 힘들었던것 같습니다. "열을 사용할 수 없습니다"의 원문은 "column not allowed here" 입니다. "열이 여기에 올 수 없습니다" .. 2018. 7. 12.
Grep Console 사용해서 원하는 로그만 골라보기 - Grep View 앞에서 Grep Console을 설치하고 간단히 사용하는 방법을 알아보았습니다. 이번에는 콘솔로 나오는 로그중 원하는 패턴을 선택하여 스타일을 주고, 원하는 형태의 로그만 모아서 보는 방법을 알아보겠습니다. 예제를 위해서 System.out.println() 으로 디버깅 정보를 출력하고, 이 디버깅 정보는 "[System.out]" 이라는 문자열을 prefix 로 붙였습니다. System.out.println("[System.out] " + "userIP = " + userIp); 쏟아지는 로그 속에서 원하는 정보를 찾기가 쉽지 않습니다. 이제 원하는 로그에 스타일을 부여하거나 Grep Console 플러그인의 Grep View를 사용해서 골라볼 수 있게 해보겠습니다. 1. 로그의 [System.out].. 2018. 7. 5.
이클립스 콘솔(Console) 간단 사용법 이클립스를 사용해서 프로그래밍을 할때 디버깅 정보는 Console에 출력됩니다. 표준 출력이나 표준 에러 채널로의 출력을 보여주는 것입니다. 이클립스 콘솔 사용중에 선택할 수 있는 몇가지 기능을 알아보겠습니다. (Clear Console) - 콘솔의 내용을 지웁니다. 콘솔의 내용이 너무 많아 찾기 힘들때 지우고 실행하면 편리합니다.(Scroll Lock) - 콘솔에 로그가 출력될때 콘솔이 자동 스크롤될지 토글 합니다. (Word Wrap) - 콘솔에 출력되는 로그가 너무 길때 줄바꿈을 해서 가로 스크롤 없이 볼 수 있습니다.(Show Console When Standard output Changes) - 표준 출력에 로그가 나오면 콘솔을 보여줍니다.(Show Console When Standard err.. 2018. 7. 4.
Open JDK 9 와 이클립스 설치하기 Oracle JDK 유료 라이센스로 말이 많은것 같습니다. Open JDK 9 와 이클립스를 설치해서 테스트 해봤습니다. 개발 환경으로는 별 문제가 없을 것 같았습니다. Open JDK 10 버전도 배포되고 있었습니다. 설치 방법을 알아보겠습니다. 1. Open JDK 9의 윈도우즈용 바이너리를 다운 받습니다. http://jdk.java.net/java-se-ri/9 2. Open JDK 9 설치 압축 파일(jdk-9+181_windows-x64_ri.zip)로 제공 되고 있으므로 압축을 풀어 적당한 곳에 옮겨두면 됩니다. 여기서는 D:\util\java\jdk-9 로 설치했습니다. 3. 이클립스를 다운로드 받습니다. PHOTON 버전이 나왔네요. 설치본은 Oracle JDK 가 없으면 설치가 안되는것.. 2018. 6. 30.
새창을 여는 window.open() 함수 사용법 웹브라우저에서 새창을 열기 위해서 가장 간단히 사용할 수 있는 방법이 자바스크립트 window 객체의 open() 함수를 사용하는 것입니다. 1. 문법(Syntax) var ret = window.open(url, name, specs, replace); 1.1. 반환값(ret) 새로 만들어진 창 객체가 반환됩니다. 창의 생성에 실패하면 null을 반환합니다. 이 객체를 통해서 새창을 제어할 수 있습니다. 예로 ret.close(); 로 창을 닫을 수 있습니다. 1.2. url 새창에 보여질 주소 입니다. 선택적인 값으로 비워두면 빈창(about:blank)이 보입니다. 1.3. name 새로 열릴 참의 속성 또는 창의 이름을 지정합니다. 선택적인 값으로 기본값은 "_blank" 입니다. 사용 가능한 값.. 2018. 6. 27.