tutorial - 폴더 명 : controller
controller - MainController.java 파일 생성
@Controller
Annotation 작성
@RequestMapping("/")
Annotation작성
코드 작성
main - 폴더 명 : webapp 생성
webapp - 폴더 명 : WEB-INF 생성
WEB-INF : 파일 명 : index.jsp 생성
코드 작성
https://mvnrepository.com/artifact/org.projectlombok/lombok
tomcat embed jasper 검색
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependencies>
내에 추가하기
Now 클릭
👎 표시 : dependency가 제대로 설치된 것 같지 않다.
터미널에 mvn -U clean install
입력
pom.xml 우클릭 - Update project
👍 으로 변경됐다!
dependency가 제대로 추가 됐다.
application.properties
에 코드 추가 후 실행
server.port=8090
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
🌺 주의사항 : properties
파일에는 주석x, 공백 칸 x 🌺
[결과]
WEB-INF - 파일명 : result.jsp
생성
코드 입력
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="add"> <!-- localhost:8090/add -->
<label for="name">도서명</label><br>
<input type="text" id="name" name="name"><br>
<label for="author">저자</label><br>
<input type="text" id="author" name="author"><br>
<button type="submit">보내기</button>
</form>
</body>
</html>
// 2. ModelAndView.class
@RequestMapping("/add")
public ModelAndView add(HttpServletRequest request, HttpServletResponse response){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/result");
modelAndView.addObject("name", request.getParameter("name"));
modelAndView.addObject("author", request.getParameter("author"));
return modelAndView;
}
코드 추가 및 MainController.java 실행
[결과]
보내기 클릭
MainController.java 코드 추가
// 3. RequestParam 방식, (HttpServletRequest보다 간소화된 형태)
@RequestMapping("/add")
public ModelAndView add(@RequestParam("name") String name, @RequestParam String author){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("result");
modelAndView.addObject("name", name);
modelAndView.addObject("author", author);
return modelAndView;
}
[결과]
보내기 클릭
2) ModelAndView와 동일한 결과가 도출된다 !
MainController.java에 코드 추가
tutorial - 폴더명 : model 추가
model - 파일명 : Book.java 생성
name, author 변수 선언 후 Getter, Setter 및 생성자 생성
MainController에서 Book 클래스 import
@RequestMapping(value="/get")
public Book getBook(@RequestParam("name") String name, @RequestParam("author") String author){
Book book = new Book();
book.setName(name);
book.setAuthor(author);
return book;
}
코드 수정
MainController.java에서 @Controller
주석 처리,
@RestController
Annotation 추가
Get 옆에 Enter request URL
부분에
localhost:8090/get?name="노인과바다"&author="헤밍웨이"
입력, Send클릭
결과값이 JSON 형태로 추출된다.
다른 프로그래밍 언어 사이 (React와 Java 등)에서 이어주는 역할을 한다.
React(front)에서는 JSON을 Stringfy()를 통해 문자열로 변경했었다.
front에서 byte 코드로 보내고, Java(back)에는 역직렬화를 통해 자바 언어가 이해할 수 있는 형태로 변환한다.