본문 바로가기

jsp

(13)
Chapter 2. 웹 애플리케이션 아키텍처 ② 앞서 Deployment Description(이하 DD) 이용해서 서블릿 이름을 지어주는 것이 좋다고 했습니다. 그 이유중 하나는 물리적인 하드코딩이 아니라 선언적인 의미에 불과하기 때문에 코드 수정이 용이하다는 것이었습니다. 뭐 이해하고 있다면 무슨 말인지 알기 쉽지만 이해를 못하는 상황에서는 저런 정의도 무의미 하다는 생각이 듭니다. 그래서 직접 DD를 작성해 보았습니다. 예전에 SpringFrameWork 테스트 한다고 만들어 놔던 web.xml 파일을 가져와 봤습니다. 저기서 중요한 부분은 이라는 태그와 이라는 두 태그 입니다. mapping 이라는 단어에서 유추 할 수 있듯이, 뭔가 선언된 서블릿을 실제 경로에 존재하는 서블릿 클래스와 매핑을 시켜주는 그런 과정인거지요. 1. 태그내에 태그는 ..
Spring MVC 를 이용해 만든 첫 페이지 정말 오랜만에 띄워보는 이클립스 J2EE, 예전에는 웹 프로그래밍 시간에 배운 얄팍한 JSP 와 Servlet 지식으로 얼기 설기 만들었었는데.. Spring MVC를 활용한 동적 웹 사이트 제작은 굉장히 짜임새 있고 소스가 간단해서 좋았다. 다만 모든 프로그램 언어를 배울때 마다 느끼지만 그 언어의 사용 환경을 설정하는 일이 가장 어려웠다. 그 중 몇가지 생각나는 것을 다음에 다시 반복 하지 않기 위해서 적어본다. 1. 웹 서버의 포트 번호 사용 -> 8080 포트가 사용되고 있다는 오류 메시지 출력 -> 실제로 오라클DBMS에서 사용중 -> 8081 포트로 변경했음. 2. Spring.jar 파일을 라이브러리에 추가했으나 추가되지 않는 클래스가 꽤 많음 -> Spring-webmvc.jar 파일 추가..
JSTL : 조건문 <c:if> <c:choose> <c:when> <c:otherwise> 태그 자자.. 가장 중요한 조건문.. 이 빠졌죠? ㅎㅎ 약방의 감초처럼.. 모든 프로그래밍에서 나오는.. 그런 조건문이 JSTL에 없을리가 없죠.. -_-; 암튼.. 하나씩 살펴보도록 하실텐데요.. 가장 잘 알고 있는 if 조건문 태그 입니다. 하지만 JSTL에서는 if 태그는 반쪽짜리 이라는 것을 염두해두시는 것이 좋겠습니다. 왜냐하면.. 얘는 else를 지원하지 않기 때문이라고 합니다. 얘도 닫는 태그가 있는 경우가 있고 없는 경우가 있는데 둘의 차이는 크게 있어보이지는 않구요.. 한번 소스를 보면서 하나하나 짚어 보도록 하겠습니다. msg : ${msg} test result = ${result } 자.. 살펴볼까요.. 일단 새로운 속성을 하나 볼수 있는데 그게 바로 test 입니다.. ㅋ test안에 ..
JSP 1.2 커스텀 태그 음.. 일단 커스텀 태그를 한번 만들어 볼까요? JSP 1.2 커스텀 태그에 대해서 한번 알아 보겠습니다. 일단 커스텀 태그를 사용하기 위해서는 3가지의 구성 요소가 필요한대요.. 하나는 태그 핸들러 클래스 (Tag Handler Class) 이구요.. 이 태그 핸들러 클래스는 javax.servlet.jsp.tagext 패키지의 TagSupport 클래스를 상속받아서 사용하거나 Tag 인터페이스 구현하는 방법으로 사용한다고 합니다. 전자의 방법을 많이 선호하는 편이구요. 그리고 태그 라이브러리 기술자 (Tag Library Descriptor) 가 필요하다고 합니다. 요놈은 태그의 이름을 정하고 태그 핸들러와의 관계를 기술해주는 역할을 합니다. 그리고 마지막으로는.. 이걸 사용할라면 JSP 페이지를 만..
표현 언어 (Expression Language) JSTL (JSP Standard Tag Library) JSTL이라는 놈에 대해서 들어 본적이 있습니다. 그때는 JSP 도 없었던 시절이었기때문에 -_-.. JSTL을 알면 모합니까.. xml 처럼 외계어 같은데 ㅋㅋㅋ 그렇스빈다.. ^^ 그럼 이 표현언어에 대해서 한번 알아볼까요... 보통 JSP 를 사용해서 뭔가를 가져올려면.. 이런 식으로 정의를 해줘야 합니다. 줄줄이 따져 볼까요? 일단 TestBean 이라는 클래스로 test 라는 빈(Bean) 객체를 생성한다고 해줬습니다. 이름은 test 이구요.. 그담줄에선 test에 있는 getName 이라는 메소드를 호출하는 군요.. 근데 표현언어를 사용하면.. -_-;; 뭐냐.. ${test.name} 헐.. 끗 -_-;; 이렇게 표현언어를 사용하면 application, session, request, p..
여러가지로 미흡했던 방명록 프로그램.. 어쨌거나.. 방명록 프로그램을 얼추 완성 시켰습니다. 문제는 엉성한 컨트롤러와.. 대부분을 차지하고 있는 하드 코딩이라는 점에서.. 약간 실망스러웠습니다. 약간의 자바스크립트를 사용하기도 했고요.. 아직은 스킬이 많이 부족해서.. 이렇쿵 저렇쿵 난관에 많이 부닥쳤습니다. 아직도 미완성 된 부분이 많지만.. 많은 분들에게 한번쯤?? 보시고 어떤 부분이 문제가 있는지.. 지적을 받기 위해서 용기내어 올려봅니다. CRUD에 약간의 문제가 있습니다. 도와주세요~
JSP 뷰와 함께 돌려보자 : 문제가 생겼스빈다!!! ㅠㅠ.. 일단 눈물좀 닦고.. 아.. 한시간정도의 사투 끝에.. -_-;; 버그를 두개나 잡았습니다.. ㅋㅋㅋㅋ 역시 코딩의 세계는 넒고 험하고.. 이 벌레 잡는 재미에 하는거 같스빈다.. 가장 처음 나온건.. JasperException 이거는.. 지난 웹개발의 경험을 빗대어 보면.. 대부분은 코딩 문제 였습죠.. -_-;; 역시나 JSP 코딩 한것을 보니까. 클래스 파일의 위치를 잘못 지정해줬었습니다. 사실은 잘 지정을 해줬었는데.. ㅠㅠ 바로 이부분입니다. 요부분에 첫줄에 보시면 import 라는 속성에 해당 클래스들이 있는 패키지를 지정을 해줬습니다. 이런 경우에는 자바코딩에서는 해당 패키지 내에 있는 모든 클래스를 별도의 경로 없이 그냥 클래스명으로 사용했자나요??? 그래서 처음에는 useBea..
방명록 CRUD (Create Read Update Delete) 기능 구현 이제 앞서 만들었던 데이터베이스로의 접속과 접속해제를 가지고 CRUD를 구현하겠습니다. 먼저 게시물을 삽입하는 겁니다.. /** * 데이터베이스에 새로운 레코드를 삽입하도록 한다. * * @param guestbook * 새롭게 삽입될 방명록 글 * @return 성공적으로 등록이 되는경우 참을 아닌경우에는 거짓을 반환한다. */ boolean insertDB(GuestBook guestbook) { connect(); String sql = "insert into guestbook(gb_name,gb_pass,gb_content,gb_date,gb_time) values (?,?,?,sysdate,CURRENT_TIMESTAMP)"; try { pstmt = conn.prepareStatement(sq..