Skip to content

Commit 1eb2175

Browse files
committed
Spring WebMVC 정리 완료
1 parent fc09af3 commit 1eb2175

File tree

25 files changed

+202
-221
lines changed

25 files changed

+202
-221
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
비트캠프 **자바 110기** 실습 프로젝트
44

5+
## java110-project (tag: v6.9)
6+
7+
- Spring WebMVC 정리
8+
9+
510
## java110-project (tag: v6.8)
611

712
- Spring 트랜잭션 적용하기

java110-project/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# java110-project
22

3+
## v6.9
4+
5+
- Spring WebMVC 정리
6+
- 작업
7+
- /WEB-INF/app-servlet.xml 프론트 컨트롤러 설정 파일 작성
8+
- InternalResourceViewResolver로 교체
9+
- /WEB-INF/web.xml에서 프론트 컨트롤러의 설정 파일 정보 지정하기
10+
- JSP를 /WEB-INF/jsp/ 폴더로 옮긴다.
11+
- 페이지 컨트롤러의 리턴 값을 변경한다.
12+
313
## v6.8
414

515
- Spring 트랜잭션 적용하기

java110-project/src/main/java/bitcamp/java110/cms/AppConfig.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,26 @@
99
import org.springframework.beans.factory.annotation.Autowired;
1010
import org.springframework.context.ApplicationContext;
1111
import org.springframework.context.annotation.Bean;
12-
import org.springframework.context.annotation.ComponentScan;
12+
import org.springframework.context.annotation.Configuration;
1313
import org.springframework.context.annotation.PropertySource;
1414
import org.springframework.core.env.Environment;
1515
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
1616
import org.springframework.transaction.PlatformTransactionManager;
1717
import org.springframework.transaction.annotation.EnableTransactionManagement;
1818

19-
@ComponentScan(basePackages="bitcamp.java110.cms")
19+
20+
// 스프링 IoC 컨테이너에게 이 클래스가 컨테이너를 위한 설정 정보를 담고 있는
21+
// 클래스라는 것을 알려주기 위해 다음 애노테이션을 추가한다.
22+
@Configuration
23+
24+
/*
25+
@ComponentScan(
26+
basePackages="bitcamp.java110.cms",
27+
excludeFilters=@Filter(
28+
type=FilterType.REGEX,
29+
pattern="bitcamp.java110.cms.web.*"
30+
))
31+
*/
2032
@PropertySource("classpath:/bitcamp/java110/cms/conf/jdbc.properties")
2133
@MapperScan("bitcamp.java110.cms.dao")
2234

java110-project/src/main/java/bitcamp/java110/cms/web/AuthController.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,40 @@
11
package bitcamp.java110.cms.web;
22

33
import javax.servlet.http.Cookie;
4-
import javax.servlet.http.HttpServletRequest;
54
import javax.servlet.http.HttpServletResponse;
65
import javax.servlet.http.HttpSession;
76

8-
import org.springframework.beans.factory.annotation.Autowired;
97
import org.springframework.stereotype.Controller;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.PostMapping;
1010
import org.springframework.web.bind.annotation.RequestMapping;
1111

1212
import bitcamp.java110.cms.domain.Member;
1313
import bitcamp.java110.cms.service.AuthService;
1414

1515
@Controller
16+
@RequestMapping("/auth")
1617
public class AuthController {
1718

18-
@Autowired
1919
AuthService authService;
2020

21-
@RequestMapping("/auth/login")
21+
public AuthController(AuthService authService) {
22+
this.authService = authService;
23+
}
24+
25+
@GetMapping("form")
26+
public void form() {
27+
}
28+
29+
@PostMapping("login")
2230
public String login(
2331
String type,
2432
String email,
2533
String password,
2634
String save,
27-
HttpServletRequest request,
2835
HttpServletResponse response,
2936
HttpSession session) {
3037

31-
if (request.getMethod().equals("GET")) {
32-
return "/auth/form.jsp";
33-
}
34-
3538
if (save != null) {// 이메일 저장하기를 체크했다면,
3639
Cookie cookie = new Cookie("email", email);
3740
cookie.setMaxAge(60 * 60 * 24 * 15);
@@ -65,14 +68,14 @@ public String login(
6568

6669
} else {
6770
session.invalidate();
68-
return "redirect:login";
71+
return "redirect:form";
6972
}
7073
}
7174

72-
@RequestMapping("/auth/logout")
75+
@GetMapping("logout")
7376
public String logout(HttpSession session) {
7477
session.invalidate();
75-
return "redirect:login";
78+
return "redirect:form";
7679
}
7780
}
7881

java110-project/src/main/java/bitcamp/java110/cms/web/ManagerController.java

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,41 @@
11
package bitcamp.java110.cms.web;
22

3+
import java.io.File;
34
import java.util.List;
4-
import java.util.Map;
55
import java.util.UUID;
66

77
import javax.servlet.ServletContext;
8-
import javax.servlet.http.HttpServletRequest;
9-
import javax.servlet.http.Part;
108

11-
import org.springframework.beans.factory.annotation.Autowired;
129
import org.springframework.stereotype.Controller;
10+
import org.springframework.ui.Model;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.PostMapping;
1313
import org.springframework.web.bind.annotation.RequestMapping;
1414
import org.springframework.web.bind.annotation.RequestParam;
15+
import org.springframework.web.multipart.MultipartFile;
1516

1617
import bitcamp.java110.cms.domain.Manager;
1718
import bitcamp.java110.cms.service.ManagerService;
1819

1920
@Controller
21+
@RequestMapping("/manager")
2022
public class ManagerController {
2123

22-
@Autowired
2324
ManagerService managerService;
24-
25-
@Autowired
2625
ServletContext sc;
2726

28-
@RequestMapping("/manager/list")
29-
public String list(
30-
@RequestParam(value="pageNo",defaultValue="1") int pageNo,
31-
@RequestParam(value="pageSize",defaultValue="3") int pageSize,
32-
Map<String,Object> map) {
27+
public ManagerController(
28+
ManagerService managerService,
29+
ServletContext sc) {
30+
this.managerService = managerService;
31+
this.sc = sc;
32+
}
33+
34+
@GetMapping("list")
35+
public void list(
36+
@RequestParam(defaultValue="1") int pageNo,
37+
@RequestParam(defaultValue="3") int pageSize,
38+
Model model) {
3339

3440
if (pageNo < 1)
3541
pageNo = 1;
@@ -38,35 +44,31 @@ public String list(
3844
pageSize = 3;
3945

4046
List<Manager> list = managerService.list(pageNo, pageSize);
41-
map.put("list", list);
42-
43-
return "/manager/list.jsp";
47+
model.addAttribute("list", list);
4448
}
4549

46-
@RequestMapping("/manager/detail")
47-
public String detail(
50+
@GetMapping("detail")
51+
public void detail(
4852
int no,
49-
Map<String,Object> map) {
53+
Model model) {
5054

5155
Manager m = managerService.get(no);
52-
map.put("manager", m);
53-
return "/manager/detail.jsp";
56+
model.addAttribute("manager", m);
57+
}
58+
59+
@GetMapping("form")
60+
public void form() {
5461
}
5562

56-
@RequestMapping("/manager/add")
63+
@PostMapping("add")
5764
public String add(
5865
Manager manager,
59-
HttpServletRequest request) throws Exception {
66+
MultipartFile file1) throws Exception {
6067

61-
if (request.getMethod().equals("GET")) {
62-
return "/manager/form.jsp";
63-
}
64-
6568
// 사진 데이터 처리
66-
Part part = request.getPart("file1");
67-
if (part.getSize() > 0) {
69+
if (file1.getSize() > 0) {
6870
String filename = UUID.randomUUID().toString();
69-
part.write(sc.getRealPath("/upload/" + filename));
71+
file1.transferTo(new File(sc.getRealPath("/upload/" + filename)));
7072
manager.setPhoto(filename);
7173
}
7274

@@ -75,7 +77,7 @@ public String add(
7577
return "redirect:list";
7678
}
7779

78-
@RequestMapping("/manager/delete")
80+
@GetMapping("delete")
7981
public String delete(int no) throws Exception {
8082

8183
managerService.delete(no);

java110-project/src/main/java/bitcamp/java110/cms/web/StudentController.java

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
11
package bitcamp.java110.cms.web;
22

3+
import java.io.File;
34
import java.util.List;
4-
import java.util.Map;
55
import java.util.UUID;
66

77
import javax.servlet.ServletContext;
8-
import javax.servlet.http.HttpServletRequest;
9-
import javax.servlet.http.Part;
108

11-
import org.springframework.beans.factory.annotation.Autowired;
129
import org.springframework.stereotype.Controller;
10+
import org.springframework.ui.Model;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.PostMapping;
1313
import org.springframework.web.bind.annotation.RequestMapping;
1414
import org.springframework.web.bind.annotation.RequestParam;
15+
import org.springframework.web.multipart.MultipartFile;
1516

1617
import bitcamp.java110.cms.domain.Student;
1718
import bitcamp.java110.cms.service.StudentService;
1819

1920
@Controller
21+
@RequestMapping("/student")
2022
public class StudentController {
2123

22-
@Autowired
2324
StudentService studentService;
24-
25-
@Autowired
2625
ServletContext sc;
2726

28-
@RequestMapping("/student/list")
29-
public String list(
30-
@RequestParam(value="pageNo",defaultValue="1") int pageNo,
31-
@RequestParam(value="pageSize",defaultValue="3") int pageSize,
32-
Map<String,Object> map) {
27+
public StudentController(StudentService studentService, ServletContext sc) {
28+
this.studentService = studentService;
29+
this.sc = sc;
30+
}
31+
32+
@GetMapping("list")
33+
public void list(
34+
@RequestParam(defaultValue="1") int pageNo,
35+
@RequestParam(defaultValue="3") int pageSize,
36+
Model model) {
3337

3438
if (pageNo < 1)
3539
pageNo = 1;
@@ -38,33 +42,30 @@ public String list(
3842
pageSize = 3;
3943

4044
List<Student> list = studentService.list(pageNo, pageSize);
41-
map.put("list", list);
42-
return "/student/list.jsp";
45+
model.addAttribute("list", list);
4346
}
4447

45-
@RequestMapping("/student/detail")
46-
public String detail(
48+
@GetMapping("detail")
49+
public void detail(
4750
int no,
48-
Map<String,Object> map) {
51+
Model model) {
4952

5053
Student s = studentService.get(no);
51-
map.put("student", s);
52-
return "/student/detail.jsp";
54+
model.addAttribute("student", s);
5355
}
5456

55-
@RequestMapping("/student/add")
57+
@GetMapping("form")
58+
public void form() {
59+
}
60+
61+
@PostMapping("add")
5662
public String add(
5763
Student student,
58-
HttpServletRequest request) throws Exception {
64+
MultipartFile file1) throws Exception {
5965

60-
if (request.getMethod().equals("GET")) {
61-
return "/student/form.jsp";
62-
}
63-
64-
Part part = request.getPart("file1");
65-
if (part.getSize() > 0) {
66+
if (file1.getSize() > 0) {
6667
String filename = UUID.randomUUID().toString();
67-
part.write(sc.getRealPath("/upload/" + filename));
68+
file1.transferTo(new File(sc.getRealPath("/upload/" + filename)));
6869
student.setPhoto(filename);
6970
}
7071

@@ -74,7 +75,7 @@ public String add(
7475

7576
}
7677

77-
@RequestMapping("/student/delete")
78+
@GetMapping("delete")
7879
public String delete(int no) throws Exception {
7980

8081
studentService.delete(no);

0 commit comments

Comments
 (0)