본문 바로가기

Web Programming

(56)
ApplicationContext 의 설정 SpringMVC dispatcher org.springframework.web.servlet.DispatcherServlet dispatcher *.htm web.xml 파일을 보면 위와 같다. 기본적으로 DispatcherServlet은 [서블릿이름]-servlet.xml 파일로부터 스프링 정보를 읽어오기 때문에 현재 경로에서 dispatcher-servlet.xml 파일로 부터 설정 정보를 읽어오게 된다. DispatcherServlet 마다 각각 원하는 설정 정보를 읽어 오도록 할 수도 있다. 때로는 공통의 빈을 필요로 하는 경우도 있는데 이런경우에는 ContextLoaderListener를 사용하여 공통으로 사용될 빈을 설정할 수 있게 된다. 아래 예제는 두개의 서블릿을 만들어서 저마다 다른 뷰..
Spring MVC의 실행 흐름 정리 만든 프로그램을 살짝 리뷰를 해보자면, 일단 아래의 스크린 샷과 같은 페이지를 보기위해서 몇가지 절차를 거쳐야 한다. MVC 라는 패턴에 알맞게 Spring 또한 예쁘게 만들어준다. 먼저, 모든 서블릿의 기초가 되는 web.xml 파일 부터 건드려 주신다. 서블릿을 생성하기 위함이다. 여기서 서블릿의 역할을 하는 클래스는 DispatcherServlet 이라는 클래스로서 MVC에서는 C인 컨트롤러에 해당하는 클래스이다. web.xml에 선언을 해준다. 이것을 스프링 컨텍스트를 설정한다고 한다. 다음으로는 HandlerMapping 빈을 생성해 주어야한다. BeanNameUrlHandlerMapping 클래스를 통해서 생성해 줄 수 있다. [서블릿 이름]-servlet.xml 파일을 생성하여서 빈 객체를 ..
Spring MVC 를 이용해 만든 첫 페이지 정말 오랜만에 띄워보는 이클립스 J2EE, 예전에는 웹 프로그래밍 시간에 배운 얄팍한 JSP 와 Servlet 지식으로 얼기 설기 만들었었는데.. Spring MVC를 활용한 동적 웹 사이트 제작은 굉장히 짜임새 있고 소스가 간단해서 좋았다. 다만 모든 프로그램 언어를 배울때 마다 느끼지만 그 언어의 사용 환경을 설정하는 일이 가장 어려웠다. 그 중 몇가지 생각나는 것을 다음에 다시 반복 하지 않기 위해서 적어본다. 1. 웹 서버의 포트 번호 사용 -> 8080 포트가 사용되고 있다는 오류 메시지 출력 -> 실제로 오라클DBMS에서 사용중 -> 8081 포트로 변경했음. 2. Spring.jar 파일을 라이브러리에 추가했으나 추가되지 않는 클래스가 꽤 많음 -> Spring-webmvc.jar 파일 추가..
Spring AOP - Aspect! ㅎㅎ 처음 AOP에 대해서 들은것도 어깨너머로 배웠다. 학교 선배에게 AOP가 무슨 개념이라고 물어본 적이 있었는데 그야 말로 책에도 똑같이 설명이 되어 있다. 공통 관심 사항에 관련된 복잡한 의존관계를 제거 하기 위함.. 결국은 너무 결합도가 높은 설계를 줄이자는데에서는 DI와 그 목적을 함께 하는 듯하다. 얘는 조금씩 하면서 채워가야겠다.. 아직 좀 잘 모르겠다... 템플릿 메소드 패턴과 유사한것 같기도 하고.. 후크 메소드를 삽입하는 모습이 유사하고.. 전혀 다른것 같기도 하고 알쏭 달쏭
Spring D.I. Pattern DI... DI... 듣다듣다 어디서 되게 많이 들었다. DI 패턴이라고?? 기억 하기로는 DI 패턴이 아니라.. 예전에 Head First Design Patterns 를 보다가 나온 용어 중에 Dependency Inversion Priciple 이라는 것이 있었다. 의존성의 역행 원리? 정도로 해석을 할 수 있을텐데... 여러 얽히고 섥힌 객체들 간의 불필요한 의존성을 제거 해준다는데에 그 목적이 있다. 그럼 이렇게 의존성을 제거한 후에 이 객체들 끼리 조립하는 무엇이 필요하다고 하는데.. 이렇게 Assembler 역할을 하는 것이 다름아닌 스프링의 XML 외계어 이다. 다시 말하면 XML 을 이용하여 객체들의 의존 관계를 정의해 줄 수 있다고 한다. 요것이 바로 내가 만들어준 application..
Spring Framework 준비하기 처음 스프링이라는 것을 접했을때가 대학교 2학년 2학기때.. 갓 병역을 마치고 와서 학교를 다니면서 웹프로그래밍이라는 과목을 듣고 있을때 였다. 아는 형이 웹페이지를 만드는데 사용해보자고 제안을 했던것.. 물론 그때 당시는 그 필요성을 못느꼈다. (아직 자바도 잘 모를 시절이기 때문에..) 지금 와서 스프링이라는것을 배워본다. 여러모로 스프링이라는 프레임워크를 사용하는 곳이 많은듯하다. 일단은 프레임워크를 사용할 줄 알아야 한다는 것이 J2EE 라는점.. 결국 EJB는 뭔지 알고 싶지 않고 스프링이나 스트럿츠 쪽이 궁금하다. iBatis는 사용해보았는데.. 여튼.. 두서 없이 시작해 보았다. 스프링 2.5 프로그래밍 이라는 책을 구입했고.. 스프링 프레임워크 워크북은 예전부터 조금씩 봐왔던 책이고 해서 ..
JSTL : 반복문 <c:forEach> <c:forTokens> 태그 반복문.. 루프죠.. 가장 유용한 태그중의 하나라고 하는데요.. 그게 바로 forEach 태그 입니다. 얘는 for문하고 똑같은데요.. 일단 한번 예제를 보시겠습니다. index : ${status.index} / count : ${status.count} name : ${i.name} email : ${i.email} 자.. 얘 같은경우에는 속성값이 꽤나 많습니다. var, items, begin, varStatus, end.. 총 5개의 속성들이 보이는데 그중에 var라는 속성은 이미 알고 있는 것입니다. 여기서 i라는 변수는 반복문이 한번 수행 될때마다 바뀌는 변수가 되겠죠..? 그리고 items 라는 속성은 컬렉션 객체가 되겠군요.. 예를 들면 뭐.. 배열이라던가.. 리스트라던가 하는 것들이 오게..
JSTL : 조건문 <c:if> <c:choose> <c:when> <c:otherwise> 태그 자자.. 가장 중요한 조건문.. 이 빠졌죠? ㅎㅎ 약방의 감초처럼.. 모든 프로그래밍에서 나오는.. 그런 조건문이 JSTL에 없을리가 없죠.. -_-; 암튼.. 하나씩 살펴보도록 하실텐데요.. 가장 잘 알고 있는 if 조건문 태그 입니다. 하지만 JSTL에서는 if 태그는 반쪽짜리 이라는 것을 염두해두시는 것이 좋겠습니다. 왜냐하면.. 얘는 else를 지원하지 않기 때문이라고 합니다. 얘도 닫는 태그가 있는 경우가 있고 없는 경우가 있는데 둘의 차이는 크게 있어보이지는 않구요.. 한번 소스를 보면서 하나하나 짚어 보도록 하겠습니다. msg : ${msg} test result = ${result } 자.. 살펴볼까요.. 일단 새로운 속성을 하나 볼수 있는데 그게 바로 test 입니다.. ㅋ test안에 ..