Spring/Study 2020. 4. 16. 21:16

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

프로젝트 전체 구조

1. java : 웹 애플리케이션에서 사용되는 Controller, Service, DAO 객체들의 java 파일의 위치

2. webapp : 스프링 설정파일, JSP, HTML 등 웹과 관련된 파일의 위치

3. resources : JSP 파일을 제외한 html, css, js 파일 등의 위치

4. spring : 스프링 설정파일의 위치

5. views : JSP 파일의 위치

6. xeb.xml : 웹 설정파일

7. pom.xml : Maven 설정 파일

 

web.xml

웹 애플리케이션에 최초 사용자의 요청이 발생하면 가장 먼저 DispatcherServlet이 사용자의 요청을 받는데, 개발자는 DispatcherServlet을 서블릿으로 등록해주어야 한다. 모든 사용자의 요청을 받기 위해 root를 의미하는 / 로 URL을 매핑한다.

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
cs

 

DispatcherServlet

- HandlerMapping : 적합한 Controller를 선택

- HandlerAdapter : 해당하는 Controller 내에서 가장 적합한 메소드를 선택

- ViewResolver : 가장 적합한 JSP 파일 선택

 

servlet-context.xml

웹 설정파일인 web.xml에 스프링 설정파일의 역할을 하는 파일로 지정되어있다. 클래스로부터 빈(Bean) 객체를 생성하고 조립하는 역할

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>
cs

 

Controller

사용자의 요청을 실체로 처리하는 부분

@Controller
public class HomeController {
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        logger.info("Welcome home! The client locale is {}.", locale);
        
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        
        String formattedDate = dateFormat.format(date);
        
        model.addAttribute("serverTime", formattedDate );
        
        return "home";
    }
}    
cs

 

View

클라이언트 요청정보(URL 매핑 값)에 해당하는 JSP파일 실행

posted by DevMoomin
: