글
<!--
- 스프링 프레임워크의 ContextLoaderListener는
기본적으로 Context Root에서 설정파일을 찾는다. 예) services.xml
- 만약, 클래스 경로에서 찾게 하고 싶으면 설정 파일 경로 앞에 classpath: 을 붙여라.
예) classpath:services.xml
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- <param-value>/conf/services2.xml</param-value> -->
이 경우, 외부에서 접근이 가능해진다. 따라서 drop table을 할 수 있어서 (직접 db에 접근할 수 있어서) 위험하다
.
<param-value>classpath:services.xml</param-value>
<!-- <param-value>/WEB-INF/services.xml</param-value> -->
따라서, 이런식으로 web-inf는 외부에서 접근 불가.
</context-param>
=================================================================================================================
WebApplicationContext appContext =
WebApplicationContextUtils.getWebApplicationContext(
this.getServletContext());
그 어플리케이션에서 다루는 beanContainer를 리턴해줌.
WebApplicationContext appContext의 super class는 contextListener임.
=================================================================================================================
dispatcher serlvet = front controler
요청이 들어왔을 때 해당되는 서블릿을 찾아서 연결시켜주는 역할
* spring framework의 장점
-> annotation은 servlet 3.0에서만 돌아가는 단점이 있음.
따라서, 톰캣 6.0에서는 아예 annotaion을 인지를 못해서 dispatcher위의 @WebServlet(urlPatterns="*.do")를 찾지 못함.
but spring framework에서는 그런 버전에 좀 더 자유로움.
단, web.xml에 명시적으로 적어줘야 함.
=================================================================================================================
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:services.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:services.xml</param-value>
</init-param>
=> dispatcher servlet 이 관리하는 부분.
=================================================================================================================
이제부터 우리는, 스프링 프레임 워크에서 제공하는 front controller를 이용해서 , page controller에 접근함.
따라서 action interface가 더이상 필요가 없음.
* spring MVC Controller 만들기
1. @Controller
2. @RequestMapping("url")
-> value = 서블릿 url
* 요청을 다루는 method = handler method
@RequestMapping("/hr/searchEmp")
public String execute(int deptno, Model baguni) throws Exception {
baguni.addAttribute("employeeList", employeeDao.getEmployeeList(deptno));
return "/hr/employeeList.jsp";
}
여기서, execute()메서드가 요청을 다루는 handler method
=====================================================================================================================
* 날짜 형식을 바꿔서 해야함.
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
'학습' 카테고리의 다른 글
시간 설정 소스 yyyy-MM-dd (0) | 2013.07.05 |
---|
RECENT COMMENT