2022.03.07 - [Back-end/Spring] - [Spring] sts3 초기 설정
[Spring] sts3 초기 설정
※ STS UTF-8설정하기 상단 window 탭 - preference 에서 WEB-CSS Files / HTML Files / JSP Files 의 Encoding을 ISO 10646/Unicode(UTF-8)로 바꿔줌 ※ STS 템플릿 설정하기 상단 window 탭 - preference 에서..
ddvuutk.tistory.com
이전에 포스팅을 해둔 3번째글 sts3초기설정 까지 끝내서 프로젝트 설정을 완료하면 컨트롤러를 생성하고 작성해야 한다.
#컨트롤러(Controller)생성
-프로젝트의 src/main/java 안에 컨트롤러만 모아둘 패키지 com.정해둔.이름의 패키지.controller를 생성하고 패키지 안에MainController라는 이름의 java클래스를 생성한다.
-MainController 클래스 이름위에 @Controller 어노테이션을 추가하고 스프링 프레임워크에서 자동 import 시킨다.
-저장한 후 S마크가 생기는 것은 스프링의 제어를 받고있다는 표시이다.

-@RequestMapping어노테이션을 사용해 ()안에 있는 경로를 컨트롤러와 매핑(이어준다)한다.
-아래와 같이 작성되었다면 "루트/Home"경로로 접속을 시도하면 해당 컨트롤러가 담당을 하고 그 아래 main메소드는
"루트/Home/part1" 경로를 담당하게 된다.

-메소드 타입을 String으로 정하고 "part1"을 리턴하면 이 값은 리턴이 되면 스프링이 알아서 분석하고 자동으로 src/main/webapp/WEB-INF/views안에 있는 part1.jsp와 연결해준다. 이 설정은 servlet-context.xml에 작성된다.
※@RequestMapping이란?
-특정 uri로 요청을 보내면 Controller에서어떠한 방식으로 처리할지 정의하는데 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것. value와 method를 가장 많이 사용한다
-어노테이션에서 URL매핑을 하면 되는데 이때 "/**"로 매핑하면 별도로 매핑한 url을제외한 모든 URL은 디폴트 메소드가 처리하게 된다.
▷"/" : "IP:포트/context/"URL매핑
▷"/*" : "IP:포트/context/아무거나~" URL매핑
▷"/**" : "IP:포트/context/아무거나/아무거나/아무거나~" URL매핑(그 아래 모든 것을 처리) - 디폴트 메서드 매핑방법
-@RequestMapping의 value - value(String[]) : URL값
-@RequestMapping의 메소드 - method(RequestMethod[]) : HTTP Request메소드 값
@RequestMapping(value="/hello", method=RequestMethod.Get)
하지만 Spring4.3이후
위의 방식이 불편하기 때문에 클래스 바깥에 @RequestMapping으로 공통적인 url을 설정한 후
@GetMapping, @PostMapping, @PutMapping, @DeleteMapping으로 간단하게 생략이 가능해졌다. 뒤에 추가적으로 url을 붙일 때는 ("/url주소")를 붙여주면 된다.
@Controller
@RequestMapping(value="/hello")
public class HelloController{
@GetMapping("/추가할url주소") //이자리에 @PostMapping @PutMapping, @DeleteMapping등을 사용
public String/ModelAndView helloGet(...){
...
}
}
-@RequestMapping은 클래스와 메서드에 붙일 수 있고 @GetMapping, @PostMapping과 같은 것은 메서드에만 붙일 수 있다.
-servlet-context.xml을 보면 name="prefix"로 된 부분에 "/WEB-INF/view"가 적혀있고 name="suffix"로 된 부분엔 ".jsp"가 작성되어있다. 이 설정에 따라 "part1"을 리턴하면 part1의 앞엔 prefix부분이, 뒤엔 suffix부분이 자동으로 붙어 /WEB-INF/views/part1.jsp가 완성되는 것이다.
-context:component-scan부분은 스프링이 스캔할 경로를 지정해주는 것이다. 기본적으로 프로젝트를 생성할 때 만든 가장 상위 패키지의 이름으로 되어있고 그 아래 작성된 contoller 패키지도 탐색 범위에 포함된다.

-view가 아닌 data를 반환해야 하는 겨웅라면@ResponseBody를 사용하면 된다
-@ResponseBody 어노테이션을 통해 간단하게는 String, Map, JSON등을 전달할 수 있고 $Ajax를 통해서 값을 전달할 수도 있다.
-Spring4.0부터는 @Controller와 @ResponseBody어노테이선 대신 @RestController을 제공한다.
-@RestController를 사용하면 @ResponseBody를 추가할 필요가 없고, @ResponseBody어노테이션은 기본으로 활성화되어있다.
이 설명은 아래 글을 참조하면 된다.
2022.03.19 - [Back-end/Spring] - [Spring] @Controller와 @ResponseBody
'Back-end > Spring' 카테고리의 다른 글
| [Spring Boot] JSP 연동하기 (0) | 2022.03.21 |
|---|---|
| [SpringBoot] 시작하기 / 프로젝트 생성 (0) | 2022.03.21 |
| [Spring] 쿠키(Cookie)란? (0) | 2022.03.19 |
| [Spring] 세션(session)이란? (0) | 2022.03.19 |
| [Spring] @Controller와 @ResponseBody (0) | 2022.03.19 |
댓글