본문 바로가기
반응형

Spring91

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 -코드의 흐름을 서버상에서만 이동한다. -브라우저는 서버에서의 흐름을 알 수 없기 때문에 주.. 2020. 5. 26.
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.. 2020. 5. 25.
커맨드 객체 *커맨드 객체 클라이언트가 전달해 주는 파라미터 데이터를 주입 받기 위해 사용하는 객체이다. 당연하게도, 객체를 사용하기 위해서는 새로운 클래스를 만들어야 한다. 이 객체의 변수명과 클라이언트가 전달해 주는 변수이름이 같아야 한다. 커맨드 객체는 자동으로 HttpServletRequest 객체에 담긴다. 따라서 jsp로 자동으로 전달된다. data1: data2: ========================================================= @GetMapping(@ModelAttribute DataBean bean){ System.out.println(bean.getData1()); System.out.println(bean.getData2()); return "test"; } .. 2020. 5. 25.
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.. 2020. 5. 25.
파라미터에 객체를 주입받기 이전에 (@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에 대한 값은 어떻게.. 2020. 5. 25.
파라미터 추출하기 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에서 해당 파라미터를 추출할 수 있는 것이다.. 2020. 5. 25.
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.. 2020. 5. 24.
프로젝트설정(not Xml, but Java) Xml으로 Spring 초기 설정을 했을 때, WEB-INF 폴더의 안에 했다. 이번 시간에는, Java로 구현한다. java파일은 Java Resources의 src안에 만든다. 가장 핵심이었던 DispatcherServlet에 대한 설정을 web.xml에 했었는데, 이를 자바로 구현하면 2가지 방식이 있다. 1. WebApplicationInitializer (implements 구현) - web.xml에서 했던 것처럼 세세한 설정이 가능하며 이 interface를 구현하면 web.xml처럼 이 코드를 먼저 실행 2. AbstractAnnotationConfigDispatcherServletInitializer (extends 상속) 1. WebApplicationInitializer @Overrid.. 2020. 5. 24.
프로젝트 세팅(web.xml, servlet-context.xml) 셋팅에 관한 정보들은 외부에서 쉽게 접근할 수 없는 WEB-INF폴더 안에 생성하도록 한다. DispatcherServlet을 spring framework에 맞게 web.xml에 재정의한다. 초기 설정은 크게 2부분으로 나뉜다. appServlet / servlet을 mapping(연결)해주는 코드이다. url중에서도 /에 대하여 servlet 설정을 한다. /은 맨 처음 페이지에 들어왔을 때를 의미한다. 즉, appServlet은 처음에 페이지에 접속되면 기본적으로 지정되는 servlet이다. 이제 이 servlet-name에 정의된 appServlet이 무슨 역할을 하는지도 정의 해주어야 한다. appServlet org.springframework.web.servlet.DispatcherServl.. 2020. 5. 24.
반응형