iknowahra / cspiEdu

CSPI OJT
0 stars 0 forks source link

2021.10.07 교육내용 정리 #15

Open iknowahra opened 2 years ago

iknowahra commented 2 years ago

2021.10.07

Controller



redirect vs forward

  1. redirect:

: 보통은 error page 로 보낼 때 (보통 오류날 때 다른 페이지로 보낼땐 파라미터를 보낼 필요가 없으므로)

: request, response 객체를 새로 생성 (파라미터 전달이 안되는 이유)

: URL 변화 O

if(view.equals("N")) {
  return "redirect:https://naver.com";
}



  1. forward (parameter까지 같이 전송할 때, 자주 안 씀)

: request, response 객체를 공유한다.

: URL 변화 X



form으로 데이터를 넣은 후 controller에서 데이터를 viewer로 넘기기

name을 지정해주어야 데이터를 꺼낼 때 알 수 있다.

<%--form.jsp--%>
<form method="get" action="form/saveGet">
  <p>input tag</p>
  <input type="text" name="title">

  <p>text area</p>
  <textarea rows="10" cols="100" name="contents"></textarea>
  </br>

  <select name="view">
     <option value="Y">public</option>
     <option value="N">private</option>
  </select>
  </br> 

  <input type="submit" value="send button">
</form>



//src/main/java > com.ahra.www > FormController.java
@Controller
@RequestMapping(value = "form")
public class FormController {
  @RequestMapping(value = "", method = RequestMethod.GET)
  public String form(HttpServletRequest request, Model model){
    return "form/form";
  } 

  @RequestMapping(value = "saveGet", method = RequestMethod.GET)
  public String saveGet(HttpServletRequest request, Model model){
    return "form/viewer";
  }
  ...
}



@RequestMapping(value = "form")위에 설정해 줌으로써, 하위의 @RequestMapping(value = "")@RequestMapping(value = "viewer")form/ 이나 form/viewer 로 작성하지 않고도 가능



get 방식의 parameter로 데이터 가져오기

@RequestMapping(value="saveGet", method = RequestMethod.GET)
public String saveGet(HttpServletRequest request, Model model){
  String title = request.getParameter("title");
  ...
  model.addAttribute("title". title);
  return "form/viewer"
}

HttpServletRequest를 통해 데이터를 받아오고, Model 객체를 이용해서 viewer로 값을 보내고 있다.

<%--form > viewer--%>
<h1>
    ${title }
</h1>



** post로 데이터를 보내는 방법 : 숙제

** 다음주 화요일 수업 (12일)

seulgi9834 commented 2 years ago

제가 교육에서 놓쳤던 부분까지 정리해주셔서 잊지 않고 공부할 수 있었습니다! 감사합니다!~