본문 바로가기

분류 전체보기104

Session 브라우저를 통해서 서버에 요청을 보내면 자동으로 session에 대한 정보를 담아 cookie로 전달해줍니다. 이때 sesion의 정보를 JSESSIONID라는 이름의 변수에 넣어 보내고, 재요청시에도 JSESSIONID는 항상 들고 전달하고 전달 받아 재방문한 사용자인지, 최초방문한 사용자인지 알 수 있습니다. Session은 인증이라고도 볼 수 있습니다. 클라이언트가 서버에 요청 시 session을 통해서 사용자 인증을 할 수 있습니다. 이는 클라이언트가 요청에 대한 응답을 받으면 통신선이 끊어지기 때문에 session으로 해당 사용자가 이전의 그 사용자라는 것을 인증해주는 것입니다. 반면에 socket 통신은 양 끝에 포트를 달고 통신하는 것이기때문에 통신선이 끊기지 않고 계속 유지가 됩니다. 따라.. 2021. 7. 24.
[블로그 만들기] 게시글 수정하기 - form 태그 PUT mapping 상세보기 페이지에 있는 수정/삭제 버튼 중 삭제 버튼의 기능은 넣었으니 이제 수정 버튼의 기능을 넣도록 하겠습니다. 수정 버튼을 누르면 수정 페이지로 이동하여 원래 게시글의 제목 및 내용을 수정할 수 있는 기능을 만들어줍니다. 우선 수정 버튼 클릭 시 이동할 페이지를 만들어줍니다. 글쓰기 페이지와 같은 디자인을 사용할 것이기 때문에 복사해서 필요한 부분을 수정해줍니다. 게시글을 수정할 때에는 원래 게시글의 데이터를 가져오고, 수정한 데이터를 다시 저장해야하기 때문에 PUT 매핑을 해야합니다. form 태그의 onsubmit 속성에 수정완료 버튼을 클릭했을 때 실행될 함수를 적어줍니다. 제목 부분의 input 태그의 value 속성에는 postEntity 모델에 올라가있는 title을 가져와 기존의 제목을.. 2021. 7. 23.
[블로그 만들기] 게시글 쓰기 - textarea API 적용하기 더보기 2021.07.22 - [Spring] - [블로그 만들기] 게시글 쓰기 게시글 쓰기 기능을 완성하고 나니 글쓰기 페이지가 조금 허전 한 것 같아 다른 블로그처럼 해주기 위해 API를 적용해봅니다. summernote가 개인적으로 괜찮은 것 같아 검색해서 사이트에 들어가봅니다. 이런 형태로 보이도록 코드를 수정해봅니다. 상단의 Getting started에 들어가줍니다. 아래로 내리다보면 Simple example이 나오는데 코드를 복사해줍니다. 붙여넣기를 해주고 외부 라이브러리에서 기존의 header.jsp와 비교하여 겹치는 라이브러리는 지워줍니다. header.jsp에 외부 라이브러리를 복사해서 넣어줍니다. saveForm.jsp 파일에도 script 태그와 textarea에 아이디 값을 넣어.. 2021. 7. 22.
[블로그 만들기] 게시글 쓰기 그동안 테스트를 위해서 HeidiSQL에서 직접 데이터를 넣어주었었는데 이번엔 글쓰기 기능을 넣어 저장하면 DB에 들어가는 기능을 추가해봅니다. 우선 글쓰기 버튼을 눌렀을 때 이동할 페이지를 만들어줍니다. 글쓰기 완료 버튼을 눌렀을 때 이동할 주소를 가지고 있는 메스도 만들어줍니다. 게시글의 제목, 내용등을 가져가야하기때문에 POST 방식으로 매핑해줍니다. 하지만 글쓰기를 할 때에도 로그인 된 사용자인지 권한 체크를 해주어야 합니다. 만약 session에 로그인 된 사용자의 정보가 없다면 로그인이 되지 않은 상태이므로 로그인 페이지로 이동하도록 해줍니다. 이렇게 하고 서버를 실행시켜 확인해보면 잘 이동하는 것을 볼 수 있습니다. 글을 쓰고 글쓰기 완료 버튼을 누르면 글 목록에서도 잘 보이고 상세보기에서도.. 2021. 7. 22.
[블로그 만들기] 게시글 삭제하기 / form태그 DELETE Mapping 더보기 2021.07.20 - [Spring] - [블로그 만들기] 상세보기 상세보기 페이지로 이동 시 수정/삭제 버튼이 있습니다. 삭제 버튼을 눌러 게시글이 삭제되는 기능을 만들도록 하겠습니다. detail.jsp 파일에서 삭제 버튼을 누르면 deletePost()함수가 실행되도록 onsubmit 속성을 넣어줍니다. 가장 아래 script 태그를 만들어 안에 자바스크립트 함수를 생성해줍니다. event.preventDefault();는 삭제 버튼을 눌렀을 때 submit이 실행되기때문에 페이지가 새로고침 됩니다. 이를 막기 위해서써주는 것 입니다. event는 해당 페이지에서 일어나는 모든 이벤트들의 정보를 갖고 있는 변수입니다. fetch를 사용해서 controller에서 사용한 매핑 주소를 입력해주.. 2021. 7. 21.
[블로그 만들기] 상세보기 더보기 2021.07.20 - [Spring] - [블로그 만들기] 글 목록 글 목록까지 만들었습니다. 여기서 상세보기 버튼을 누르면 에러가 나는데 이유는 버튼을 눌렀을 때 이동할 페이지를 만들어주지 않아서 입니다. 상세보기를 보여줄 detail.jsp 파일을 하나 만들어줍니다. 상세보기를 해줄 틀을 만듭니다. 댓글은 나중에 구현하도록 합니다. 상세보기 페이지를 눌러 해당 게시글의 내용을 보여주기 위해선 해당 게시글의 id를 가지고 데이터를 불러와야합니다. PostController에 메서드를 만들어줍니다. id를 통해서 해당 게시글의 정보를 불러와 Post 타입의 postEntity에 넣어줍니다. 불러온 오브젝트를 model에 올려주고 상세보기 페이지를 return 해줍니다. 각 영역에 model에 올.. 2021. 7. 20.
[블로그 만들기] 글 목록 w3schools에 들어가서 BS4 Cards 카테고리에 들어가줍니다. 글 목록 태그를 가져오기 위해서 입니다. 아래로 좀 내리다보면 Card Images가 나오는데 여기의 Example 코드를 복사해줍니다. list.jsp라는 리스트를 보여줄 파일을 하나 만들어줍니다. header와 footer는 include 해줍니다. header와 footer 사이에 복사해둔 코드를 붙여넣기 해줍니다. 필요 없는 것들은 삭제해주고 서버를 실행시켜보면 카드가 하나 생긴 것을 볼 수 있습니다. 적은 글 들이 모두 보여야하므로 반복문으로 감싸줍니다. 반복문으로 감쌀 때 post테이블의 모든 게시글의 정보를 가져오기 위해 메서드를 만들어줍니다. PostController 클래스에 메인 페이지 겸 게시글 목록을 보여주는 메.. 2021. 7. 20.
[블로그 만들기] 회원정보 수정 회원정보 수정을 하기 위해서 우선 회원정보 수정 페이지를 만들어줍니다. 회원가입 페이지를 복사해서 만들어줍니다. 회원정보 페이지에서 각 input에 로그인 한 user의 정보를 담아 보여주고 그것을 수정하는 기능을 만들어줍니다. 따라서 EL표현식을 이용해 Session에 올라가있는 로그인한 user의 정보를 가져와 출력합니다. 회원가입 버튼도 회원정보 수정으로 수정해줍니다. 버튼을 눌렀을 때 form태그가 한번에 정보를 가지고 기능을 수행해야하기 때문에 POST 방식으로 매핑해주고, action값으로 매핑 주소를 입력해줍니다. 이전에 header.jsp에서 회원정보 수정 버튼을 누르면 회원정보 수정 페이지로 이동하도록 코드를 수정해줍니다. 수정 페이지로 이동하는 메서드를 수행시켜 페이지 이동을 해줍니다... 2021. 7. 20.
JAVA 클래스에서 휴대폰으로 메시지 보내기 - Coolsms coolsms를 검색해서 사이트에 접속해줍니다. 회원가입을 하고 나면 이런 대시보드가 보입니다. 회원가입 시 본인 명의로 된 휴대전화로 인증해야하고 API키도 인증받아주세요! 회원가입이 완료되면 고객센터-개발자센터로 이동해줍니다. 아래로 좀 내려서 SDK JAVA 버전으로 들어가줍니다 사용하기 위해서 라이브러리를 다운 받아야하기때문에 git주소로 들어가줍니다. javaSDK-2.2jar 파일과 아래 zip 파일도 같이 다운로드 해줍니다. 다시 사이트로 돌아와 Message Example로 들어가줍니다. 해당 코드를 복사해줍니다. Java Project를 하나 만들고 Class 를 하나 만들어서 붙여넣기 해줍니다. 아마 처음엔 오류가 날 것입니다. 라이브러리 등록이 되지 않았기 때문입니다. 다운로드 받은 .. 2021. 7. 19.
[블로그 만들기] 주소 API 활용 -2) 주소찾기 기능 넣기 더보기 2021.07.18 - [Spring] - Spring 주소 api / 주소 검색 1) API 가져오기 지난 게시글에서 설정한 파일을 이제 적용할 프로그램에 붙여넣기 해줍니다. 우선 Sample.jsp 파일에서 태그를 복사해서 사용할 jsp 파일에 붙여넣기 해줍니다. 회원가입 페이지에서 주소 찾기 기능을 넣으려고 합니다. regist.jsp 파일의 body 태그 속 가장 아래에 태그를 붙여넣기 해좁니다. 이때 goPopup()함수의 pop 속 open 함수에 들어가는 주소는 상대주소로 하면 안됩니다. jusoPopup.jsp 파일이 있는 폴더 명을 첫번째 매개변수로 넣어주세요. jusoCallBack 함수의 querySelector는 주소가 들어갈 부분의 id 값을 넣어줍니다. 주소찾기 버튼을 눌.. 2021. 7. 19.
Spring 주소 api / 주소 검색 1) API 가져오기 https://www.juso.go.kr/addrlink/addrLinkUrl.do?confmKey=승인키&returnUrl=주소결과를 리턴 받을 URL 승인키와 url을 주소에 넣고 브라우저에서 요청을 해주면 주소 검색창이 뜨는 것을 볼 수 있습니다. 주소 검색을 하고 확인을 누르면 에러가 나는데 에러가 나는 이유는 제 서버에서 localhost:8000은 HTTP Method 방식이 Post가 아니기 때문입니다. 주소가 제대로 검색되어서 입력되는지 확인해보기 위해서 주소 API를 다운로드 해서 실행시켜봅니다. 새로운 API를 다운받아서 테스트 할 때는 바로 내 프로젝트에 적용해보기 보단 DynamicProject를 통해서 같은 환경에서 테스트 해보고 내 프로젝트에 적용하는 것이 좋습니다. 다시 도로명.. 2021. 7. 18.
open-in-view 스프링 서버를 실행시키면 항상 WARN이 하나씩 뜨는데 이게 왜 뜨는지 궁금해졌습니다. 옆에 내용을 읽어보니 open-in-view is enabled by defalut 라고 나와있습니다. open-in-view 부터 뭔지 알아야할 것 같습니다. open-in-view 는 쉽게 말하면 view가 반환되기까지 session을 유지하는지에 대한 여부입니다. open-in-view is enabled by default 라는 뜻은 default 값으로 적용이 된다는 것으로 볼 수 있습니다. opein-in-view 의 default 값은 view 까지 session이 유지되는 것입니다. Controller에서 session이 끊기지 않고 lazy loading이 되는 것 입니다. 그렇다면 반대로 sessio.. 2021. 7. 18.
728x90
반응형