<!--
 - 스프링 프레임워크의 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
by 알 수 없는 사용자 2013. 6. 25. 18:22