web

글 검색 기능을 추가해보겠습니다. 제목,작성자,내용에 검색어가 포함된 글들만 리스트로 보여줄 예정입니다. BoardController @GetMapping("/board/search") public String search(@RequestParam(value="keyword") String keyword, Model model) { model.addAttribute("postList", boardService.searchPosts(keyword)); return "board/list.html"; } 여러분도 아시다시피 GET방식은 'localhost:8080?keyword=abcd' 로 값이 넘어오죠. REST API처럼 구현하고 싶은데 저는 실패를 했습니다.. 아무튼 저렇게 넘어온 값은 @Request..
오늘의 포스팅은 굉장히 짧을 예정입니다. 진짜 막상 마음을 먹으면 금방 뚝딱하고 만들 수 있는 파트거든요. BoardController @DeleteMapping("/board/post/{id}") public String delete(@PathVariable Long id) { boardService.delete(id); return "redirect:/board/list"; } controller에서는 service에게 넘겨주기만 합니다. BoardService @Transactional public void delete(Long id){ Board board = boardRepository.findById(id).orElseThrow(()->new IllegalArgumentException("해당..
https://kyuhyuk.kr/article/spring-boot/2020/07/21/Spring-Boot-JPA-MySQL-Board-Post-Update-Delete [Spring Boot] 게시판 구현 하기 (3) - 글 수정 및 삭제 앞의 글에서 글을 조회하는 기능을 만들었습니다. 이번 시간에는 글을 수정하고 삭제하는 기능을 구현해보겠습니다. kyuhyuk.kr 오늘도 이 분의 코드를 참고했습니다. Controller 추가 @GetMapping("/post/edit/{id}") public String edit(@PathVariable("id") Long id, Model model) { BoardDto boardDto = boardService.findById(id); model.addAtt..
게시글 작성에서 기존의 방식은 사용자가 글 제목, 작성자, 글 내용을 직접 입력해야했습니다. 그러나 로그인한 사용자의 이름을 게시글 작성자로 설정해두고 싶습니다. 이 처리를 위해서는 세션이 필요하다고 생각했고 관련 자료들을 찾게 되었습니다. HttpSession 활용하기 https://pro-pennek.tistory.com/entry/Spring-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC%EC%97%90%EC%84%9C-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A1%9C-Session%EA%B0%92-%EB%84%98%EA%B8%B0%EA%B8%B0 [Spring] 컨트롤러에서 서비스로 Session값 넘기기 어으 죽을 맛이다.ㅋㅋㅋㅋ 이것때문에 개고생함. 컨트롤러..
게시글 작성 기능에 이어서 글을 읽을 수 있는 기능을 넣어줍시다. 일단 게시글 목록 조회도 필요할 테고 그중에서 마음에 드는 글의 내용을 볼 수 있도록 해볼게요. BoardController @GetMapping("/board/list") public String list(Model model){ model.addAttribute("postList",boardService.findAllDesc()); return "board/list.html"; } @GetMapping("/board/post/{id}") public String findById (@PathVariable Long id,Model model){ BoardDto boardDto = boardService.findById(id); model..
2021.03.28 - [web/spring&spring boot] - [스프링부트] 게시판 - 게시글 등록 구현하기(1) [스프링부트] 게시판 - 게시글 등록 구현하기(1) 사용자가 메인 페이지에서 글쓰기 버튼을 누르면 글 작성 페이지로 넘어가고 작성한 내용을 mysql 데이터베이스에 저장해봅시다. mysql 및 기본 프로젝트 설정은 이미 준비되어있다는 가정하에 진 coding-nyan.tistory.com 지난 시간에는 Entity만 구현하고 끝내버렸군요. board domain @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @EntityListeners(AuditingEntityListener.class) public clas..
오늘은 회원가입 후 home으로 돌아가고 다시 사용자가 로그인해야되는 과정을 자동 로그인 방식으로 바꿔보겠습니다. 여담이지만 저는 로그인 다음에 게시글 목록 창으로 리다이렉트 시키는 작업도 해줬답니다. 별건 아니지만 그걸 이제서야 하는 나란 아이.. 자동 로그인 구현 @PostMapping("/user/register") public String signup(UserDto userDto,HttpServletRequest request,HttpServletResponse response) throws ServletException { userService.saveUser(userDto,request,response); request.login(userDto.getUsername(),userDto.getPa..
5월 16일 오늘은 아이유님의 생일입니다. 축하 기념 공지를 띄워보도록 하겠습니다. 모달과 팝업의 차이 본문에 들어가기 앞서 모달과 팝업에 대해서 간략하게 언급하겠습니다. 둘이 비슷하게 메인 윈도우에 또 다른 윈도우를 띄우는 기능을 하고 있습니다. 그러나 팝업의 경우에는 완전 다른 윈도우라면 모달은 부모 자식간의 관계를 유지하고 있습니다. 또한 팝업 차단 기능으로 개발자의 의도와는 상관없이 사용자가 제어가 가능하지만 모달은 그게 아니라고 합니다. 그래서 요즘은 모달을 많이 쓰는 추세라고 합니다. 참고 https://bomango.tistory.com/57 모달창 VS 팝업창, 차이가 뭔데? "팝업창 말고 모달창으로 만들어줘~" "이번 모달창은 iframe으로 만들어~" 입사 초기에 모달=팝업 이라고 생각..
회원가입/로그인에 이어서 로그아웃 기능을 구현해봅시다. SecurityConfig 수정 @Override protected void configure(HttpSecurity http) throws Exception { //... .and() .logout() .logoutSuccessUrl("/") // 로그아웃 성공시 리다이렉트 주소 .invalidateHttpSession(true); // 로그아웃 이후 세션 전체 삭제 여부 } config 파일에 로그아웃 기능을 추가해줍시다. 스프링 시큐리티가 참 좋아요. 이렇게 직관적인 메서드들을 제공해주므로 그대로 써줍시다. 로그아웃 관련 메서드들 정리 logoutSuccessUrl("URL") redirect할 주소를 적어줍니다. html같은 페이지 단위 주소..
username과 password로 로그인을 구현해보도록 하겠습니다. Overview spring security의 PasswordEncoder를 이용하면 단방향 방식의 암호화를 통해 비밀번호를 안전하게 저장할 수 있습니다. 실제로 회원가입 기능에서 PasswordEncoder를 상속받은 BCryptPasswordEncoder를 이용해서 비밀번호를 저장하는 기능을 구현해봤습니다. 로그인 기능을 구현한다면서 왜 갑자기 회원가입을 언급하고 있는 걸까요?? 이유는 로그인 방법이 두 가지로 나뉘기 때문입니다. 암호화 과정을 두 번 거칠 것인지 아니면 비밀번호 저장 방식을 바꿀 것인지로 말이죠. 저장 방식을 바꿔보자 spring security 공식 문서에서 추천하는 방식은 DelegatingPasswordEnc..
moongomi
'web' 카테고리의 글 목록 (2 Page)