본문 바로가기

728x90
반응형

전체 글

(694)
RequestScope - 새로운 요청이 발생해 응답결과가 브라우저로 전달 될 때까지 요청 정보가 담겨 있는 Request 객체를 사용할 수 있다. - HttpServletRequest 객체에는 서버 개발자가 필요에 의해 데이터나 객체를 저장할 수 있고, RequestScope 내에서 사용이 가능하다. redirect : request 객체 소멸 forward : request 객체 유지 HttpServletRequest Model @ModelAttribute 1. redirect @Controller public class TestController { @GetMapping("/test1") public String test1(HttpServletRequest request) { request.setAttribute("dat..
Redirect와 Forward 1. Redirect -클라이언트는 응답결과로 받은 요청주소를 직접 요청하게 된다. -브라우저가 요청하는 것이므로 주소창의 주소가 변경된다. -Redirect는 새로운 요청이 발생하는 것이므로 HttpServletRequest 객체는 소멸하고 새롭게 생성되며, HttpSession 객체는 그대로 유지된다. @GetMapping("/test1") public String test1(){ return "redirect:/sub1"; } @GetMapping("/sub1") public String sub1(){ return "sub1"; } 주소창에 마지막 경로는 새롭게 요청됬으므로 sub1이다. 2. Forward -코드의 흐름을 서버상에서만 이동한다. -브라우저는 서버에서의 흐름을 알 수 없기 때문에 주..
Form 커스텀 태그 Form태그 JSP로 표현을 한다면 코드양이 길고, JSTL을 사용하면 양이 줄어든다. Form에 어떻게 Bean을 주입할까? 1. @ModelAttribute로 받아 setter를 통해 일일히 다 설정하고 request로 넘기기 2. model.addAttribute("name", 객체)로 전달하기 @GetMapping("/test1") public String test1(@ModelAttribute UserDataBean bean){ bean.setUser_name("홍길동"); bean.setUser_id("abcd"); bean.setUser_pw("1234"); bean.setUser_postcode("12345"); bean.setUser_address1("address1"); bean.set..
커맨드 객체 *커맨드 객체 클라이언트가 전달해 주는 파라미터 데이터를 주입 받기 위해 사용하는 객체이다. 당연하게도, 객체를 사용하기 위해서는 새로운 클래스를 만들어야 한다. 이 객체의 변수명과 클라이언트가 전달해 주는 변수이름이 같아야 한다. 커맨드 객체는 자동으로 HttpServletRequest 객체에 담긴다. 따라서 jsp로 자동으로 전달된다. data1: data2: ========================================================= @GetMapping(@ModelAttribute DataBean bean){ System.out.println(bean.getData1()); System.out.println(bean.getData2()); return "test"; } ..
ViewResolver 1. Request to DispatcherServlet : 사용자의 요청이 들어오면 먼저 Dispatcher Servlet이 요청한다. 2. Request to HandlerMapping : 그 요청이 어디 Controller로 보내야 하는지 요청한다. 3. Response Controller to DispatcherServlet : 해당 Controller가 어떤 것인지 반환한다. 4. Request to Controller : 해당 요청을 처리할 Controller에게 처리할 것을 요청한다. 5. Response ModeAndView to DispatcherServlet : model 객체와 view에 대한 정보를 DispatcherServlet에 반환한다. 6. Request View Name t..
파라미터에 객체를 주입받기 이전에 (@RequestParam int data1), (@RequestParam int data2), (@RequestParam String name1)등 직접적, 구체적으로 파라미터를 추출했다. 그런데 파라미터의 양이 많아진다면? Map을 사용해서 내용을 추출한다. test ======================================================================= @GeMapping("/test1") public String test(@RequestParam Map map, List data3){ System.out.println(map.get("data1")); System.out.println(map.get("data2")); //data3에 대한 값은 어떻게..
파라미터 추출하기 test1 get ====================================================== @GetMapping("/test1") public String test(HttpServletRequest request){ String data1 = request.getParameter("data1"); String data2 = request.getParameter("data2"); return "result"; } a태그 안에 주소 뒤 ?이후에 데이터와 값을 써 넣으면, 이것들은 HttpServletRequest 객체에 담기게 된다. test1 경로와 관련하여 Mapping이 될 때 저 파라미터들을 검사할 수 있다. 즉, Controller에서 해당 파라미터를 추출할 수 있는 것이다..
URL Mapping localhost:8080/aaaa/bbb.txt라는 tomcat 기반의 웹서비스 실행이 있다고 생각해보자. 이때 다시 처음 나오는 aaaa를 특별하게 context-path이다.(=어플리케이션 이름) 가장 최 상단은 webapps이고 그 안에 aaaa 폴더 안에 bbb.txt를 실행시킨 것이다. 우리는 context-path 이후의 경로를 설계해야 한다. eclipse에서 우리가 만든 코드들은 .plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps에 실행될 수 있게 변환되어 저장되어있다. 우리가 코드를 실행시키면 wtpwebapps로 복사가 되고 여기서 실행이 된다. localhost:8080/MVCTEST/sub1/test1 -> @GetMapping("/sbu..

728x90
반응형