분류 전체보기
스프링 Request Scope 빈 주입
@Autowired를 활용하여 Bean을 자동으로 주입 받을 수 있다. 스프링 코어에서 prototype과 singleton이 있다. Spring MVC에서는 추가로 request, session, application을 제공하고 있다. Request scope Bean을 정의 할 때 request scope 로 정의하면 요청이 발생할 때 마다 Bean 객체가 생성되어 자동으로 주입된다. 주입된 Bean은 요청 발생 시 주입만 이루어지는 것이므로 request 영역에 저장되지는 않는다. Xml로 Bean을 설정하고 byName으로 주입 받은 경우에만 request 영역에 자동 저장 된다. java 방식 @RequestScope 어노테이션 사용 xml 방식 bean을 정의 할 때 scope="request..
스프링 RequestScope
RequestScope 새로운 요청이 발생해 응답결과가 브라우저로 전달 될 때 까지 요청 정보가 담겨있는 Request 객체를 사용할 수 있습니다. 이러한 사용 범위를 RequestScope라고 부릅니다. HttpServletRequest 객체에는 서버 개발자가 필요에 의해 데이터나 객체를 저장 할 수 있고 ReuqestScope 내에서 사용이 가능합니다. @Controller public class TestController{ @GetMapping("/test") public String test(HttpServletRequest request){ request.setAttribtue("data1","문자열1"); return "forward:/test2"; //redirect 사용시 소멸 되기에 밑에..
스프링 Redirect / Forward
1. Redirect - 서버가 클라이언트에게 요청할 주소를 응답결과로 전달하는 것을 의미 - 클라이언트는 응답결과로 받은 요청주소를 직접 요청하게 된다. - 브라우저가 요청하는 것이므로 주소창의 주소가 변경된다. - Redirect는 새로운 요청이 발생하는 것이므로 HttpServletRequest 객체는 소멸 후 새롭게 생성되며 HttpSession 객체는 그대로 유지가 된다. index.html Reirect @Controller public class TestController{ @GetMapping("/test") public String test(){ return "redirect:/test2"; } @GetMapping("/test2") public String test(){ return "..
스프링 Form 커맨드 태그
회원 정보 수정 등 정보 수정페이지를 구성할 때 요긴하게 사용 가능하다. 스프링에서는 형태로 되어 있는 커스텀 태그를 제공하고 있다. Form 커스텀 태그를 활용하면 Model 객체에 들어있는 값을 form 요소에 주입 시킬 수 있다. name : age : id : 확인 @PostMapping("/test") public String test(MemberDTO member){ return ""; } name : age : id : 확인 이렇게 value에 값이 들어오는 것을 확인 할 수 있다. Form 태그 사용을 위한 설정 URI 설정 name: age : id : MemberDTO public class MemberDTO{ private String name; private String age; p..
커맨드 객체란?
커맨드 객체란? - 클라이언트가 전달해주는 파라미터 데이터를 주입 받기 위해 사용되는 객체 data1 : data2 : 확인 이런 폼으로 데이터를 전송(post)하면 @PostMapping으로 맵핑이 되어 실행된다. 이때 MemberDTO 객체로 주입을 받는걸로 되어있다. @PostMapping("/test") public String test(@ModelAttribute MemberDTO member){ member.getData1(); member.getData2(); } 이 때 MemberDTO 라는 클래스를 만들어야 한다. 이 클래스를 커맨드 객체라고 한다. public class MemberDTO{ private String data1; private String data2; public Str..
스프링 ViewResolver
test 컨트롤러에 넘어온 값들이 ViewResolver를 통해 view로 넘어온다. el 객체를 사용할 경우 test data1 : ${param.data1} data2 : ${param.data2} HttpServletRequest 사용 @GetMapping("/test") public String test(HttpServletRequest request){ request.setAttribute("data1", 100); request.setAttribute("data2", 200); return ""; //view로 객체를 전송. } test data1 : ${requestScope.data1} data1 : ${requestScope.data2} Model 객체 public String test(..
객체로 파라미터 주입받기
1. Map과 List로 주입받기 클라이언트가 전달하는 모든 파라미터 데이터를 한번에 Map/List로 주입 받을 수 있다. * 단 동일 명으로 전달되는 2개 이상의 파라미터는 하나만 담기게 된다. 동일 명으로 전달되는 파라미터가 2개 이상이라면 List로 주입 받아야 한다. 형 변환이 자동으로 되지않아 문자열로만 받아야 한다. test @GetMapping("/test") public String test(@RequestParam Map map) { //@ReuqeustParam List list String data1 = map.get("data1"); String data2 = map.get("data2"); /* String data3 = map.get("list"); for(String str ..
스프링 파라미터 추출
1. HttpServletRequest @GetMapping("/test") public String test(HttpServletRequest request){ String data1 = request.getParameter("data1"); String [] data2 = request.getParameterValues("data2"); for(String str1 : data2){ System.out.println("data2 =" + str1); } } test data1=100 이고 data2 = 200,300이 배열로 담겨지게 된다. 2. WebRequest WebRequest는 HttpServletRequest 상위 클래스이다. @GetMapping("/test") public String ..