* 폴더 구조
\application
\controller → 라우팅 기능
\domain → ( DTO / VO ) ⇒ 데이터 / DAO ⇒ 메서드
\service → 데이터 정제 기능
\util → 기타 기능
1. 파일 생성 시, 폴더도 함께 생성시키기
- Project Package창에서 생성시킨 결과 확인
2. index.jsp 파일 생성 후, Spring Boot App 실행
- console창에서 톰캣이 8080 포트로 시작한다는 것
→ 서버창에 ‘localhost:8080’ 입력 시, Whitelabel Error Page 출력됨
• 현재 톰캣 서버의 포트 : 80 → 'src/main/resources' 내 application.properties 파일에서 서버 포트 변경해주기
- console창에서 톰캣이 80포트로 시작한다는 것 확인 가능
→ 서버창에 ‘localhost:80’ 입력 시, index.jsp 화면 출력됨
3. controller를 통해 jsp 파일로 접근 : 스프링 부트 방식
1) hello.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>
HELLO
</body>
</html>
2) HomeController 클래스 생성
• ‘@Controller’ 주석 추가 → 라우터 역할
- 하나의 컨트롤러에 여러 종류의 관련된 메서드 생성 가능
- jsp 파일 만든 후, controller에 메서드 추가
package org.choongang.cook.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
// 스프링 부트에서 uri를 분석해 원하는 메서드를 연결해주는 역할 = 라우터 (Router)
// @Controller
// * 컨트롤러 : 요청한 주소(uri)로 처리할 메서드를 연결해주는 기능
// → 이 요청을 처리할 View를 호출함
// 다른 처리가 필요하다면 서비스나 모델에 의뢰함
// @RestController
// * 레스트(Rest) 컨트롤러 : 표현할 View가 없고, 실행 후 텍스트값이 생성됨
// 일반적으로 텍스트 형식은 JSON 형식 사용함
// * Controller에서 JSON 출력 가능함
// → 메서드에서 결과값 앞에 '@ResponseBody'라는 주석을 붙여주면 됨
@Controller
public class HomeController {
// 요청 uri 처리 : 매핑(mapping)이라는 주석을 사용
// @GetMapping : 요청값이 GET 방식으로 요청되었을 때
// @PostMapping : 요청값이 POST 방식으로 요청되었을 때
// @RequestMapping : 위의 두 가지를 합쳐놓은 통합 형식
// → 입력 글자수가 많아 거의 사용하지 않음
@GetMapping("/")
// '/'로 요청이 들어오면, 메서드의 반환값 = view 파일의 이름
// 메서드의 구현부에 다른 데이터를 처리할 서비스나 모델을 부름
// 그 후 생성된 데이터를 view로 전달함
public String home() {
return "index";
}
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
3) console창에 'localhost/hello' 호출
4. 서블릿을 통해 jsp 파일로 접근
1) hi.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>
Servlet를 통해 접근하면, Hi~!
</body>
</html>
2) 서블릿 생성 : HiServletController
서블릿을 작동시키기 위해서 Application에 ‘@ServletComponentScan’ 주석 추가
package org.choongang.cook.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="hiServletController", urlPatterns="/hi")
public class HiServletController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
// 이 쪽으로 요청이 오면, view 파일을 호출함
req.getRequestDispatcher("/WEB-INF/view/hi.jsp").forward(req, res);
}
}
'백엔드 > Spring Boot' 카테고리의 다른 글
2. 스프링 부트 시작하기 (1) - 스프링 콘셉트 공부 (0) | 2023.07.10 |
---|---|
48, 49 - Spring Boot : 회원가입 게시판 생성 (1) (0) | 2023.07.07 |
46 - Spring : 의존성 주입 (0) | 2023.07.04 |
46 - Spring Boot (0) | 2023.07.04 |
Spring Boot 설정 (0) | 2023.07.03 |