Spring Web 프로젝트 생성
Ex01 : Spring MVC 동작
- "Ex01Controller.java"
- "ex01.jsp"
1) Ex01Controller.java
package com.test.spring;
public class Ex01Controller implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//옛날 코드 (권장 X)
request.setAttribute("name", "홍길동");
ModelAndView mv = new ModelAndView();
//"WEB-INF/views/().jsp" > 스프링이 알아서 붙여줌
mv.setViewName("ex01"); // jsp 이름
//이렇게 사용
mv.addObject("age", "20");
return mv;
}
}
2) ex01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>ex01.jsp</h1>
<div>${name}</div>
<div>${age}</div>
</body>
</html>
3) servlet-context.xml
<!-- @Controller, @Component, @Service, @Repository 붙은 클래스의 객체를 자동으로 생성한다. -->
<context:component-scan base-package="com.test.spring, com.test.java" />
<!-- Ex01 > 컨트롤러 > bean 생성 -->
<!-- name: 가상주소 -->
<beans:bean class="com.test.spring.Ex01Controller" name="/ex01.do"></beans:bean>
Spring Web 프로젝트 생성
Ex02 : Ex01 + Spring DI
- "Ex02Controller.java"
- "SpringDAO.java"
- "ex02.jsp"
1) Ex02.java
package com.test.spring;
public class Ex02Controller implements Controller {
//#1.
private SpringDAO dao;
//#2.
public void setDao(SpringDAO dao) {
this.dao = dao;
}
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//의존 객체
int count = dao.getCount();
ModelAndView mv = new ModelAndView("ex02");
mv.addObject("count", count);
return mv;
}
}
2) servlet-context.xml
<beans:bean class="com.test.spring.SpringDAO" name="dao"></beans:bean>
<!-- Ex02 > #3. -->
<beans:bean class="com.test.spring.Ex02Controller" name="/ex02.do">
<beans:property name="dao" ref="dao"></beans:property>
</beans:bean>
3) SpringDAO.java
package com.test.spring;
public class SpringDAO {
public int getCount() {
return 100;
}
}
4) ex02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>ex02.jsp</h1>
<div>count: ${count}</div>
</body>
</html>
Ex03
- "Ex03Controller.java"
- "ex03.jsp"
1) Ex03Controller.java
컨트롤러 구현
요청 메소드
- 맘대로! > @RequestMapping
2) ex03.jsp
Ex04
- "Ex04Controller.java"
- "ex04.jsp"
1) Ex04Controller.java
2) ex04.jsp