728x90
반응형

전체 글 890

EL 함수 사용하기

EL 표현에서도 함수(메소드)를 사용할 수 있다. EL에서 메소드를 사용하기 위해서는 다음과 같은 순서를 따라 작성해야 한다. 1. 정적인 공용 메소드를 제공하는 클래스를 만든다. 해당 메소드는 EL(JSP)에서 사용할 메소드이므로 반드시 정적인 공용 메소드여야 하며, 리턴 타입이 있어야 한다. 그래야지 JSP에서 브라우져에 내용을 그릴 수 있다. 2. 태그 라이브러리 서술자 파일을 만든다. EL 함수를 사용하기 위해서는 TLD(Tag Library Descriptor)란 파일로 자바 클래스, 메소드와 EL에서 호출할 메소드 명을 맵핑해야 한다. 3. JSP에 taglib 지시자를 코딩한다. 4. 함수를 호출하는 EL을 작성한다. 위 형식대로 EL을 작성해 보면 아래 처럼 작성할 수 있다. * DiceR..

Java/Servlet & JSP 2009.02.13

EL 사용하기

프로퍼티의 프로퍼티를 스크립틀릿이나 표준액션으로만 표현하기가 어렵거나 아예 불가능한 경우가 있다. 즉 다음과 같은 서블릿 코드를 스크립틀릿이나 표준액션으로 표현하려고 하면 다음과 같이 표현할 수 밖에 없을 것이다. public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { foo.Person p = new foo.Person(); p.setName("Evan"); foo.Dog dog = new foo.Dog(); dog.setName("spike"); p.setDog(dog); request.setAttribute("person", p); RequestDi..

Java/Servlet & JSP 2009.02.12

표준 액션을 사용한 JSP

"자바 빈을 이용해서 특정 객체의 값을 가져와 보여주는 소스는 아래와 같은 형식으로 jsp에서 사용할 수 있다. Person is : jsp내에서 스크립틀릿을 없애기 위해 나온 것이 표준 액션이므로 스크립틀릿을 없애는 방법으로 표현하자면 아래와 같이 할 수 있다. Person created by servlet : 위에서 id로 지정한 것을 아래 getProperty에서 name으로 가져다 쓸 수 있다. property의 name은 자바빈의 getter, setter에서 사용하는 값이다. 즉 name은 getName()과 같은 기능을 하게 되는 것이다. class는 패키지 명까지 다 써야한다. getProperty가 있다면 당연히 setProperty도 있다. setProperty는 다음과 같이 사용할 수..

Java/Servlet & JSP 2009.02.11

오늘 하루의 시작이...

왠지 이상하군요... 아침에 버스 뒷좌석 가운데 앉고 좌우 창가로 학생 둘이 앉아 있었는데, 왠 동네 양아치 같은 사람이 오더니 내 좌측에 앉는 겁니다. 5명이 앉는 자리에 내 좌측에 2명, 우측에 한명 앉으니 총 4명이 앉았는데 이 양아치 같은놈이 한다는 소리가 형씨 좀 넓게 앉읍시다 라고 하더만요 -.-;; 뭐 양아치랑 말싸움 해 봐야 득될것도 없고 그냥 넓게 앉아서 4명이서 앉아 갔습니다. 그놈의 양아치는 아주 다리를 쭥 벌려서 건드릴려면 건드려 봐라는 식으로 굴더군요 -.-;; 우째든 중간쯤 가다 보니 어떤 아주머니가 와서 그 좁은 좌석에 가운데 앉겠다고 좀 비켜 달라네요 -.-;; 뭐 어쩔 수 없이 이번에는 오른쪽으로 붙었습니다. 저와 그 양아치 사이에 아주머니가 앉게 된 것이죠. 아주머니 양아..

인생이야기 2009.02.11

JSP 초기화 하기

ServletConfig를 web.xml에 정의해 두고 나서 서블릿에서 가져다 쓰는 방법에 대해 http://www.4te.co.kr/540 에서 다루었었다. JSP에서도 마찬가지로 초기화를 통해서 web.xml에 있는 ServletConfig를 변수처럼 사용할 수 있다. 방법은 서블릿 생명 주기에서 가장 처음에 한번만 호출하는 메소드인 jspInit() 메소드를 오버라이드 해서 사용하면 되는 것이다. 사용 방법은 아래와 같다. MyTestInit /TestInit.jsp email ikickedbutt@wickedlysmart.com MyTestInit /TestInit.jsp 위와 같이 설정을 하면 된다. 다만 servlet-class가 아니라 jsp-file 이라는 태그를 사용하게 되며, 패키지 형..

Java/Servlet & JSP 2009.02.10

배틀 하다가 다리 아래로 떨어졌네요 ^^;;

다리에서 밀려 떨어지는 중... 첨에는 물로 떨어지다가 결국엔 잔디밭(?)이 나오는 군요 ^^;; 앞서가는 차량을 멀리서 멍 하니 처다 보기만 할 뿐 -.-;;;;;;; 아무 생각없이 앞으로 달려가니 다시 도로 위로 올라가네요. 그나 저나 너무나도 차량 스펙이 좋고, 잘 달리는 사람들이 많아서 배틀 하기가 여간 힘든게 아니네요 ㅎ

스크립틀릿에서 변수 선언하기

다음과 같이 jsp를 작성해서 방문자의 숫자를 세어 보는 코드를 만들 생각을 할 수 있다. The page count is now: 이렇게 하게 되면 화면에 "The page count is now:1" 이라는 메시지가 찍힐 것이다. 하짐나 브라우져를 리프레쉬 하게 되면 count가 2가 되는 것이 아니라 여전히 1이 된다. 왜냐면 위에서 선언한 count란 변수는 지역 변수로 작용하기 때문이다. 즉 jsp는 서블릿으로 변하면서 그 모든 코드가 _jspService 메소드 안에 작성 되는데 count란 변수 역시 _jspService 메소드 안에서 정의 된다는 뜻이다. jsp 코드가 서블릿으로 변환 되게 된다면 아래와 같은 코드를 가지게 될 것이다. public void _jspService(HttpSe..

Java/Servlet & JSP 2009.02.04

랩타임 성적이 많이 좋아 졌네요

위 이미지는 작년 7월 쯤에 8등급 차 타이거와 스피릿으로 달린 경우인데 둘다 잘 달렸다고 생각 했는데도 50초대 나왔던 기록입니다. 가장 최근에 같은 맵에서 달린 기록은 아래 스샷과 같습니다. 차도 9등급 MPM7으로 바뀌고 귀속이랑 기타 km 옵션 달린 파츠, 부스터 옵션 달린 파츠 등을 끼고 달린 거지만 어째든 20초 정도 향상된 기록을 세우고 있네요. 위 스샷에서 최고 기록인 94Lv 차량이 세운 기록보다도 빠르네요 ㅋㅋ 물론 그때보다도 현재 많은 분들의 차량 성능이 많이 증가했겠지만 어째든 80대 랩에서 저정도 기록이 나온다는 것을 보아 기분이 좋습니다. 그나 저나 얼른 80파츠 득, 귀속 1등 득해야 할텐데요 ㅎㅎ

간단한 Jsp 시작하기

Jsp를 작성하게 되면 jsp는 컨테이너에 의해서 서블릿으로 변형되게 된다. 간단하게 얼마나 많은 요청을 받았는지를 출력하는 jsp를 작성해 보면 다음과 같다. Counter.java package com.example; public class Counter { private static int count; public static synchronized int getCount() { count++; return count; } } BasicCounter.jsp Counter 클래스에서 static int 변수를 두어서 요청한 횟수를 저장할 변수를 만든다. BasicCounter.jsp에서는 page 지시자를 사용하여 com.example.*을 import 한 후 Counter 객체를 사용해서 카운트를 ..

Java/Servlet & JSP 2009.02.04

HttpSessionBindingListener와 HttpSessionAttributeListener

HttpSessionAttributeListener는 세션에 어떤 속성이 추가, 제거, 수정되는 이벤트가 발생하는지 알고 싶을 때 사용한다. 반면에 HttpSessionBindingListener는 자신이 세션에 속성으로 추가되었는지, 제거 되었는지 알기 위하여 사용한다. package com.example; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; public class Dog implements HttpSessionBindingListener { private String breed; public Dog(String breed) { this.breed = ..

Java/Servlet & JSP 2009.02.02

Cookie 사용하기

웹 프로그래밍을 하다 보면 자연스럽게 나오게 되는 부분이 쿠키(Cookie)이다. Java에서도 쿠키를 사용할 수 있는데, 다음과 같은 방식으로 사용하면 된다. 1. Cookie 객체 생성 Cookie cookie = new Cookie("username", name); 2. Cookie 생명 주기 설정 cookie.setMaxAge(30*60); //30분... 3. Response에 Cookie 추카 response.addCookie(cookie); 4. Request에서 Cookie 일어오기 Cookie[] cookies = request.getCookies(); for(int i = 0 ; i

Java/Servlet & JSP 2009.02.02

Session 관리

클라이언트와 지속적인 연결을 유지하지 못하는 것이 http protocol의 특징이므로, 이전 요청한 클라이언트와의 연결을 유지하기 위해서 Session을 사용한다. 컨테이너(톰캣) 단에서 Session ID를 발행하고, 해당 Session ID와 Cookie를 맵핑 한 다음 해당 쿠키를 클라이언트에서 사용하도록 하면 클라이언트를 구분해서 받을 수 있다. * 세션 ID는 다음과 같은 방법으로 사용할 수 있다. HttpSession session = request.getSession(); 위와 같이 하게 되면, request로부터 세션 ID를 가지고 올 수 있고, 제일 처음 요청이라면 response 객체에 보낼 쿠키도 생성하게 된다. * 세션이 이미 있는지, 아니면 처음 요청으로 새롭게 만들게 되었는지를..

Java/Servlet & JSP 2009.01.30

스레드 안전한 ServletContext 만들기

스레드 안전이란 말은 어떤 속성에 set을 한 다음 get을 하기 전에 다른 무엇인가가 해당 속성에 set을 해서 내가 set한 속성 값을 그대로 get하지 못하는 경우를 말한다. ServletContext에서도 스레드 안전이 보장되지 못한다. 즉 다음과 같이 코딩하게 되면 잘못된 결과가 리턴될 수도 있다는 말이다. public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("test context a..

Java/Servlet & JSP 2009.01.29

으하하하하 첫 귀속 아이템이 떳습니다.

제가 주로 하는 겜 중에 '스키드러쉬'란 오락이 있습니다. 이 중에서 아이템을 변형해서 좋은 옵션이 달리도록 하는 '변형' 이라는 시스템이 있는데요. 여기서 1등 옵션이 나오기가 하늘의 별따기 입니다. 그래서 일명 로또 시스템 이라고 하죠 그런데 여기서 3등에 당첨 됬습니다. 파츠와 옵션 변형 용액을 넣고 변형하기를 누르면 옵션이 변형 되는데 2km 변형 나오기도 힘든게 이 시스템입니다. 보통 10point가 1km인데 3등으로 3km + 2km 짜리가 나오다니 ^^;; 순간 어안이 벙벙하고 기분이 너무 좋데요 ㅎㅎ 온라인 겜 폐인 양상 기사 같은 것을 보고 어떻게 저런게 생길 수 있지? 라는 생각을 했는데, 이런식으로 사람 기분이 좋아지는 것을 보면 어느정도 이해가 가네요 ^^;; 아래 사진은 제 첫 ..

ServletContext 이용하기

ServletConfig는 해당 서블릿에서만 사용할 수 있지만 Web App 내에서 공통적인 내용을 가져다 사용하려면 ServletContext를 사용할 수 있다. ServletContext는 ServletConfig와 마찬가지로 web.xml을 사용하며, 따라서 바로 사용하려면 String만 사용할 수 있다. 하지만, ServletContextListener를 이용하면 객체 역시 Web App 전역에서 사용할 수 있다. ServletContextListener는 서블릿이 로딩 되기 전, 컨테이너(ex:톰캣) 차원에서 initialize 하고 destroy 하게 하는 것이다. 따라서 이 속성을 이용해서 컨테이너가 ServletContextListener를 로딩할 때 context-param을 추가한 후,..

Java/Servlet & JSP 2009.01.23

나눔고딕용 코딩 글꼴이 배포되고 있네요.

나눔 고딕을 사용한 코딩용 글꼴이 배포되고 있네요. 배포 되고 있는 url은 http://dev.naver.com/projects/nanumfont 이며 윈도우, 리눅스 용으로 배포 되고 있는 것 같습니다. 현재 윈도우 용을 다운로드 받아서 에디트 플러스에서 한번 살펴 보니 아래 스냅샷과 같이 보입니다. 배포 사이트에서 나눔 고딕 코딩용 글꼴과 관련해서 아래와 같은 내용을 말하고 있네요. 고정폭 형식으로서 소스코드 편집을 위한 각종 편집기나 터미널에서 가독성을 높였고, 알파벳 대문자 아이(I)와 알파벳 소문자 엘(l), 숫자 1, 숫자 0과 알파벳 대문자 오(O) 혹은 알파벳 소문자 오(o) 등등 혼동되기 쉬운 문자들을 명확하게 구별될 수 있게 하여 원치 않는 코딩 오류를 최소화할 수 있습니다. ......

Develop?/News 2009.01.22

ServletConfig 이용하기

web.xml에 config 정보를 정의하고 해당 내용을 servlet에서 불러와 사용할 수 있다. 사용 방법은 다음과 같다. 1. web.xml 작성 BeerParamTests com.example.TestInitParams adminEmail likewecare@wickedlysmart.com mainEmail blooper@wickedlysmart.com BeerParamTests /Tester.do init-param을 통해서 param-name(변수명)을 정하고 param-value에 값을 넣은 후 사용할 수 있다. 2. com.example.TestInitParams.java 작성 package com.example; import java.io.IOException; import java.io..

Java/Servlet & JSP 2009.01.22

이클립스에서 Dynamic Web Project 시작하기

항상 기본 Pojo Java만 공부하다가 이클립스로 Servlet & JSP를 이용하는 Dynamic Web Project를 시작하게 되니 여간 헷깔리는 것이 아니었다. 그래서 정리 차원에서 블로그에 올려본다. 1. 일단 이클립스에는 WTP(Web Tools Platform)을 설치해야 한다. 설치하지 않을 경우 'New -> Project'에서 Dynamic Web Project가 보이지 않는 것 같다. 다운은 http://download.eclipse.org/webtools/downloads/ 에서 받아도 되며, 이클립스 자체에서 업데이트 해도 된다. 이클립스 자체에서 업데이트 하는 방법은 아래와 같다.(가니마데와 유로파가 서로 UI가 좀 틀린 듯 하다. 아래는 유로파 기준이다.) 위와 같이 한 후 ..

MVC 식 Servlet 사용

Head First Servlet & JSP 책을 통해 알게 된 MVC 식 Servlet 예제를 통해 기본적인 Servlet & JSP가 어떻게 돌아가는지 확인해 본다. 기본적인 디렉토리는 아래와 같다는 가정하에 작업을 한다. 1. 디렉토리 구성 src밑에 com.example.web 패키지와 com.example.model 패키지를 만든다.(패키지는 디렉토리와 같은 개념이다.) web 디렉토리 밑에는 일반적인 servlet이 들어가며, model 밑에는 Pojo Java가 들어간다. 기본적인 html 파일인 form.html과 결과값을 처리할 jsp 파일인 result.jsp 파일은 WebContent 밑에 들어간다. 2. web.xml 작성 WebContent/WEB-INF/web.xml에 다음과 같..

Java/Servlet & JSP 2009.01.21

Servlet의 작성

php에서는 DocumentRoot 아래에 있는 물리적인 디렉토리와 물리적인 파일을 호출하게 된다. 반면에 Java(Servlet)에서는 web.xml을 통해 url과 물리적인 servlet class를 맵핑 시켜서 호출하게 된다. 맵핑 시키는 방법은 아래와 같다. 위와 같은 디렉토리가 있다면, "WebContent/WEB-INF/web.xml" 파일을 열어 맵핑 정보를 등록할 수 있다. web.xml 파일은 기본으로 생성되어 있으며, 다음과 같이 작성할 수 있다. Chapter1 Servlet Ch1Servlet Chapter1 Servlet /Serv1 위와 같이 작성을 하게 되면 물리적인 servlet 파일을 찾아가는 flow는 다음과 같다. 1. http://localhost:8080/Serv1을..

Java/Servlet & JSP 2009.01.21

운전들 좀 제대로 합시다. 제발... Please...

운전 면허를 딴지 16년 째지만, 아직도 운전을 할 때마다 느끼는 거지만, 운전들 정말 거지 같이 하는 사람 많다. 개그 콘서트에서 16년간 한가지 일을 하게 되면 달인 이라는 말을 하는데, 운전을 16년간 해도 운전 할 때마다 항상 살얼음 판을 걷는 느낌이다. 오늘 아침에도 출근 길에 운전을 하고 오는데, 뒤에 오는 차량에 충분한 간격이 있어서 차선 변경을 하게 되었다. 차선 변경을 하니까 그 모습을 못 보고 바로 가속 페달을 쭉 밟아서 내차 뒤로 붙여 되는 모습이란... 상향등을 켜대고 크랙션을 눌러대는 한심한 꼴이란 참 가관이더라... 신호등을 어기는 것은 기본이고 레이싱 트랙에서 달리는 것처럼 서로 이기려 하는 그런 자세... 남들 다 차선대로 가고 있는데, 갓길이나 옆 차선을 통해서 앞질러 와서..

인생이야기 2009.01.08

SkidRush 배틀존에서 재미있는 장면 하나 ^^

이번 12월 18일에 새로운 업데이트가 있었는데, 그중 하나가 바로 트래픽카 위장 키트이다. 해당 아이템을 사용하면 15분간 트래픽카로 위장할 수 있다. 트래픽카는 트럭, 트레일러, 티코, 경찰차 등 랜덤으로 변경되는데 위 장면에서 볼 수 있는 것처럼 재미있는 장면이 벌어진다. 티코가 쟁쟁한 슈퍼카들을 재치고 배틀 존에서 1등을 한 것이다. 뭐 티코에게 발렸다는 생각이 찜찜하긴 하지만 재미있는 장면이다 ^^

MySQL의 백업 및 복구

요즘은 MySQL Replication 기능을 이용해서 DB System을 구축하는 경우가 많다. 또한 MySQL DB를 사용하면서 백업은 보통 Replication Slave 단에 있는 백업 Server에서 별도로 받게 된다. 백업 서버에서 Dump로 받게 된 Data는 DML 쿼리로 된 text data이며, 이 데이터를 이용해서 신규 장비를 설치하던가, 아니면 기존 장비에 문제가 생겼을 시 복구를 하게 된다. 그런데 복구를 하더라도 Replication이란 문제로 인해 Master DB와 싱크를 맞추는 문제가 발생하게 된다. 따라서 백업 서버에서 백업을 받게 되는 경우, Master DB의 binary log의 포지션을 알아야지만 된다. 이럴 경우에는 다음과 같은 절차를 따라서 Dump를 받으면 된..

Server/DB 2008.12.15

스키드러쉬 루비 쿠폰을 땃습니다. ㅋ

스키드러쉬를 하다보면 차를 구매하게 되는데, 특수한 차량들은 쿠폰을 획득해야지만 살 수 있습니다. 그 중에서 가장 따기 힘들다는 루비(Ruby)쿠폰을 획득 했습니다. 실제 차량명은 BMW Z8로서 007시리즈 19번째에 나온 차량 입니다. 네이버 뉴스에서도 나왔네요. 실제 차량 이미지는 아래와 같습니다. 그리고 게임상에서의 이미지는 여기를 클릭해서 보실 수 있습니다. ㅋ 쿠폰을 이용해서 그냥 차를 살까, 아니면 쿠폰을 경매장에 내 놓을까 고민 중입니다. ^^ 이제 배틀만 즐기면서 해야 겠네요 ㅋ

라세티 너무한거 아냐?

오늘 아침 무심코 네이버 메인 화면을 보다가 새로나온 라세티 신형 자동차 광고가 있길래 보게 되었다. 디자인 참 신선하고, 외국차처럼 만든 것 같아서 멋있네 하고 보고 있는데.. 이건 어디서 많이 보던 모습이다. 뭐 한국차의 외국 차 베끼기는 어제 오늘일이 아니지만, 이건 보면 볼수록 좀 너무 심하다는 생각이 들 정도로 베끼었다. 기존에 nf sonata가 honda의 구형 어코드 앞, 뒷 모습을 그대로 베낀 것은 유명한 일화지만, 이번의 라세티도 그에 못지 않게 최소한 2개의 차종을 그대로 베끼고 있었다. 우선 생각나는데로 앞 모습은 혼다 뉴 어코드의 모습을 그대로 베낀것 같아서 네이버 자동차를 통해 혼다 뉴 어코드의 모습과 라세티의 모습을 비교해 보기로 했다. 혼다 뉴 어코드의 모습을 직접 보고 싶다..

728x90
반응형