키자드에 등록된 총 966개의 포스트를 확인하실 수 있습니다.
application.properties 파일에 아래의 옵션을 사용합니다. logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
고혈압은 전 세계적으로 많은 사람들에게 영향을 미치는 만성 질환입니다. 음식 선택은 고혈압을 관리하는 데 중요한 역할을 합니다. 이 중 하수오는 많은 사람들에게 알려진 고혈압에 도움을 줄 수 있는 식품 중 하나입니다. 이 블로그 글에서는 하수오의 효능과 부작용, 그리고 백하수오와 적하수오의 차이에 대해 자세히 알아보겠습니다. 하수오(Hawthorn) 하수오는 식이 보충제나 차 형태로 사용되는 식물입니다. 이 식물은 오랜 기간 동안 심장 건강을 개선하는 데 사용되어 왔습니다. 하수오의 효능 혈압 조절 하수오는 혈관을 확장시켜 혈압을 낮출 수 있습니다. 심장 건강 촉진 하수오에는 항산화 물질이 풍부하며, 이는 심장 건강을 개선하는 데 도움을 줍니다. 혈류 개선 하수오는 혈액 순환을 개선하여 심장과 혈관에 영양분을 공급하는 데 도움을 줍니다. 스트레스 완화 하수오는 스트레스를 완화하고 심신 안정을 취할 수 있도록 돕는 효과가 있습니다. 하수오의 부작용 하수오는 일반적으로 안전한 식물입니다
안녕하세요! 엑셀은 데이터 처리와 분석에 있어서 귀하의 업무를 크게 향상시킬 수 있는 강력한 도구입니다. 이번 글에서는 "신속하게 데이터 정렬하기"에 대해 알려드리겠습니다. 데이터 정렬은 대용량의 데이터를 처리하고 정리하는데 매우 유용한 기능입니다. 그러니까 준비하시고 따라와 주세요! 엑셀 파일 열기 및 데이터 선택하기 먼저 엑셀 파일을 열고 정렬을 원하는 데이터를 선택합니다. 정렬할 데이터는 한 열 또는 여러 열에 포함될 수 있습니다. "정렬 및 필터" 아이콘 클릭 홈 탭의 "정렬 및 필터" 아이콘을 찾아 클릭합니다. 이 아이콘은 정렬 및 필터링 관련 기능에 액세스할 수 있도록 합니다. 정렬 대상 선택 "정렬 및 필터" 드롭다운 메뉴에서 "정렬"을 선택합니다. 이로써 데이터 정렬 설정 창이 열립니다. 정렬 기준 선택 "정렬 기준" 드롭다운 메뉴에서 정렬을 원하는 열을 선택합니다. 여러 열을 동시에 정렬하려면 "추가 정렬 기준"을 사용할 수 있습니다. 정렬 방법 선택 "정렬 기준"
1. 갈릴레오 갈릴레이가 최초로 피사의 사탑에서 중력 실험을 진행. 2. 뉴턴 '만류인력의 법칙' 발표 우리는 일반적으로 위와 같이 알고 있습니다. 하지만 실제로는 아래와 같습니다. 시몬 스테빈이 1586년 최초의 중력 실험 진행(탑에서 구슬 낙하) 갈릴레오 갈릴레이가 얼마 후 다양한 재질의 포탄과 총알을 경사로에서 굴리는 실험 진행 뉴턴 1687년 '만류인력의 법칙' 발표 그런데, 지금까지 알려진 최초의 중력 실험보다 무려 100년이나 앞서 레오나르도 다빈치가 중력실험을 진행했다고 발표되었습니다. 연구팀 논문 내용을 보면, 코덱스 아룬델’은 다빈치가 1478년~1518년 남긴 과학 관련 저작에 해당합니다. https://www.yna.co.kr/view/AKR20230218007700072 "다빈치,갈릴레오보다 100년 먼저 중력 연구"…스케치 해독 성공 | 연합뉴스 (뉴욕=연합뉴스) 고일환 특파원 = 이탈리아 르네상스 시대의 천재 레오나르도 다빈치가 인류 최초로 지구 중력을 수학
통신사에서 제공된 AI 스피커가 수명이 다했는지 요즘 말을 못 알아 들어서 "구글 네스트 허브 2세대"를 구입했어요. 이 제품을 구입하게 된 가장 큰 이유는 다른 AI 스피커와 다르게 디스플레이가 있다는 점이었어요. 인터넷에 검색해 보니 국내 정발은 너무 비싸서 해외 직구로 일본판을 약 6만 원 정도로 구매했어요. 포장을 뜯으면 이렇게 생각보다 귀엽게 생긴 기기가 들어있어요. 구글 네스트 허브 설치 해외 직구이기 때문에 돼지코를 추가로 구매하여 전원을 연결했어요. 전원을 연결하면 이렇게 일본어로 표시가 돼요. 네스트 허브를 사용하기 위해서는 아래와 같은 절차대로 진행합니다. 1. Play 스토어에서 "Google Home"을 설치 2. 기기 찾기 기능으로 Nest Hub 찾아서 연결 이렇게 연동이 끝나면 아래와 같이 자동으로 한글로 변경됩니다. 구글 네스트 사용 후기 스피커 만약 유튜브 프리미엄을 사용하고 있다면 "오케이 구글. 최신 음악 틀어줘"라고 하면 유튜브 뮤직으로 최신 음악
갑자기 어린이집 원장 선생님으로부터 장문의 메시지가 왔다. 요점은 "작년에 교사에 의해 낮잠 시간에 발생된 영아의 사고가 있었는데 그것에 대해 설명을 드리고자 한다." 어린이집에 갔더니 원장 선생님께서 무릎을 꿇으시고 고개를 숙이며 떨리는 목소리로 말씀을 하셨다. 이야기는 이랬다. 낮잠 시간에 아이가 소변을 보고 싶다고 함 선생님이 "너 쉬한지 얼마 안 됐으니까 그냥 자보자"라고 하며 아이 손목을 잡고 당김 선생님의 손톱에 아이 손목에 상처 발생 아이 엄마가 아이에게 상처가 난 이유를 듣고 어린이집에 항의 선생님 책임지고 퇴사 1년 후 이 이야기를 어디서 들은 어떤 엄마가 왜 이런 일이 있었다고 알려주지 않았냐며 원장 선생님께 전화로 항의 개인적으로는 선생님이 아이의 나쁜 버릇을 없애고자 한 것이라고 생각한다. 물론, 아이가 소변을 보고 싶다는데 왜 소변을 못 보게 하냐는 사람도 있을 수 있다. 말은 양쪽 말을 다 들어봐야 한다는데 원장 선생님의 말밖에 듣지 않았고, 정확히 어떤 일
생강 생강은 항산화물질인 징글레본과 시오닌, 적극적인 면역 반응을 촉진하는 성분인 파라다이머, 생강올레오레진 등이 풍부하게 함유돼 있습니다. 이러한 생강 성분들은 감기 및 기관지염 등 호흡기 질환 예방에 효과적이며, 면역세포 활성에도 큰 도움을 줍니다. 마늘 마늘에는 항산화물질인 알리신, 당뇨 예방에 효과적인 알리시나아제, 면역 증진에 필요한 비타민 C, 셀레늄, 아연 등의 영양소가 풍부합니다. 특히 알리신은 백혈구를 증가시켜 면역력을 높여주며, 항균 작용으로 감기 및 기타 감염성 질환 예방에도 도움을 줍니다. 브로콜리 브로콜리는 비타민 C, 카로티노이드, 셀레늄 등의 항산화물질과 함께 면역세포의 활성을 촉진하는 화합물인 그루코시놀레이트가 풍부합니다. 또한 항암 작용도 있는 이종플라볼노이드와 호흡기질환 예방에 효과적인 신나플린도 함유돼 있어 면역력 증진에 효과적입니다. 녹차 녹차에는 카테킨과 플라보노이드 같은 항산화물질과 면역세포 증가와 면역 기능을 촉진하는 아미노산인 L-테아닌 등
녹내장은 시각을 담당하는 망막을 둘러싸고 있는 눈액이 증가하여 눈안압이 높아지는 질환입니다. 이 질환은 노화, 약물 부작용, 선천적인 이유, 외상 등 다양한 원인으로 발생할 수 있습니다. 녹내장은 초기 증상이 없기 때문에 대부분이 무심코 지나치게 됩니다. 하지만, 진행되면 시력을 점차 상실하게 됩니다. 따라서 녹내장은 조기 발견하여 적절한 치료를 시행하는 것이 중요합니다. 녹내장의 원인 녹내장은 눈의 눈액의 움직임에 문제가 생겨서 눈안압이 증가함으로써 발생합니다. 눈에 있는 눈액은 일정한 압력을 유지하면서 눈안을 지탱해 주는 역할을 합니다. 그러나 눈안압이 지나치게 증가하게 되면 시신경이 손상을 입고 시력의 감퇴가 발생합니다. 녹내장의 증상 녹내장의 초기 증상은 거의 없습니다. 질병이 진행되면서 눈안압이 계속 증가하면, 시력 감소, 시야의 한쪽이 흐리게 보이는 것, 빛에 대한 민감도가 증가하는 것 등이 나타납니다. 만약 이러한 증상이 나타난다면 녹내장의 의심이 있으므로, 즉시 안과
엑셀 작업을 할 때 단축키를 익혀두면, 엑셀 작업을 더욱 효율적으로 처리할 수 있습니다. 이 중에 몇 가지는 외워서 자주 사용하시는 것이 좋고, 나머지는 필요할 때마다 참고하시면 됩니다. 앞으로 엑셀 작업을 하실 때 이 블로그 글이 도움이 되길 바랍니다. 1) 셀 선택: Ctrl + 화살표 Ctrl 키를 누른 상태에서 화살표 키를 누르면 셀을 선택할 수 있습니다. 2) 특정 범위 지정: Shift + F8 Shift 키를 누른 상태에서 F8을 누르면 특정 범위를 지정할 수 있습니다. 3) 셀 복사: Ctrl + C Ctrl 키를 누른 상태에서 C를 누르면 셀을 복사할 수 있습니다. 4) 셀 붙여넣기: Ctrl + V Ctrl 키를 누른 상태에서 V를 누르면 셀을 붙여넣을 수 있습니다. 5) 셀 삭제: Ctrl + - Ctrl 키를 누른 상태에서 -를 누르면 셀을 삭제할 수 있습니다. 6) 셀 삽입: Ctrl + Shift + + Ctrl와 Shift 키를 누른 상태에서 +를 누르면
안녕하세요! 이번에는 #시흥 #물왕저수지 근처 #이루다제면소 에 다녀왔어요 이루다 제면소 방문하실 때 제일 먼저 주의하실 점은 "이루다제면소"의 정식 명칭은 #이루다자가제면소 이고, 정식 이미지는 아래 이미지처럼 생겼어요 이루다 제면소 그래서 네비는 도착했다고 뜨는데, 간판은 #자가제면소 라고 나와서 정말 당황했어요. 또 중요한 주차장! 주차장은 손님 수 대비 공간이 부족했어요. 저는 조금 늦은 시간에 가서 대기가 없었는데 주차장 마지막 남은 자리에 주차를 했어요. 이루다제면소 가게 내부는 흔하게 볼 수 있는 일식 가게같이 목조 인테리어로 되어있어요. 이루다 제면소 주문은 자리에서 바로 할 수 있게 태블릿 같은 것이 모든 자리에 배치되어 있는데, 신기한 점은 보통 음식점은 주문만 가능한데, 이루다제면소는 카드 결제까지 가능하다는 점이에요 이루다제면소 저는 우동을 별로 좋아하지 않아서 돈가스와 소바, 그리고 치킨 가라아게를 주문했어요. 이루다제면소 소바는 흔히 먹을 수 있는 그 소바
1. java 6 / java 7 java6에는 javax.xml.bind.DatatypeConverter가 추가되었습니다. 이것은 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다. import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; public class Test { public static void main(String[] args) { byte[] message = "hello world".getBytes(StandardCharsets.UTF_8); String encoded = DatatypeConverter.printBase64Binary(message); System.out.println(encoded); // encoding result: aGVsbG8gd29ybGQ= byte [] decoded = DatatypeConverter.parseBase64Binary(en
프로그램 : Runtime.getRuntime().exec("cmd /C wkhtmltopdf " + str + "/html/111.htm?" + param + " d:/1111.pdf"); 번역 : Runtime.getRuntime().exec("cmd /C wkhtmltopdf http://192.168.10.53:/8080/WebChart2/html/111.htm?company=abcd d:/1111.pdf"); 1) Runtime은 java.lang에 포함되어 있기 때문에 따로 import를 할 필요 없다. 2) cmd 뒤의 /C는 해당 명령을 수행하고 바로 종료하라는 의미로 '반드시' 대문자 이어야 한다. 3) 프로젝트에서 서블릿으로 컨트롤러를 html에 매핑시켜 놓았기 때문에 html문서를 부르면 해당문서를 찾을수 없다고 나온다. 그렇기 때문에 htm문서를 이용하였다.
1. 계정 추가 #] adduser 계정명 #] passwd 계정명 (비밀번호 생성) 2. 계정접속 #]su 계정명 3. 루트로 복귀 #] su -
1. vnc install - #]yum –y install vnc-server - #]cd /etc/sysconfig - #]vi vncservers - 맨 아랫 부분에 VNCSERVERS=”1:root 2:사용자계정”를 저장 - (192.168.10.242의 경우 3:root 2:dev로 지정) - #]SERVICE VNCSERVER START (서비스 시작) 1:root에서 1은 스크린 번호를 의미하며, 포트번호는 5900 + 스크린번호가 된다. 2. vnc x-xindow 2.1 방법 1 - #]ls –l /root/.vnc/ - #]mv /root/.vnc/xstartup /root/.vnc/xstartup.bak - #]cp /etc/X11/xinit/xinitrc /root/.vnc/xstartup - #]ls –l /root/.vnc/ - #]/etc/init.d/vncserver restart 2.2 방법 2 (방법 1이 안될 경우)
1. 설치 1.1 #] yum –y install java-1.6.0-openjdk.i386 을 이용하여 설치하는 방법이 있고 1.2 직접 다운로드 받아 설치하는 방법이 있다. 1.3 #] java 를 통해 자바 설치 확인 2. 환경변수 설정 2.1 #]vi /etc/profile 을 입력하여 아래 코드 추가 *) 또는 계정접속 후 vi .bash_profile export JAVA_HOME=/usr/local/java export PATH=&PATH:$JAVA_HOME/bin export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar 2.2 #]source /etc/profile *)또는 source .bash_profile
1. TOMCAT 설치 - http://tomcat.apache.org에서 tomcat 다운로드<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> - tar zxvf apache* - mv apache-tomcat-버전(기존 폴더이름) /usr/local/tomcat - vi /etc/profile - export TOMCAT_HOME='/usr/local/tomcat' - export PATH=$PATH:$TOMCAT_HOME/bin - export CLASSPATH=$CLASSPATH:$TOMCAT_HOME/common/lib/jsp-api.jar:$TOMCAT_HOME/common/lib/servlet-api.jar - (생략해도 관계 없음) - startup.sh - http://localhost:8080 으로 접속해본다. (고양이 그림이 나오면 성공) 2. TOMCAT 플러그인 설치 - h
- #] vi .bash_profile (사용자 계정 profile) export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export QT_IM_MODULE=scim - #] source .bash_profile - Ctrl + space가 한글 변환키 - 최초에는 영어 / 유럽어상태이기 때문에 오른쪽 하단에서 유럽어를 한글로 바꿔준다.
- Context.xml의 <Context> 태그 안에 아래 내용 추가 <Resource name=”jdbc/postgres” auth=”Container” //postgres는 임의의 이름 type=”javax.sql.DataSource”<?xml:namespace prefix = o /> username=”test” password=”test” factory=”org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory” driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://192.168.10.241:5432/postgres” //postgres는 임의의 이름 maxActive=”8” maxIdle=”4” //숫자는 상황에 맞게 removeAbandoned=”true”/> - Web.xml의 <web-app>안에 아래 내용 추가 <resource-ref> <description>postgre
- Eclipse Servers 프로젝트의 context.xml에 아래 내용 추가 <?xml version=”1.0” encoding=”UTF-8” ?><?xml:namespace prefix = o /> <Context docBase=”test” path=”WEB-INF/프로젝트명” reloadable-“true”> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name=”jdbc/postgres” auth=”Container” type=”javax.sql.DataSource” username=”test” password=”test” factory=”org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory” driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://192.168.10.241[서버IP]:5432[포트번호]/postgr
- Inversion of Control - 개념 : 객체 간의 의존관계를 객체 내부에 선언 또는 정의하지 않고, 외부의 조립기를 이용하여 의존 관계를 설명<?xml:namespace prefix = o /> - 장점 : 테스트와 코드 수정이 용이하다. Ex] public class WriteArticleServiceImpl { private ArticleDao articleDao; public WriteArticleServiceImpl(ArticleDao articleDao) { this.articleDao = articleDao; } ... } 외부 설정 파일 (applicationContext.xml) <bean name="writeArticleService" class="com.sec.service.WriteArticleServiceImpl"> <constructor-arg><ref-bean="articleDao" /></constructor-arg> </bean> - AOP
- Help –> install new software 메뉴 선택 - Work with 항목에 URL주소 입력 n http://springide.org/updatesite n http://download.eclipse.org/technology/subversive/0.7/update-site/ n http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/ - 이후 나타나는 항목에서 한번에 다 설치하면 진행이 되지 않으므로 적당한 수의 Plug-in을 나누어 설치한다. UTF-8 기반으로 설정<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix = o /> Eclipse를 실행 후, Window -> Preference… 에 들어간다. General -> Content Ty
1 License<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1.1 GPL(General Public License) 1.1.1 의무사항 - 소스코드 배포 시 : 저작권, 보증책임이 없음, GPL로 배포된다라는 것을 표시 - 실행파일 배포 시 : 위의 의무사항을 표시, 소스코드 공개 - 수정파일 배포 시 : 위의 의무사항을 표시, 수정된 소스를 공개, 누가, 언제, 무엇을 수정 했다라는 것을 표시 1.1.2 소스코드 제공범위 - 공개 : 원본 GPL 프로그램, Work based on the Program (수정된 프로그램, Linking 관계의 프로그램) - 비공개 : Independent and Seperate Works, Mere Aggregation, 저작권자의 예외규정, GPL-Only Symbols을 access하지 않는 Loadable Kernel Module 1.1.3 소스코드
1. 주석의 구분자 중에 하나를 누락시키면 구문 오류가 발생한다. 2. 자바는 대문자와 소문자를 구별한다. 따라서 식별자에 대/소문자를 정확하게 사용하지 않으면 컴파일 오류가 생긴다. 3. public 클래스는 파일에 반드시 포함되어야 하며 포함된 파일명이 클래스 이름의 스펠링 또는 대소문자가 다르거나 .java 파일 확장자로 끝나지 않으면 오류가 발생한다.
1. 모든 프로그램의 시작 부분에는 프로그램의 목적, 작성자, 날짜, 시간을 설명하는 주석을 넣는 것이 바람직하다. 2. 빈 줄과 스페이스를 활용하면 프로그램의 가독성을 증가시킬 수 있다. 3. 관습상 클래스명은 항상 대문자로 시작하고, 이어지는 각 단어의 첫 글자도 대문자로 시작한다.
1. 변수의 정의 변수란 변하는 수라는 뜻이다. int a = 10; 위의 선언은 어떤 뜻일까? 위의 선언을 풀어 쓴다면 (1) 메모리 공간을 int 자료형만큼 할당한다. (2) 할당된 메모리 공간에 a라는 이름을 부여하겠다. (3) 그 공간에 10이라는 값을 할당하겠다 라는 의미이다. 이것을 그림으로 표현한다면 메모리 주소 : 12345(임의의 주소값) 할당된 메모리의 이름 : a 10 로 표현이 가능하다. 2. 변수명의 작성 법칙 (1) 의미를 잘 설명할 수 있는 이름을 주는 것이 좋다. (예를들어 합계의 경우 sum, 이름의 경우 name) (2) 변수명의 길이는 적당해야 한다. 여기서 적당해야 한다는 의미는 개인차가 있지만 자신에게 적당한 길이를 찾아야 한다. (3) 변수명은 영어단어를 사용하는 것이 좋다. 예를들어 합계의 경우 hap 이라는 변수를 줄수도 있겠지만 나중을 위해 영어 단어를 쓰는 버릇을 들이도록 하라.
TCPDF - 인기있는 PHP 기반의 Free open source이다.(09년 기준 약18만개의 프로젝트) - 암호화 지원 - 페이지 머리글 및 바닥글을 관리하기 위한 메소드 포함 - 여러가지 예제 지원 - License : LGPL <?xml:namespace prefix = o /> PDF Split and Merge - 여러 개의 PDF을 합치거나 기존의 PDF에서 일부를 분리해서 독립된 파일로 저장 가능 - License : GPL FreeReportBuilder - FreeQueryBuilder를 포함 - JFreeChart를 포함 - Xml 형식으로 저장하고 불러올 수 있다. - Drag&Drop 구성요소 - 머릿글, 바닥글 가능 - 중첩 보고서 가능 - License : GPL JFreeChart - Area Charts (면적도표), Bar Charts (막대그래프), Bar Charts Stacked (누적막대그래프), Combined Axis Charts, Fin
C언어에서 기본 출력함수가 printf()가 있다면 입력함수는 scanf()가 있다. 본격적인 설명에 앞서 입력의 원리를 이야기 하겠다. 우리가 입력하는 것들은 프로그램에 바로 입력된다고 생각하지만 사실은 입력버퍼에 저장이 되었다가 입력이 종료되면 버퍼에서 데이터를 꺼내 변수에 다시 저장이 된다. 이 사실을 알아두고 아래 설명을 보기를 바란다. ------------------------------------------------------------------------------------------------------------------- scanf("서식문자열", &변수 [,&변수, ...]); 위의 내용은 scanf() 함수의 기본 양식이다. printf()와는 달리 서식 문자열에는 오직 서식만 들어갈 수 있다. 예1) int input; printf("숫자를 입력하세요 : "); scanf("%d", &input); 위 예제 1번의 scanf() 함수를 보자. scan
1. 개념 객체 간의 의존 관계를 객체 내부에 선언 또는 정의하지 않고, 외부의 조립기를 이용하여 의존관계를 설명한다는 것 IoC(Inversion of Control)이라고도 함. 2. 예제 1) 직접 선언하는 방법 public class WriteArticleServiceImpl { private ArticleDao articleDao = new MysqlArticleDao(); ... } 이 방법은 손쉬운 방법이긴 하지만 단위테스트를 어렵게 만드는 단점이 있다. articleDao 멤버 필드에 mock 객체를 할당할 수 없기 때문에, WriteArticleServiceImpl 클래스를 테스트하기 위해서는 반드시 올바르게 동작하는 MysqlArticleDao 클래스가 존재해야 한다. 또 다른 단점으로는 의존하는 클래스가 변경되는 경우 코드를 변경해야 하는 문제가 있다. 예를들어 의존하는 클래스를 Mysql에서 Oracle로 변경해야 하는 경우 코드를 변경한 뒤 다시 컴파일 해야
1. bean 생성과 의존관계 설정 <bean name="writeArticleService" class="실제경로"> <constructor-arg> <ref bean="articleDao"/> </constructor-arg> </bean> <bean name="articleDao" class="실제경로"/> 스프링은 각 객체를 bean으로 관리한다. <bean> 태그는 스프링이 관리할 하나의 객체를 설정하는데 사용된다. <bean> 태그의 name속성이 bean의 이름을 의미하고, class속성이 생성될 객체의 클래스 타입이다. <constructor-arg>태그는 "writeArticleService" bean 객체를 생성할 때, 생성자에 전달할 파라미터를 명시하기 위해 사용된다. 위 코드의 경우 생성자에 "articleDao" bean 객체를 전달한다고 명시하였다. 이는 코드로는 아래와 같은 의미를 갖는다. MysqlArticleDao articleDao = new Mysq
아크로벳 리더를 사용하는 것이 좋다고 판단하여 방법을 찾아보았다. 아크로벳 리더의 클래스 아이디 : clsid:CA8A9780-280D-11CF-A24D-444553540000 다음은 간단한 샘플 소스이다. <html> <OBJECT CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" ID="PDFViewer" width="100%" style="width:500;height:400" border=1> <param name="src" value="http://localhost/573293889462d9c106b30c.pdf"> </OBJECT> </html> 이미 깔려진 아크로뱃 리더를 호출하는거라 별도의 대상 파일의 지정은 필요가 없다. src파라메터로 대상 pdf 파일의 경로를 지정하면 되는데 절대 경로도 지원이 되고 웹 상대경로도 지정이 된다. 페이지 넘김과 프린트 등의 메소드도 제공을 하고 있다. [출처] HTML 페이지에 PDF V
Preferences -> General -> Workspace에서Refresh automatically 선택 : 이클립스 밖에서 워크스페이스 파일 수정한 경우 자동으로 이클립스에서도 인식하게 함 킁... 이 방법은 auto refresh가 파일 생성 속도를 못따라온다. 따라서 학교 과제 수준의 프로젝트나 파일을 생성할 필요가 없는 프로젝트에서 적합할것 같다.
wkhtmltopdf를 사용하여 html을 pdf로 변환하려고 했는데 한글은 html의 폰트와 관계없이 동일안 글꼴로 변경되었고 영어는 한글폰트 사용시에는 한글과 마찬가지로 동일한 폰트가 되었으나 영문폰트 사용시에는 html과 같은 폰트로 변경이 되었다. 하지만 영어, 특수문자, 숫자만 변경되고 한글은 변경이 안되었다는거..... 한글은 시스템 기본 폰트를 따라가는 것인가? ------------------------------------------------------------------------------ 테스트 + 검색 결과 pdf문서는 트루타입 폰트만 적용이 가능하다. 따라서, 트루타입으로 작성되지 않은 HTML문서와 기타 다른 문서들은 pdf문서로 변환 될 때 모두 시스템 기본 트루타입 글꼴로 변환이 된다. 따라서 pdf문서의 글꼴을 다르게 주고 싶을때는 윈도우에 설치된 트루타입의 글꼴을 찾아서 그 글꼴로 바꾸어 주면 된다. 트루타입 글꼴의 확인 방법은 windows -
wkhtmltopdf http://192.168.10.53:8080/WebChart2/abcd.html?company=Jessica aaa.pdf -H --header-left leftHeader --header-right [page]/[toPage] 위와 같이 헤더를 지정해 줄 수 있다. 먼저 헤더라는 표시인 -H를 해주고 그 뒤에 세부 속성인 left와 right를 지정할 수 있다. 여기서 left를 지정하지 않으면 기본문자열이 들어가게 된다. ----------------------------------------------------------------------------------------- wkhtmltopdf http://192.168.10.53:8080/WebChart2/abcd.html?company=Jessica aaa.pdf -b --cover http://www.google.co.kr -b의 --cover 속성은 말 그대로 표지를 만들어 주지만 url주소만
1. 설치할 폰트 파일( *.ttf )을 /usr/share/fonts/korean/TrueType/에 복사한다. 2. 아래 명령을 실행한다. # mkfontscale # mkfontdir 3. 폰트를 적용하기 위해 다음 명령어를 실행한다. # fc-cache -fv 구버전에서는 윈도우용 TTF와 리눅스용 TTF가 따로 있어서 윈도우용 TTF를 리눅스에서 사용하려면 X-Window를 이용하여 한번 더 처리를 해주고 사용해야 되었던것 같은데 신버전에서는 그냥 넣고 쓰면 된다.(몰라서 개삽질..) 그런데 무조건 다 되는건 아닌것 같고 안되는 폰트도 있는 것 같다. * 윈도우는 Windows - fonts 폴더에 넣어주면 끝난다.
인터넷을 뒤져보았는데 이클립스에서 window - preferences - java - build path - classpath variables에서 추가 하라고 해서 해보았으나 org.springframework 라이브러리를 사용할수가 없어서 다른 방법을 찾은 결과 스프링 프로젝트를 생성 후에, JRE System Library에서 마우스 오른쪽 클릭 - Build Path - Configure Build Path - Add External JARs에서 추가 하니 사용 가능했다.
* lib 사용방법은 다른 게시물 참조 1. 필요한 lib commons-logging.jar ojdbc14.jar postgresql.jdbc3.jar spring.jar tomcat-dbcp.jar 2. 테스트 소스 (1) DataStuff.java (JdbcTemplate를 이용해서 처리) import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; public class DataStuff { private DataSource dataSource; private JdbcTemplate jdbcTemplate; List getNames() { return jdbcTemplate.queryForList("select * from youn"); //youn은 테이블 이름 } public DataSource getDataSource() { return dataSo
예제) /* 생략 */ public ConstructorConfusionDemo(String someValue) { System.out.println("string"); } public ConstructorConfusionDemo(int someValue) { System.out.println("int"); } /* 생략 */ 위와같은 생성자가 있을때, <bean id="constructorConfusion" class="경로"> <constructor-arg value="1"/> </bean> 이와 같은 코드를 작성하면 ConstructorConfusionDemo(String someValue) 생성자가 호출된다. 이 경우, public ConstructorConfusionDemo(int someValue)생성자를 호출하고 싶다면 <bean id="constructorConfusion" class="경로"> <constructor-arg value="1" type="int"/> <
<property> 태그를 이용하여 값을 주입할 수도 있지만 p 네임 스페이스를 사용하여 <bean> 태그 안에 직접 삽입하여 학성해야 할 코드의 양을 줄일 수 있다.
Spring이 어떤 빈을 다른 빈에 주입하도록 설정하려면 먼저 두 개의 빈을 설정해야 한다. 하나는 주입할 것이고 다른 하나는 주입을 받을 대상이다. 그렇게 한 다음, 간단히 ref 속성을 대상 빈에 사용하여 주입을 설정하면 된다. 예) <bean id="encyclopedia" class="com.apress.prospring2.ch03.di.ConfigurableEncyclopedia"> <constructor-arg> <util:map> <entry key="AgeOfUniverse" value="147"/> <entry key="ConstantOfLife" value="326"/> </util:map> </constructor-arg> </bean> <bean id="oracle" class="com.apress.prospring2.ch03.di.BookwormOracle"> <property name="encyclopedia" ref="encyclopedia"/> </bea
Spring은 BeanFactory들의 계층구조를 지원하여 한 Factory가 다른 것의 상위 Factory가 될 수 있다. BeanFactory 내포하기를 허용함으로써 설정을 여러 파일로 나눌 수 있게 한다. BeanFactory 내포하기를 할 때 Spring은 하위 Factory에 있는 Bean이 상위 Factory에 있는 빈을 참조할 수 있게 한다. 이것의 단점은 설정에서만 가능하다는 것이다. 하위 BeanFactory에서 getBean()호출로 상위 BeanFactory에 있는 빈에 접근할 수는 없다. XmlBeanFactory를 사용하여 BeanFactory 내포하기를 하는 것은 매우 간단하다. XmlBeanFactory하나를 다른 것에 전달하려면 상위 XmlBeanFactory를 자식 XmlBeanFactory의 생성자 인자로 넘겨주면 된다. 예) XmlBeanFactory parent = new XmlBeanFactory( new ClassPathResource("/ME
1. 싱글톤 1.1 상태가 없는 공유 객체 : 상태를 관리하지 않는 객체를 가지고 있고 의존 객체가 많다면 싱글톤을 사용하라. 상태가 없다면 동기화 할 필요가 없기 때문에 의존 객체가 어떤 일을 할 때 매번 새로운 인스턴스를 만들 필요가 없기 때문이다. 1.2 읽기 전용 상태를 가진 공유 객체 : 동기화 할 필요가 없기 때문에 매 요청마다 인스턴스를 생성하면 오버헤드만 증가한다. 1.3 공유 상태를 가진 공유 객체 : 상태를 반드시 공유해야 하는 빈을 가지고 있다면 싱글톤이 이상적인 선택이다. 이 때 상태 저장의 동기화는 가능한 다른 작업과 충돌 없이 독립적으로 이루어지도록 해야 한다. 1.4 쓰기 가능한 상태를 가진 처리량 많은 객체 : 애플리케이션에서 빈번하기 사용하는 빈을 가졌다면 싱글톤을 유지하고 빈에 대한 모든 쓰기 권한을 동기화 하여 더 좋은 성능을 얻을 수 있다. 2. 비싱글톤을 고려해볼만한 상황 2.1 쓰기 가능 상태를 가지고 있는 객체 : 여러 개의 쓰기 가능 상태를
초기화 Method를 사용하는 것은 bean이 적절하게 설정되었는지 확인하는 이상적인 방법이다. 초기화 Method의 유일한 제약 사항은 인자를 허용하지 않는다는 것이다. 반환 타입을 정의할 수는 있지만 Spring이 모두 무시한다. InitializingBean을 사용해서 초기화 콜백을 한번 명시하면 모든 Bean class의 인스턴스를 처리 할 수 있는 장점이 있지만 application이 spring에 결합된다. 결국 애플리케이션의 요구사항에 따라 사용하려는 접근 방법을 선택해야 한다. 이식성이 이슈라면 초기화 Method를 사용하고 application의 설정 양을 줄이거나 잘못된 설정으로 인해 에러가 발생할 여지를 줄이고 싶다면 InitializingBean Interface를 사용하라. 초기화 Method와 InitializingBean을 동일한 bean 인스턴스에 둘 다 사용할 수 있다. 이 경우 Spring은 InitializingBean.afterPropertiesS
Spring 소멸 콜백의 유일한 단점은 자동으로 동작하지 않는다는 것이다. application을 호출하기 전에 destroynigSingleton()을 반드시 호출해야 한다. application을 서블릿으로 실행할 때는 간단하게 서블릿의 destroy() method에서 destroySingletons()을 호출하면 되지만 독집적인 application에서는 그렇게 단순하지 않다. 자바는 application을 종료하기 전에 실행하는 thread로 종료 후크를 생성할 수 있게 한다. 바로 이것이 BeanFactory의 destroySingletons() method를 호출하는 완벽한 방법이다. 이 방법을 취하는 가장 쉬운 방법은 Runnable 인터페이스를 구현하는 클래스를 만들고 run() method에서 destroySingletons() method를 호출하는 것이다. 예) 종료후크 구현하기 public class ShutdownHook implements Runnable
1. 이클립스로 프로젝트를 만들 때, 상대경로로 파일을 생성하면 기본 Path인 eclipse 폴더에 파일이 생성된다. 따라서, 상대경로로 파일을 생성해야 한다. 2. spring project에서 WEB-INF폴더에는 외부에서 접근이 불가능하다. 3. 서버에 있는 jsp 파일을 실행하면 html 형식의 문서를 반환하는데 이것은 화면에 보여지기만 하는 것이다. 이것을 HttpURLConnection 클래스를 사용하여 클라이언트의 자바 프로젝트를 "웹브라우저화" 시켜 반환된 문서를 파일로 저장하였다. 여기서 "./aaa.html"이라는 문서가 있다면 이 문서의 경로는 서버에서 수행 될 때와, 클라이언트에서 수행 될 때가 다르므로 주의해야 한다. (일단, 서버 절대경로로 통일하였다.)
index.jsp에 form 태그를 사용하여 값을 전송하여 처리하는 것을 구현하였다. 최종결과는 abcd.jsp에서(view) 수행하여 abcd.html이라는 가상의 html문서에서 보여지는 방식인데 신기하게도 index.jsp를 수행하지 않고 바로 abcd.html을 호출하면 어느정도 결과가 나온다. 예를 들어 abcd.jsp에서 request.getAttribute()를 수행한다면 Attribute를 얻기 위해 이전에 수행하였어야 할 클래스와 컨트롤러 등을 수행하는 듯 하다. 그런데.... Form태그는 사용자에게 입력을 받는 부분이라 입력을 받지 않고 나머지 부분만 처리 하기 때문에 문제가 발생한다. ---------------------------------------------------------------------------------------------------------------- iText의 HtmlParser는 CSS는 적용이 안된다. ㅠㅠ wkhtmlto
젠장... 이놈의 웹환경 한글 깨짐 현상때문에 개고생 했다. 1. 한글이 깨지는 이유 1(HTML, charset, data 포멧 관련) (1) HTML : ANSI, CHARSET : UTF-8, DATA : ANSI - > HTML태그 깨짐, 한글 깨짐 (2) HTML : ANSI, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 깨짐, 한글 정상 (3) HTML : UTF-8, CHARSET : UTF-8, DATA : ANSI - > HTML태그 정상, 한글 깨짐 (4) HTML : UTF-8, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 정상, 한글 정상 (5) HTML : ANSI, CHARSET : EUC-KR, DATA : ANSI - > HTML태그 정상, 한글 깨짐 (6) HTML : ANSI, CHARSET : EUC-KR, DATA : UTF-8 - > HTML태그 정상, 한글 정상 (7) HTML : UTF
톰캣을 설치하면 기본적으로 webapps/ROOT 경로가 홈디렉토리가 된다 원하는 경로로 변경하기 위하여 conf/server.xml 을 열어 <host></host>사이에 아래와 같이 Context부분을 추가해 준후 톰캣을 리스타트 한다.. <Context path="/woowa" reloadable="true" docBase="D:\workspace\woowa" /> path 는 http://localhost:포트번호/woowa 와 같이 입력될 가상디렉토리명이라 생각하면 된다 reloadable="true" 옵션은 클래스 변경시 자동 적용 유무를 판단한다 주로 개발시는 true 운영시는 false로 한다 docBase은 컨텍스트의 물리적 경로로 절대경로로 입력하여야 한다 이외에도 많은 옵션이 있으며 http://jakarta.apache-korea.org/tomcat/tomcat-4.1-doc/config/context.html 여기에서 확인가능하다.. 본인은 단독톰캣서버를 하나
[주의사항] 톰캣 설정파일에서 한글을 사용하지 말자. (주석안의 한글고 사용하면 톰캣이 실행안된다.) TOMCAT_HOME : 톰캣 설치 디렉터리 1. 도메인으로 분류하는 방법 TOMCAT_HOME\conf\server.xml 을 열면 기본적으로 하나의 Service 엘리먼트가 있고 그 하위에 Engine 엘리먼트가, 또 그 하위에 아래와 같은 하나의 Host 엘리먼트가 있다. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> 아래와 같이 추가하려는 도메인으로 Host 엘리먼트를 하나 더 추가한다. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceA
출처 pride FC to Dream|어린나무 스크랩된 글은 재스크랩이 불가능합니다.
먼저 다음 페이지 이동 특성들을 미리 알아볼 필요가 있습니다 JSP에서는 페이지 이동시 다음 4가지 정도의 방법이 있습니다 ① JavaScript를 이용 window.open, location.href, location.replace 등을 이용할수 있습니다 login_process.jsp <% if (a == null) { %> <script>location.href = "admin.jsp"; </script> <% } else { %> <script>alert('권한이 없어요!'); window.history.back(); </script> <% } %> 특징적인부분은 브라우져의 주소창이 변경되며 (이말은 즉슨 클라이언트가 다시 admin.jsp를 서버에 요청한다는 말입니다) login_process.jsp 에서 jsp가 다 실행되고 브라우져에 out put된 html 및 javascript들만으로 실행된 코드들이라는 것입니다 ② response.sendRedirect를 이용 lo
//chart 한글 처리 //title chart.getTitle().setFont(new Font("HYGSRB", Font.BOLD, 20)); //범례 chart.getLegend().setItemFont(new Font("HYGSRB", Font.BOLD, 10)); CategoryPlot plot = (CategoryPlot)chart.getPlot(); Font labelFont = null; //x축 제목 한글처리 labelFont = plot.getDomainAxis().getLabelFont(); plot.getDomainAxis().setLabelFont(new Font("HYGSRB", labelFont.getStyle(), labelFont.getSize())); //y축 제목 한글처리 labelFont = plot.getRangeAxis().getLabelFont(); plot.getRangeAxis().setLabelFont(new Font("HYGSRB",
Integer str1 = Integer.parseInt(lst.valueList().get(1).toString());
createBarChart createAreaChart createBarChart3D createLineChart createLineChart3D createStackedAreaChart createStackedBarChart3D
테두리의 코더값은 아래와 같이 radius값으로 지정해 줄 수 있다. border-radius:값; ex ) border-radius:20px; -webkit-border-radius:20px; <- for webkit -moz-border-radius: 20px; <- for firefox 각각 지정해 주려면 다음과 같이 하면 된다. CSS3 Mozilla WebKit border-top-right-radius -moz-border-radius-topright -webkit-border-top-right-radius border-bottom-right-radius -moz-border-radius-bottomright -webkit-border-bottom-right-radius border-bottom-left-radius -moz-border-radius-bottomleft -webkit-border-bottom-left-radius border-top-left-radius -
wkhtmltopdf "http://192.168.10.53:8080/WebChart2/a bcd.html?company=%EC%82%B0%EC%A0%84&select=1" d:/WebChart2_files/WebContent/pdf/ 1111.pdf -b --cover "http://192.168.10.53:8080/WebChart2/cover.html?company=%EC% 82%B0%EC%A0%84&select=1" -t --toc-l2-font-size 12 --header-html "http://192.1 68.10.53:8080/WebChart2/header.html?company=%EC%82%B0%EC%A0%84&select=1" --fo oter-html "http://192.168.10.53:8080/WebChart2/footer.html?company=%EC%82%B0%EC% A0%84&select=1" --header-spacing 2 --footer-spacin
.pageBreak { page-break-before:always; } 위와 같이 스타일을 지정하면 지정된 부분에 사용하면 페이지가 넘어간다. 즉, html->pdf문서로 변환할 때, 일종의 출력을 하는 것이기 때문에 다음페이지로 넘어가는 것을 확인할 수 있다. h1 태그에 pageBreak를 걸어주면 h1태그가 나올때마다 다음 페이지로 넘어간다.
이런... wkhtmltopdf의 toc속성과 css의 page-break가 중복되지 않는다. toc로 만들어진 북마크(페이지 내 링크)가 다 깨져버린다. pdftk로 pdf문서를 합쳐보았는데 문서 자체는 잘 합쳐지지만 북마크는 다 깨진다. 공식 홈페이지에서 보니 북마크를 쓰려면 adobe acrobat을 쓰란다. =ㅁ=
1. 들여쓰기 text-indent: 20px; 2. 밑줄 없애기 a:link { text-decoration:none; color:black; } a:visited { text-decoration:none; color:black; } a:hover { text-decoration:none; color:black; }
출처] http://youngrok.com/wiki/wiki.php/%C0%DA%B9%D9%C0%A5%C7%C1%B7%CE%B1%D7%B7%A1%B8%D3%C0%C7%B1%E2%BA%BB 1. web.xml 배치 서술자(deployment descriptor)라고 부르는 web.xml은 웹 프로젝트를 구성하는데 있어 필수적이면서 웹 애플리케이션의 동작을 여러 가지로 조정하는 역할을 한다. 스트러츠를 사용하는 경우도 스트러츠를 사용하기 위한 설정은 web.xml에 하게 되는데 그 설정들이 무슨 의미를 가지고 있는지 정도는 상식으로 알아두는 것이 좋을 것이다. 다음의 실제 스트러츠 설정 예제를 보자. <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name>
http://www.jakartaproject.com/ http://java.sun.com/dtd/web-app_2_3.dtd <!-- The web-app element is the root of the deployment descriptor for a web application. --> <!ELEMENT web-app (icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*, env-entry*, ejb-ref*, e
출처 ] http://www.jakartaproject.com/ 특정내용을 html로 다운로드 하실꺼면 다음과 같이 해보세요 <%@ page contentType="text/html" %> <% response.setHeader("Content-Disposition", "attachment; filename=\"test.dat\""); out.println("<font color=red>특정내용</font>"); %> filename에 들어갈 이름은 다운로드 파일 이름입니다
JSP에서는 여러 JSP 페이지에서 공통적으로 포함하는 내용이 있을 때, 이러한 내용을 매번 입력하지 않고 저장해 두었다가 필요한 JSP 페이지 내에 삽입할 수 있는 기능을 제공한다. 이때 공통적으로 포함될 내용을 가진 파일을 해당 JSP 페이지 내에 삽입하는 기능을 제공하는 것이 include 디렉티브이다. <%@ include file="로컬URL" %> include 디렉티브의 처리과정은 정적이라고 할 수가 있다. include 디렉티브를 사용한 JSP 페이지가 컴파일 되는 과정에서 include되는 JSP 페이지의 소스 내용을 그대로 포함해서 컴파일을 하게 된다.
jsp를 사용해서 쪽번호를 사용했을 경우 쪽번호가 자기 마음대로 붙는 (랜덤) 사태가 발생하였다. Thread문제인가 하여 동기화 해본다고 설쳤지만 결국 실패했는데 <html><head><script> function subst() { var vars={}; var x=document.location.search.substring(1).split('&'); for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);} var x=['frompage','topage','page','webpage','section','subsection','subsubsection']; for(var i in x) { var y = document.getElementsByClassName(x[i]); for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]]; } } </script></he
equals 메소드는 객체가 가지고 있는 내용이 같은가를 비교하기 위한 메소드이고, ==는 기본 데이터 타입의 변수일 때는 두 변수의 값이 같은가를 비교하며, 레퍼런스 타입의 변수일 때는 두 객체가 같은 객체인가를 비교하는 비교 연산자이다. ex) 여기서 s, s1, s2는 모두 레퍼런스 타입의 변수이다. String s = "연습"; String s1 = "연습"; String s2 = new String( "연습"); if(s == s1) //true if(s.equals(s1)) // true if(s==s2) // false String은 문자열 클래스 객체이기 때문에 ==을 사용하면 값을 비교하는게 아니라 같은 객체인가를 비교한다.
1. request : 클라이언트의 요청 정보를 저장하고 있는 객체 2. response : 클라이언트의 요청에 대한 응답 정보를 저장하고 있는 객체 3. out : JSP 페이지에 출력할 내용을 가지고 있는 출력 스트림 객체 4. session : 세션 정보를 저장하고 있는 객체 5. application : 웹 어플리케이션 Context정보를 저장하고 있는 객체 6. pageContext : JSP 페이지에 대한 정보를 저장하고 있는 객체 7. page : JSP 페이지를 구현한 자바 클래스 객체 8. config : JSP 페이지에 대한 설정정보를 저장하고 있는 객체 9. exception : JSP 페이지에서 예외가 발생되면 사용되는 객체 자바의 스크립트 요소에서는 내장 객체명과 같은 이름으로 변수를 선언할 수 없다. 만약 내장 객체명과 동일한 이름으로 변수를 스크립트 요소에서 선언을 하면 에러가 발생한다.
1. include 액션 태그(<jsp:include>) <jsp:include>액션 태그는 include 디렉티브 (<%@ include%>)와 함께 다른 페이지를 현재 페이지에 포함시킬 수 있는 기능을 가지고 있다. include 디렉티브는 단순하게 소스의 내용이 텍스트로 포함되지만 <jsp:include> 액션 태그는 페이지의 처리 결과를 포함시킨다는 점이 다르다. 이때 포함되는 페이지는 HTML, JSP, Servlet 등 모두 가능하다. 또한, include 디렉티브는 주로 조각 코드를 삽입할 때 사용되고, <jsp:include> 액션 태그는 페이지를 모듈화할 떄 사용된다. 즉, 템플릿 페이지를 작성할 때 사용된다. 1.1 사용법 <jsp:include page="페이지" flush="false"/> 1.2 처리과정(a.jsp가 b.jsp를 include) 1.2.1 웹 브라우저가 a.jsp 페이지를 웹 서버에 요청한다. 1.2.2 서버는 요청받은 a.jsp페이지를 처리하
출처 : http://forums.sun.com/thread.jspa?threadID=486791 This topic has 6 replies on 1 page. E-mail this Topic Watch this topic dare_devil Posts:1 Registered: 1/30/04 .JasperException: This absolute uri (http://java.sun.com/jstl/core) cannot 2004. 1. 30 ?? 3:07 <FORM action="post!reply.jspa"><INPUT type="hidden" value="2279057" name="messageID"> <INPUT class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" type=submit value="Reply »"></FORM> Hi, try to r
실제 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 이 코드에서 에러가 나는데, 두가지 경우가 있다고 한다. 1. jstl.jar, standard.jar를 추가시켜 주지 않았거나 2. 이클립스가 jar 파일을 인식하지 못했거나 후자의 경우는 이클립스에서 clean을 살포시 눌러주고 rebuild하면 된다.
프로젝트에서 war 파일을 만들 수 있는데 이것을 tomcat으로 배포 할때 그냥 tomcat 폴더에 넣으면 되는 것이 아니다. conf 폴더에서 tomcat-user.xml 파일에보면 <role rolename="tomcat"/> ...... 이라는 부분이 주석처리가 되어있는데 주석을 해제하고 <user name="username" password="비밀번호" roles="권한이름(manager)" /> 를 추가한 후에 tomcat의 index.jsp에 접속하면 왼쪽 상단에 tomcat manager를 누를 후에 로그인을 하면 하단에 WAR file to deploy가 있는데 여기에 추가한 후에 접속하면 잘 된다.
postgreSQL을 윈도우에 설치 할때는 그냥 설치하면 되는데 유저, db추가등이 문제이다. 한참 헤딩하다가 탐색기에서 리눅스 설치때와 동일하게 postgres.conf, pg_hba.conf인가? 두개의 파일을 메모장으로 열어서 등록해주었는데 외부에서 접속은 잘 되는데 빌어먹을 localhost가 안먹는다 =ㅁ= 나랑 싸우자는건가? 그리고 외부에서 접근을 하려면 방화벽에서 postgres에 설정한 포트를 풀어줘야 한다. 톰켓도 마찬가지
출처 : http://pcandme.net/51 Java 6로 프로그래밍 시, 컴파일러에서 다음과 같은 워닝을 낼 때의 조치법이다. Type safety: Unchecked cast from Object to ~~~ 물결 표시가 들어간 자리에는 'ArrayList'와 같은 자바 컬렉션 프레임워크의 멤버가 들어간다. 워닝이 나는 라인 바로 위에 다음과 같은 어노테이션을 삽입한다. @SuppressWarnings("unchecked") 위 어노테이션은 경고 억제 어노테이션으로, 비확인 경고(unchecked warning)을 제거해 준다. 구글링한 결과, 위 워닝은 실행에 아무런 영향을 미치지 않으며, 대부분의 자바 프로그래머들이 외부 링크로 첨부된 음악, 동영상은 재생이 지원되지 않습니다. '무시해도 좋은' 워닝으로 생각하는 것으로 결론 지었다. 본인의 경우, Object 클래스 객체를 ArrayList<String> 객체로 형변환하려다 위와 같은 비확인 경고를 발생시키게 되어 위 어
웹으로 접속 하였을 경우 C:\ 으로 시작하는 물리 주소로는 접근이 불가능하다. 반면에 웹 프로젝트에서 파일을 생성할 경우에는 http://로 시작하는 웹 주소로 생성이 불가능하다. 이클립스로 개발을 하다보니 ./ 으로 시작하는 경로는 eclipse 폴더 밑으로 들어가 버리고 서버에 올리면 톰켓 폴더 밑으로 들어가 버린다. 그래서 경로 오차로 파일 create와 load가 안된다. 어디에서 실행을 해도 잘 되게 하는 방법을 찾다가 getServletContext().getRealPath("/") 라는 것을 찾았다. 이것은 현재 실행중인 프로젝트의 ROOT 경로를 반환한다. 따라서 new File(getServletContext().getRealPath("/") + "abcd/1234.jpg" .. ); 과 같이 생성하면 유기적으로 파일 생성이 가능하다. 참고로 이클립스 같은 경우에는 위와 같이 파일을 생성할 경우 경로가 좀 바뀌는데 워크스페이스\.metadata\.plugins\or
Windows Xp에서 Postgresql 설치 시, 마지막 부분에 Service 등록에서 에러가 나면서 롤백되어 버리는 경우가 있다. 이 경우는 대부분 Windows의 사용자 계정을 추가하는 것으로 해결할 수 있다. 기존 사용자 계정 삭제 1. 시작 > 실행 > 프롬프트 창을 연다. 2. net user 입력해서 postgres 계정이 있는지 확인. 3. 있다면 net user /delete postgres 입력해서 삭제. 사용자 계정 추가 1. net user postgres 비밀번호 /add 2. net user 입력해서 추가된 계정 확인 서비스 제어 권한 부여 1. 제어판 > 관리도구 > 로컬 보안 설정 창 열기 2. 보안설정 > 로컬 정책 > 사용자 권한 할당 > 서비스로 로그온에 postgres 계정 추가 postgres 계정의 폴더권한 부여 1. 탐색기 > 도구 > 폴더옵션 > 보기 2. "모든 사용자에게 동일한 폴더 공유 권한을 지정"에 첵크되어 있지 않을 경우 3.
Runtime.getRuntime().exec() 를 사용해 개발하다보니 WaitFor 실행시 Hang이 걸리고 진행되지 않는 현상이 있었다. 그래서 구글신께 문의해 본 결과 해결방법이 있는 곳을 찾았다. 출처 : http://eshurion.egloos.com/ 부지런히 손품을 팔아 찾아보니 윈도우(는 cmd로 도스창을 띄우고 작업하므로)에서는 화면상에 출력되는 내용이 모조리 버퍼로 들어가기 때문에 버퍼가 차버리면 그냥 그대로 프로세스가 멈추어 버리는 현상이 있다고 한다. 아직 리눅스/유닉스에서는 실행해보지 않았지만 그쪽은 괜찮다고 하는데... 이를 해결하기 위해 버퍼를 비워주는 메소드가 별도로 필요하다. 국내외를 다 다녀본 결과 대부분이 아래와 같은 클래스를 만들어 사용하고 있다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStrea
JSP에서 다른 컨텐츠(다른 페이지)를 포함하는 방법은 3가지이다. 두가지는 다른 게시물에 존재하고 나머지 한가지는 <c:import> JSTL 태그이다. 사용법 : <c:import url="주소" /> <jsp:include> 태그도 가능하지만 <c:import url="주소"> <c:param name="변수명" value="값"/> </c:import> 와 같이 사용 가능하고 iframe이나 기타 다른 곳에 포함할때 비슷하게 사용할 수 있다. ex ) 테스트 소스 <iframe id="content_frame" name="contentframe" src="<c:url value="reportindex_right.jsp"> <c:param name="company" value="${param.company }"/> <c:param name="select" value="${param.select }"/> </c:url>" width="100%" height="480" frameb
JSP에서는 request.setCharacterEncoding("UTF-8"); JSTL에서는 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 을 추가해 준 후에 <fmt:requestEncoding value="UTF-8"/>
<%@ attribute name="변수명" required="true" rtexprvalue="true" %> 1. required : 속성의 옵션 여부 - true를 사용하면 옵션이 아니라는 의미 2. rtexprvalue : true의 의미는 문자열도 도리 수 있고, 표현식도 가능하다는 말
JspWriter - out HttpServletRequest - request HttpServletResponse - response HttpSession - session ServletContext - application ServletConfig - config JspException - exception PageContext - pageContext Object - page
자바 또는 서블릿에서 Query를 수행하여 ResultSet을 반환하고 싶어 방법을 찾아보았다. 수많은 웹 페이지를 돌아다녀봤지만 ResultSet을 반환하는게 아니라 모두 ResultSet의 데이터를 담아두는 클래스 리스트(ArrayList<클래스>) 를 만들어 반환하는 것이었다. 왜 그런지 직접 테스트 해본결과 커넥션 풀을 사용하여 DB에 접속 했을 경우 자동으로 ResultSet과 Connection 객체 등이 close되지 않아 수동으로 close 해줘야 하는데 값을 넘겨주는게 아닌, 객체를 넘겨주는 것이기 때문에 넘겨주고 close를 해도 원본 객체가 close되어 받은 객체가 값을 읽어올 수 없었다. 그래서 결국 클래스를 만들어 list를 넘겨주는 방식으로 코드를 수정하였다.
request 객체에서 ArrayList<클래스> 형식으로 파일을 리턴해준 것을 EL로 받을때, ex) 넘겨줄때 : request.setAttribute("array", 리스트객체); 받을때 : ${array} 와 같이 받을때, forEach를 쓰지 않고 출력할때 조심해야 한다. 리스트이기 때문에 array.변수명 과 같이 써주면 에러가 나고 array[0].변수명 과 같이 인덱스를 확실히 해줘야 한다.
1. <jsp:param>을 이용한 방법 1.1 태그 호출 <jsp:include page="jsp 이름"> <jsp:param name="subTitle" value="파라미터 값"/> </jsp:include> 1.2 파라미터 사용 &{param.subTitle} * subTitle은 파라미터 이름 2. 태그 속성을 이용한 방법 2.1 사용자 정의 태그를 사용하겠다는 선언 <%@ tablib prefix="myTags" tagdir="/WEB-INF/tags" %> 2.2 태그 호출 <myTag:Header subTitle="파라미터 값"/> * Header는 Header.tag 에서 확장자를 제외한 이름을 쓴 것임 2.3 파라미터 사용 선언 지시자 <%@ attribute name="subTitle" required="true" rtexprvalue="true" %> 2.4 파라미터 사용 ${subTitle}
<sql:query var="rs_site" dataSource="jdbc/postgres"> select site_id from esm_site_agent group by site_id order by site_id </sql:query> <ul id="browser"> <c:forEach var="rows_site" items="${rs_site.rows}"> <li><span class="folder">${rows_site.site_id}</span> <sql:query var="rs_agent" dataSource="jdbc/postgres"> select agent_id from esm_site_agent where site_id=? <sql:param>${rows_site.site_id}</sql:param> </sql:query> <ul> <c:forEach var="rows_agent" items="${rs_agent.rows}"> <li><span class="fil
<SCRIPT LANGUAGE="JavaScript"> <!-- $(document).ready(function(){ $("#browser").treeview(); }); </SCRIPT> <table> <tr> <td> <ul id="browser"> ....... </td> </tr> <tr> <td> <ul id="browser"> ...... </td> </tr> </table> 과 같이 한 문서에 테이블 형식으로 ul 태그를 써서 tree를 사용하려 했으나 한문서에는 하나밖에 적용되지 않았다. 그래서 <table> <tr> <td> <iframe> </td> </tr> <tr> <td> <iframe> </td> </tr> </table> 이렇게 각 문서에 따로 tree를 구현하여 iframe으로 박았다.
1. Install A. Download : http://sourceforge.net/projects/fckeditor/files/FCKeditor.Java/ i. Fckeditor-java-core-버전.jar 1. 실행시 필요한 라이브러리 파일을 제외한 코어 부분 ii. Fckeditor-java-2.4.1-bin.zip(or tar.gz) 1. 실행시 필요한 라이브러리 파일을 포함한 패키지 2. 다음 lib 파일을 포함하고 있다. A. Commons-fileupload-버전.jar B. Commons-io-버전.jar C. Slf4j-api-버전.jar B. Fckeditor-java-버전/java-demo/src/main/webapp/FCKeditor 폴더를 웹 프로젝트의 WebContent안에 집어넣는다. C. fckeditor-java-2.6\java-core\src\main\resources\META-INF/FCKeditor.tld파일을 WEB-INF에 복사 2. CON
출처 일상으로의 초대|좋은생각 스크랩된 글은 재스크랩이 불가능합니다.
BigDecimal(숫자).setScale(반올림할 자리수, 올림/버림/반올림 타입) ex) BigDecimal(25.1234).setScale(2, BigDecimal.ROUND_UP) 결과 : 25.12
오라클의 rownum 과 비슷한 기능 limit 그리고 limit 와 같이 사용하여 어디서부터 결과 값을 가져올지 정하는 것. 예제) select * from test_db where key = '1' limit 1000 offset 100; 설명) test_db 에서 key 가 1인 데이타를 100번째 로우부터 1000 개를 가져올것.
입력상자가 하나만 있을 경우, 엔터키를 누르면 강제로 Submit 되어버린다. 엔터를 눌렀을 때, submit을 막을 방법은 1. 보이지 않게 text박스를 하나 더 만든다. <input type="text" name="aaa" style="display:none;"> 2. javascript를 통한 강제 제어 <input type="text" name="bbb" onkeydown='javascript_:{ if(event.keyCode==13) event.returnValue=false;}'> 3. form 자체에서 차단 <form onkeypress="return event.keyCode != 13;"> 4. jquery로 차단 $(document).on('keypress', 'form', function(e) { return e.keyCode != 13; }); 또는 <form onsubmit="return false;">
$("#gridList").jqGrid({ //ajaxGridOptions : {type:"POST"}, //serializeGridData : function(postdata) { //page = postdata.page; //return postdata; //}, url: 'string.jsp', datatype: "json", height:400, //높이 //width:300, autowidth: true, //자동 width 설정 colNames:['ID', 'Name', 'Date'], colModel:[ {name:'addin_id', index:'addin_id', width:30, align:"center", key:true, editable:false }, {name:'addin_name', index:'addin_name', width:170, align:"center", editable:false}, {name:'reg_date', index:'reg_date'
자바스크립트(JavaScript)에서는 다음의 함수들로, HTML 페이지 주소를 인코딩/디코딩합니다. encodeURI() / decodeURI() 최소한의 문자만 인코딩합니다. ; / ? : @ & = + $ , - _ . ! ~ * ' ( ) # 이런 문자는 인코딩하지 않습니다. http:// ... 등은 그대로 나옵니다. encodeURIComponent() / decodeURIComponent() 알파벳과 숫자 Alphanumeric Characters 외의, 대부분의 문자를 모두 인코딩합니다. http:// ... 가 http%3A%2F%2F 로 됩니다. escape() / unescape() 예 전부터 있던 오래된 함수입니다. encodeURI() 와 encodeURIComponent() 의 중간 정도의 범위로 문자를 인코딩합니다. [출처] 한글주소(URL)인코딩(encode, Encoding), 자바스크립트(JavaScript)|작성자 좋은생각
private static StringBuilder htmlReader(String filename) { BufferedReader bufferedReader; InputStreamReader inputStreamReader; FileInputStream fileInputStream; StringBuilder builder = null; String htmlFileName = filename; try { fileInputStream = new FileInputStream(htmlFileName); inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); bufferedReader = new BufferedReader(inputStreamReader); builder = new StringBuilder(); String temp = null; while ((temp = bufferedReader.readLine()) !
File dir = new File(realPath + "report/pdf/"); if(!dir.isDirectory()){ System.out.println( "폴더 생성"); dir.mkdirs(); } request.getSession().getServletContext().getRealPath(""); 혹은 getServletContext().getRealPath("/"); 등으로 실제 서버의 경로를 구할 수 있다.
combobox를 적용하면 버튼이 생기는데 그 버튼을 누르면 목록 펼치기가 되는것은 좋은데 기본 옵션이 submit이라 페이지가 재 호출 되어버린다. 이 현상을 막으려면 $("<button> </button>") <-- 이 부분을 찾아서 조금만 더 내려가면 input.focus(); 가 있는데 바로 밑에 return false; 를 추가해주면 된다.
java에는 trim함수가 없어서 만들어 써야 한다. String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; var abc = " abc "; abc.trim(); document.frm.text.value.trim()