본문 바로가기

Web Programming

(56)
JSTL : <c:out> <c:set> <c:remove> <c:catch> 태그 오랜만에 JSP 공부를 하는 것 같습니다. 그간 너무 게을리 지내서.. -_-;; 아무튼.. JSTL 이라는 놈에 대해서 한번 알아보도록 하겟씁니다. 그간 JSTL 을 배우기전에 표현언어라는 걸 배웠었고.. ${변수명} 이런식으로 사용했던거.. 획기적으로 JSP 소스코드를 줄여주는 역할을 했던 커스텀 태그도 있었구요.. 이러면서 나왔떤게 커스텀 태그를 일일이 다 만들어 줘야하는가.. 라는 그런 의문들이 생겨 났는데.. JSTL을 사용하면 됩니다. 다 만들 필요없이.. 만들어 놓은걸 쓰면 되는거죠... 그게 바로 JSTL 이라는 겁니다. JSTL은 그냥 쓴다고 되는게 아니라.. 여러가지 환경 설정이 필요합니다. 일단 http://jakarta.apache.org 에 가서 JSTL 라이브러리를 다운 받아서 ..
JSP 1.2 커스텀 태그 음.. 일단 커스텀 태그를 한번 만들어 볼까요? JSP 1.2 커스텀 태그에 대해서 한번 알아 보겠습니다. 일단 커스텀 태그를 사용하기 위해서는 3가지의 구성 요소가 필요한대요.. 하나는 태그 핸들러 클래스 (Tag Handler Class) 이구요.. 이 태그 핸들러 클래스는 javax.servlet.jsp.tagext 패키지의 TagSupport 클래스를 상속받아서 사용하거나 Tag 인터페이스 구현하는 방법으로 사용한다고 합니다. 전자의 방법을 많이 선호하는 편이구요. 그리고 태그 라이브러리 기술자 (Tag Library Descriptor) 가 필요하다고 합니다. 요놈은 태그의 이름을 정하고 태그 핸들러와의 관계를 기술해주는 역할을 합니다. 그리고 마지막으로는.. 이걸 사용할라면 JSP 페이지를 만..
커스텀 태그(Custom Tag)를 알아보자! 커스텀 태그는 말그대로.. 나만의 태그?? 정도라고 생각하면 좋습니다. JSP 페이지에서 반복적인 프로그램 로직을 캡슐화 하기 위해 고안된 것으로, 기본적으로 제공되는 JSTL 태그 이외에 사용자가 확장하는 태그라는 의미에서 붙여진 이름입니다. 단적인 예를 한번 보도록 할까요?? 제가 지난번에 방명록 프로그램을.. 아주 허접하게 하나 만들었는데.. 거기에 보면 이런게 있지요.. GuestBook - 글목록 글번호 글쓴이 내용 작성시간 글쓰기 요런놈이 있습니다. ^^ 근데.. 이 밑에 있는 소스를 한번 보세요... -_- ... 정말 이렇게 해서 된다면 화가 날거 같애요.. ㅠㅠ 하지만 화가 나겠군요 -_- 된답니다. 실제로 저런 커스텀 태그를 정의 해준다면 말이죠... 그럼 왜 이렇게 커스텀 태그 라이브..
표현 언어 (Expression Language) JSTL (JSP Standard Tag Library) JSTL이라는 놈에 대해서 들어 본적이 있습니다. 그때는 JSP 도 없었던 시절이었기때문에 -_-.. JSTL을 알면 모합니까.. xml 처럼 외계어 같은데 ㅋㅋㅋ 그렇스빈다.. ^^ 그럼 이 표현언어에 대해서 한번 알아볼까요... 보통 JSP 를 사용해서 뭔가를 가져올려면.. 이런 식으로 정의를 해줘야 합니다. 줄줄이 따져 볼까요? 일단 TestBean 이라는 클래스로 test 라는 빈(Bean) 객체를 생성한다고 해줬습니다. 이름은 test 이구요.. 그담줄에선 test에 있는 getName 이라는 메소드를 호출하는 군요.. 근데 표현언어를 사용하면.. -_-;; 뭐냐.. ${test.name} 헐.. 끗 -_-;; 이렇게 표현언어를 사용하면 application, session, request, p..
배포 서술자 (Deployment Descriptor) 에 대해서 파해쳐보자~ 보통 배포 서술자라고 하면 웹 어플리케이션의 기본적인 설정 파일 정도로 알고 있었다. WEB-INF 라는 폴더에 들어있는 web.xml 파일.. 한마디로 외계어로 되어있는 파일이다... XML의 세계는 알수 업ㅂ다.. -_-;; 그래서 왜 웹 어플리케이션에서 배포 서술자를 사용하는가?????? 라고 책에 나와 있었다.. -_- 이 또한 외계어.. 컨테이너 호환성 유지 : 웹 어플리케이션의 배포와 관련된 정보를 제공함으로써 서로 다른 컨테이너에서도 별도의 설정 없이 동일한 어플리케이션을 운영할 수 있다. 효율적인 어플리케이션 유지보수 : 특정 서블릿 혹은 전체 어플리케이션에서 공유하기 위한 초기화 파라미터의 설정이 가능하므로, 애플리케이션 프로그램 간 데이터 공유가 용이 하다. 유연한 어플리케이션 운영 :..
기본으로 돌아가서 좀 더 스킬을 배워보자... 처음에 만들었던 방명록 프로그램을 잊고 싶지만.. (끔찍하기 때문에..) 좀 더 기본으로 돌아가볼까 합니다.그래서 다시 Dynamic Web Project 를 하나 더 만들었습니다. 일단 웹 어플리케이션 디렉토리 구조를 한번 살펴볼까 합니다. 딱 만들어 보니까 대략적으로 이런구조를 하고 있더군요... 가장 모태가 되는것은 WARStructure 라는 이름을 하고 있는 프로젝트 이름.. 그리고 그 하위에 있는 것들이 src, build, WebContent 로 구분이 되어있었습니다. 하나하나씩 폴더를 가지고 살펴보도록 하죠. 아참.. 가장 위에 있는 Deployment Descriptor 는 패포 서술자 DD입니다.. 뭐 도메인에서 막 바꿔주고 그랬던 XML 파일 생각하시면 될거 같구요.. 맨 밑에 있는 ..
여러가지로 미흡했던 방명록 프로그램.. 어쨌거나.. 방명록 프로그램을 얼추 완성 시켰습니다. 문제는 엉성한 컨트롤러와.. 대부분을 차지하고 있는 하드 코딩이라는 점에서.. 약간 실망스러웠습니다. 약간의 자바스크립트를 사용하기도 했고요.. 아직은 스킬이 많이 부족해서.. 이렇쿵 저렇쿵 난관에 많이 부닥쳤습니다. 아직도 미완성 된 부분이 많지만.. 많은 분들에게 한번쯤?? 보시고 어떤 부분이 문제가 있는지.. 지적을 받기 위해서 용기내어 올려봅니다. CRUD에 약간의 문제가 있습니다. 도와주세요~
JSP 뷰와 함께 돌려보자 : 문제가 생겼스빈다!!! ㅠㅠ.. 일단 눈물좀 닦고.. 아.. 한시간정도의 사투 끝에.. -_-;; 버그를 두개나 잡았습니다.. ㅋㅋㅋㅋ 역시 코딩의 세계는 넒고 험하고.. 이 벌레 잡는 재미에 하는거 같스빈다.. 가장 처음 나온건.. JasperException 이거는.. 지난 웹개발의 경험을 빗대어 보면.. 대부분은 코딩 문제 였습죠.. -_-;; 역시나 JSP 코딩 한것을 보니까. 클래스 파일의 위치를 잘못 지정해줬었습니다. 사실은 잘 지정을 해줬었는데.. ㅠㅠ 바로 이부분입니다. 요부분에 첫줄에 보시면 import 라는 속성에 해당 클래스들이 있는 패키지를 지정을 해줬습니다. 이런 경우에는 자바코딩에서는 해당 패키지 내에 있는 모든 클래스를 별도의 경로 없이 그냥 클래스명으로 사용했자나요??? 그래서 처음에는 useBea..