*Controller
- 웹에 요청처리, 웹 파라메터 처리, 관계유지객체사용, scope객체 사용, view페이지명 설정,
service 클래스를 사용.
-웹의 요청 하나를 method하나로 처리한다.
작성법)
1. 클래스의 위에 @Controller annotation 선언.( HandlerMapper가 component-scan 수행 )
@Controller
public class TestController{
2. method위에 요청URL을 처리할 수 있도록 annotation선언
@RequestMapping, @GetMapping, @PostMapping
@RequestMapping( value=“/요청URL”, method=요청방식 )
public String method( 매개변수,,,, ){
return “응답할JSP명”;
}
*POJO( Plain Old Java Object)지원
-특정외부기술을 포함하지 않고, 순수하게 자바의 데이터 형이나 기능만으로 제작되는 클래스.
- 실행과 테스트의 용이성 향상
(별도의 Container가 존재하지 않아도, 실행 및 테스트를 손쉽게 할 수 있다.)
*상위 경로 설정
-상위경로가 설정된 Controller는 의 XxxMapping 들의 상위경로 붙여져서 하위경로가 사용된다.

*Web 요청
직접요청, <a>, <form method=“get”>, location
=>Controller 에서는
@GetMapping(“/요청URI”)
@RequestMapping( value=“/요청URI”, method= RequestMethod.GET );
<form method=“post”>
=>Controller 에서는
@PostMapping(“/요청URI”)
@RequestMapping( value=“/요청URI”, method= RequestMethod.POST );
-GET방식, POST방식 모두 호출
method 속성에 값을 배열로 처리
@RequestMapping( value=“/요청URI”,method={RequestMethod.GET,RequestMethod.POST});
*Controller 에서 web parameter 받기
- boot에서는 한글 처리를 하지 않아도 된다.
- spring legacy에서는 DD에 <filter>, <filter-mapping>으로 CharacterEncodingFilter를
등록하여 한글을 처리.
- HttpServletRequest, 단일형, DTO로 parameter를 처리 할 수 있다.
<input type=“text” name=“name”/>
<input type=“text” name=“age”/>
public class TestController{
@GetMapping(“/URI”)
public String param( String name, int age ){
}
<input type=“text” name=“name”/>
<input type=“text” name=“age”/>
public class TestController{
@GetMapping(“/URI”)
public String param( DataDTO dd ){
}
*ModelAndView사용
-데이터와 view페이지를 모두 가지고 있는 클래스.
- org.springframework.web.servlet.ModelAndView 클래스를 사용
- 객체화를 개발자가 해야한다. (생명주기 관리를 개발자가 한다. )
- @ExceptionHandler를 사용하여 예외처리할 때 주로 사용.
사용법)
1. Controler method에서 반환형을 ModelAndView 설정
public ModelAndView method( 매개변수,,,, ){
2.생성
ModelAndView mav=new ModelAndView();
3.view명을 설정
mav.setViewName(“뷰명”);
4.데이터 설정
mav.addObject(“이름”, 값 );
5. mav를 반환
return mav;
*HttpServletRequest사용.
- web parameter 이외에 접속자의 정보를 함께 사용해야 하는 경우.
- 순수 자바 기술로만 만들어지는 POJO와는 다르게 외부 클래스가 사용되므로 WAS에
의존성 있다.( Test가 불편 )
@GetMapping(“/URI”)
public String method( HttpServletRequest reqeust ){
reqeust.getParameter(“이름”);
reqeust.getParameterValues(“이름”);
request가 제공하는 접속자의 정보를 얻을 수 있다.
}
사용법)
1. Controller method에서 HttpServletRequest를 매개변수로 설정
public String method(HttpServletRequest request ){
2.값 할당
request.setAttribute(“이름”,값 )
3. view명을 반환
return “view명”;
*redirect이동

*@RequestParam
- Controllere method 매개변수 앞에 선언하는 annotation.
- defaultValue처리와 HTML Form Control과 parameter가 이름이 달랐을 때 사용.
- 단일형에만 사용할 수 있다. DTO에서는 사용할 수 없다.
사용법)
@RequestParam(value=“Form Control명”,defaultValue=“empty였을때 설정된 기본값”,
required=true|false)
@GetMapping(“…”)
Public String method( @RequestParam(value=“”,defaultValue=“”)데이터형 변수명 ,
@RequestParam(value=“”,defaultValue=“”)데이터형 변수명 );
예)
<input type=“text” name=“age”>
public String method(@RequestParam(value=“age”,default=“0”) int myAge){

사용법)
1.Model interface를 요청처리 method에 parameter로 선언
@GetMapping(“”)
public String useModel( Model model ){
2. Model interface에 값 설정
model.addAttribute(“이름”, 값 );
}
*view로 데이터를 전달
- HttpServletRequest, Model interface, ModelAndView class를 사용하면 업무처리한 결과를
view에 전달할 수 있다.
*Model ineterface사용.
-view 와 데이터를 구분하여 처리할 수 있다.
- org.springframework.ui 패키지에서 제공.
- model.addAttribute(“이름”, 값 ); => request scope객체에 값 설정되므로 JSP에서는
${ requestScope.이름 }으로 값을 얻을 수 있다.
-@SessionAttributes를 클래스위에 선언하면session scope와 reqeust scope 객체에 값이
동시에 할당된다.
'Spring' 카테고리의 다른 글
| [Spring] ExceptionHandler, 파일 업로드 (0) | 2025.09.08 |
|---|---|
| [Spring] SessionAttributes, cookie 얻기 (2) | 2025.09.08 |
| [Spring] 구조, 디렉토리, 설정, tomcat, jakarta, properties (0) | 2025.09.08 |