티스토리 뷰

BoardController.class

 

@RequestMapping 에서 method=RequestMethod.GET or POST가 추가되었습니다. 무엇을 의미할까요?

호출방식에 따라 같은 URL 요청이 들어와도 별개의 메서드가 처리할 수 있게 지원한 것입니다.

 

https://hongku.tistory.com/122

 

SpringMVC :: @RequestMapping의 GET방식과 POST방식, GET 과 POST 차이

@RequestMapping의 GET방식 요청과 POST방식 요청 Request요청을 보낼때 GET방식으로 하는방법과 POST 방식으로 하는 방법이 있다. GET 방식으로 요청 뷰 페이지에서 form 태그 속성에 method 값을 GET으로 설정

hongku.tistory.com

 

 

BindingResult는 뭘까요? 후에 추가할 validation과 비슷한 검증 역할을 합니다.

 

write.jsp

일반적으로 요청 메서드는 GET 메서드이기에 list.jsp 에서 새 글을 클릭하면, GET으로 들어가게 됩니다.

저희는 DB에다 데이터를 저장할 것이고 password의 값을 숨기기 위해 POST method를 form 형식에 넣습니다. 그렇게 되면 등록을 했을 때 RequestMethod.POST로 들어가는 메서드로 들어가는 것을 확인할 수 있습니다.

 

그리고 검증을 위해 Validation을 추가했습니다.

BoardController.class 에서 @Valid BoardVO boardVO가 보이실 겁니다. 여기에 제한을 걸어 향후 일어날 예외를 정해두는 것입니다.

 

pom.xml

 

pom.xml에 hibernate를 추가하고,

BoardVO.class

@Length 라던지, @NotEmpty라는 어노테이션을 통해 길이와 비어있으면 안된다라는 것을 제시할 수 있습니다. 참고로 제목이 5글자 넘어가게 되면 재실행하라고 write.jsp가 반복됩니다.

 

result

 

이런식으로 데이터가 추가된 것을 확인할 수 있습니다.

 

 write method

redirect:/board/list vs /board/list

 

/board/list인 경우 localhost:8080/mvc/board/write로 계속 남아있게됩니다. 이때 사용자가 화면을 새로고침을 할때마다 다시 POST 요청이 서버로 전송되고 같은 글이 다시 DB에 저장됩니다.

 

POST요청 성공과 redirect:/board/list를 주면 의도대로 localhost:8080/mvc/board/list로 변경이되며 새로 고침버튼을 눌러도 서버에 부작용을 일으키지 않게 됩니다.

 

이것을 PRG 패턴이라고 합니다.

 

+ PRG 패턴

https://it-eldorado.tistory.com/68

 

[Web] PRG (Post-Redirect-Get) 패턴

1. PRG (Post-Redirect-Get) 패턴이란? PRG(Post-Redirect-Get) 패턴은 웹 개발 시에 권장되는 디자인 패턴 중 하나로, HTTP POST 요청에 대한 응답이 또 다른 URL로의 GET 요청을 위한 리다이렉트(응답 코드가 3X..

it-eldorado.tistory.com

 

 

 

수정)

 

 

 

 

 

BoardController edit method

 

눈여겨보아야하점은 HttpServletRequest 객체를 받아 id값의 value를 받는 getParameter를 이용해 password를 비교했습니다.

edit.jsp

 

id = pwd가 getParameter로 가는 것이죠.

 

 

비밀번호가 일치하지 않으면 msg를 뜨게하고, 일치하면 수정하는 식으로 구성했습니다.

 

 

 

마지막 삭제는 비슷비슷하니 코드와 결과만 올리도록 하겠습니다.

 

 

비밀번호를 맞게 입력하면 no 0이 사라진 것을 확인할 수 있습니다.

 

끝~~~~~!

 

최종 : https://github.com/kimjongbuem/spring_mvc_basic_book_project

 

GitHub - kimjongbuem/spring_mvc_basic_book_project: 스프링에 대한 로직으로 게시판을 구현하였습니다.

스프링에 대한 로직으로 게시판을 구현하였습니다. Contribute to kimjongbuem/spring_mvc_basic_book_project development by creating an account on GitHub.

github.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함