@Controller 이용하여 생성된 컨트롤로 메소드는 ViewResolver로부터 return 값으로 반환하는 문자열 이름의 view 페이지를 출력
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class SomeController {
@RequestMapping(value = "/someURL", method = RequestMethod.GET)
public String someURL(){
return "someView";//viewResolver에 세팅에 따라 someView.jsp출력
}
}
그럼 view없이 일반적인 Text(String)을 브라우저로 바로 출력하고 싶다면 기존 서블릿의 PrintWriter를 이용하여 출력
package com.some
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
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("/some")
public class SomeClass extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter ptr = response.getWriter();
int p1 = Integer.parseInt(request.getParameter("param1")); //전송된 'param1' 값
ptr.print("Hello~"+p1);
}
}
@ResponseBody이용하면 브라우저로 쉽게 출력 가능
@Controller
public class SomeController {
@RequestMapping(value = "/someURL", method = RequestMethod.GET)
@ResponceBody
public String someURL(){
return "Hello~";
}
}
@RequestBody는 클라이언트가 전송하는 Json(application/json) 형태의 HTTP Body 내용을 Java Object로 변환하며 Body가 존재하지 않는 Get 메소드에 @RequestBody이용시 에러 발생
@RequestBody로 받는 데이터는 Spring에서 관리하는 MessageConverter들 중 하나인 appingJackson2HttpMessageConverte를 통해 Java 객체로 변환
'Dev > Spring' 카테고리의 다른 글
SQL EXPLAIN: 쿼리 성능 분석의 핵심 (0) | 2025.07.15 |
---|---|
[Spring] DispatcherServlet과 web.xml 설정 (0) | 2021.08.17 |
[Spring] 어노테이션 정리 (1) | 2021.08.17 |
[Spring] 스케쥴드 @Scheduled (2) | 2021.08.14 |