공통 설정 - Name-servlet.xml 기존의 ViewResolver 의 property 중 id = order 인 놈의 값을 1로 설정해서 jsp뷰를 읽기전 먼저 자바클래스로만 만들어진 뷰를 읽어 오도록 해야한다. value의 값이 작을수록 우선순위가 설정된다. 1. 한글처리 이전의 다운로드- Controller@RequestMapping("URL")public ModelAndView download(@RequestParam("fileName")String fileName) { File file = new File("c:/upload/upload_" + fileName); return new ModelAndView("뷰이름","downloadfile",file);} 코드는 간단하다. 먼저 컨트롤러..
- 스프링 MVC는 아파치 스트럿츠 등 많은 웹 어플리케이션 프레임 워크와 마찬가지로 프런트 컨트롤러 패턴을 채용하고 있다. 프런트 컨트롤러 패턴이란, 하나의 핸들러 객체를 통해서 요청을 할당하고, 일관된 처리를 작성할수 있게 하는 디자인 패턴이다. 브라우저 ―(요청)→ Dispatcher Servlet ― 1. 컨트롤러 선택 Handler Mapping 2. 처리를 위임 Controller ↑(응답) ↖(ModelAndview) View ← 결과 출력 ← 3. 뷰를 선택 ViewResolver 참고 ) 한빛미디어 예제로 쉽게 배우는 프레임워크 3.0
스프링 프레임워크를 활용하려면 인터페이스 기반 설계를 이해하는 것이 중요하다. 의존관계(DI)는 구상 클래스가 아닌 인터페이스를 통해 이루어 진다. Ex> 인터페이스 기반 설계가 아닌 경우 ● → ●※객체가 직접적으로 묶여 있게 된다. ex> 인터페이스 기반 설계 ● → ○ → ●※객체가 간접적으로 결합 되어 있다. 그림으로 그리자면 이런식의 설계가 이루어 져야 한다. 객체와 객체가 약한 결합으로 연결되어야 스프링을 활용할수 있다.예를 들자면 나라는 객체가 있다. 그리고 간다라는 메소드가 존재한다. 그러나 처음에 버스를 타고 간다라고 계획을잡고 출발을 했다 그러나 가다가 어떠한 이유로 지하철을 타고 가야할 경우 버스를 타고간다라는 계획을 모두 수정해야한다. 이러한 문제가 생겼을시 객체와 객체간의 강하게 ..