BACK END/Spring

3일(08.19) Redirect

라미보 2022. 8. 19. 14:51

 

 

 

 

 

📂 com.spring.ex 

 

 

💾 RedirectController.java

package com.spring.ex;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RedirectController {
	@RequestMapping("/form")
	public String form() {
		
		return "redirect/form";
	}

	@RequestMapping("/input")
	public String input(HttpServletRequest request, Model model) {
		System.out.println("/input요청 처리");
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		 
		model.addAttribute("name2", name);
		model.addAttribute("age2", age);
		model.addAttribute("addr2", "서울");
		//return "redirect/result"; // 
		return "redirect:/last";
	}
	
	@RequestMapping("/last")
	public String last() {
		System.out.println("/last요청 처리");
		return "redirect/last";
	}
	
}

 

 

model.addAttribute("name2", name); - model로 설정하면 또다른 요청(last)에 의해 넘어갈때는 파라미터개념으로 생각하여 파라미터로 값을받으면 출력이 된다.
model.addAttribute("age2", age);
model.addAttribute("addr2", "서울");  -  parameter로 입력한 주소값은 없다. 별도로 따로 챙긴다. (form에 주소 입력하는거 없음)

 

return "redirect:/last";  - last 요청, :(콜론)은 다시 controller를 요청 , 콜론이 없으면 redirect 폴더의 last로 가라는 의미가 된다.

 

return "redirect/result"; 
- result.jsp가 MVC의 View역할을 한다. controller의 요청이 끝나면 뷰를 요청
- controller의 요청이 끝나고 다시 controller요청을 할 수 있다.

 

 

 

 

 

 

📂 WEB-INF/views/redirect

 

 

 

💾 form.java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    redirect/form.jsp<br>
    
    <form action="input" method="post">
    	이름 : <input type="text"  name="name"><br><br>
    	나이 : <input type="text"  name="age"><br><br>
    	
    	<input type="submit" value="전송">
    </form>

 

 

💾 result.java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    result.jsp<br><br>
    
    <!-- 이름,나이 파라미터로 넘어간 것을 출력해본다. -->
    이름1: ${param.name }<br>
    나이1: ${param.age}<br>
    주소1: ${param.addr }<br>
    <br>

   <!--  속성 설정한것으로 값을 가지고와서 출력해본다. -->
    이름2: ${name }<br>
	나이2: ${requestScope.age }<br> 
	주소: ${addr}<br>

 

 

💾 last.java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

  redirect/last.jsp<br><br>

    이름1: ${param.name2 }<br>
    나이1: ${param.age2}<br>
    주소1: ${param.addr2}<br>
    <br>

    이름2: ${name2 }<br>
	나이2: ${requestScope.age2 }<br> 
	주소2: ${addr2}<br>

- 이름,나이 파라미터로 넘어간 것을 출력해본다. 출력된다. 속성으로 넘긴것이 파라미터로 결과가 나온다

- input요청에서 last컨트롤러 요청으로 넘어갈때 model로 속성 설정한 것이 파라미터개념으로 생각되어 파라미터로 값을 받는것에만 결과가 출력이 되는것