인터넷 브라우저 요청은 무조건 get 요청 밖에 할 수 없다.http://localhost:8080/http/get (select)http://localhost:8080/http/get?id=1&username=yeongon 처럼 물음표+쿼리스트링을
Xml, Json, yml 차이yml 규칙 : key와 value 사이에 스페이스 한 칸, 들여쓰기 스페이스 두 칸스프링 부트는 yml에 모든 설정을 할 수 있고, yml 규칙을 지켜 작성하면 된다.< application.yml >원래는 위처럼 포트 8080에
User 테이블을 생성하고자 한다.< application.yml >use-new-id-generator-mappings: false 는 JPA의 기본 전략을 따라가지 않겠다는 뜻! 나는 User Entity에서 id에 @GeneratedValue(strategy
< Board >Board를 select하려고 하는데, Board안에 User(작성자) 정보 뿐만 아니라 Reply(댓글) 정보도 있다!따라서 Board안에는 User와 Reply가 연관관계를 맺고 있다.Board - User : @ManyToOne 하나의 작성자
Entity 생성하고username, password, email만 집어넣었다.id는 auto increment고, createDate은 @CreationTimestamp 어노테이션 달아놨으니 userRepository.save(user); 될 때 자동으로 현재 시간이
블로그에 사용할 Entity 만들기!User, Board, Reply(댓글) 이 필요하다.연관관계 매핑User 테이블에는 id, username, password, email, role, createDate 를 만들었다. Board 테이블에는 id, title, con
우선 User를 3개 만든다. id는 1, 2, 3 이다.< DummyControllerTest >내가 다루고자 하는 것은 select 즉, GetMapping에서 null에 대한 응답을 어떻게 처리할지에 대한 것이다. 주소창에다가 http://local
주소에 데이터를 담아 보낸다.데이터 형태는 key=value이다. @RequestBody를 붙이지 않아도 된다.Body에 데이터를 담아 보낸다.데이터 형태는 json으로 통일하는 것이 좋다.x-www-form-urlencoded(form 태그를 만들어 전송) 일 때도
삭제를 구현해보겠다.아래처럼 간단하게(?) 코드를 짜보았다. (이렇게 위험하게 짜면 안된다는 거 알지만 ㅎㅎ)그런데 이 코드의 문제는 만약 id가 User 객체에 없다면 에러가 발생한다. 현재는 id가 1, 2, 3인 User만 DB에 있다.없는 id인 5를 넘겼더니
예외를 처리 하기 위해 따로 패키지와 클래스를 만들었다.에러가 나면 에러 추적하는 내용이 길게 쫙 \~~ 나타나는게 너무 복잡해보이고 지저분해서 깔끔하게 만들고자 한다!!IllegalArgumentException 에만 해당될 것이다!에러가 깔끔하다 ㅎ만약 모든 Exc
w3schoolsmaterial css위 두 개의 사이트에서 코드 받아와서 사용할 수 있습니다.메인페이지는 w3schools 에서 해당 링크에 있는 코드를 사용하였습니다.그 외의 추가 코드1, 추가 코드2이 프로젝트는 jsp 파일을 사용할 것이기 때문에이 경로로 ind
회원가입/로그인 폼먼저 경로 구성!로그인과 회원가입 폼은 거의 비슷하게 구성하면 된다~!로그인에 이메일 쓰는 부분만 없는 정도?!그리고 모든 jsp 파일에서 공통으로 쓰는 header와 footer 부분을 분리했더니 코드가 훨씬 간결해지고 깔끔해졌다!!위에는 회원가입
회원가입 폼 (jsp 파일)에서 데이터를 전송해야 한다.저번 프로젝트는 form 태그를 이용하여 위처럼 했었다면.. 이번에는 좀 다르게 !!json 형태로 해보겠다.회원가입시 Ajax를 사용하는 2가지 이유요청에 대한 응답을 html이 아닌 Data(Json)를 받기
일이 처리 되기 위한 가장 작은 단위격리 수준 : read commit격리 수준 : repeatable readcommit 된 것만 readinsert, update, delete문과 같이 데이터을 요청하는 쿼리문이 날라오면 데이터베이스가 undo라는 이전 데이터를 가
톰캣 시작 (서버작동) web.xml 읽기context 읽기DB 연결 테스트사용자의 request : 송금 요청 (A->B에게 10000원 송금)web.xml 거치고 필터를 거쳐서 Controller로 옴web.xml 거치고 필터 거치는 시점에 (1) DB 연결 세션
JSP를 사용할때는 기본적으로 <% %>을 이용하여 JAVA문구를 이용하지만, JSTL은 테그만으로도 이용이 가능하다.특히 EL코드는 매우 중요하면서도 자주 쓰이는 문구이다.< pom.xml >< header.jsp >user.js 도 바꿔줘야 한다.
< pom.xml >JSP에서 시큐리티를 쓰기 위한 태그 라이브러리시큐리티를 위한 라이브러리위의 설정이 모든 페이지를 잠궈버리게 된다.즉, 이렇게 스프링 시큐리티를 적용하고, Controller에 따로 설정하지 않으면페이지가 모두 이렇게 닫히게 된다. 시큐리티 설
스프링 시큐리티를 사용하기 위해,커스터마이징 툴로 WebSecurityConfigurerAdapter를 제공한다.해당 툴을 상속받는 SecurityConfig라는 설정파일을 만들어야 한다.이 설정파일에서는 어디로 요청이 들어오면 확인할지, 해쉬는 뭘로 할지, 유저 아이
로그인 요청을 하면 시큐리티가 지켜보다가 로그인 요청을 가로채도록 설정한다.로그인 요청으로 들어온 파라미터(username, password)를 가지고 시큐리티가 로그인을 진행한다.로그인 진행을 완료한 후 시큐리티 전용(?) 세션에 유저 정보를 넣어놓는다. (이 또한
🔥 UserApiController를 보면, /auth/loginProc를 만들지 않았다.왜냐하면 스프링 시큐리티가 가로채도록 할 것이기 때문이다.가로채도록 하기 위해서는 SecurityConfig 의 configure 메소드에서 .loginProcessingUrl(
글쓰기 기능을 구현하기 위해 saveForm.jsp 라는 글쓰기 페이지를 만들어야 한다.빨간색 에러이렇게 변경해준다!< BoardController >BoardController에서 주소 매핑도 해주면 된다.로그인 한 후 인증이 된 상태에서 메인화면을 보면 왼쪽
이렇게 되어있던 메인화면에 이제 직접 작성한 글들(Board 테이블에 저장된)을 불러와서 보여줄 것이다.jsp로 데이터를 가져갈 때 Model 필요하다. 매개변수에 Model을 넣어준다.BoardController는 RestController가 아닌 일반 Control
메인화면(index.jsp)에서 상세보기를 누르면 글 상세보기 페이지에 갈 수 있도록 링크를 걸어준다. <a href="/board/${board.id}" class="btn btn-primary">상세보기</a>컨트롤러에서는 model 써서 detail.j
글 삭제는 javascript를 이용할 것이다.상세페이지에서 삭제 버튼에 id를 넣고 board.js 가 작동한다.detail.jsp에서 삭제 버튼에 넣어준 id="btn-delete"로 함수를 작동시킨다.여기서 \`var id = $("@DeleteMapping을 사
detail.jsp 에서 수정 버튼 누르기해당 url 이 매핑된 BoardController 의 updateForm 메서드로 가서 updateForm.jsp 을 리턴함updateForm.jsp 에서 사용자가 수정할 내용을 입력하고 (title, content)글 수정
회원정보는 현재 로그인된 유저, 즉 세션에서 들고오면 된다. 헤더에 시큐리티 태그로 "pricipal" 변수에 현재 세션 정보 넣어 놓았기 때문에 이 변수 쓰면 된다. (select 할 필요 X)< updateForm.jsp >상단바 "회원정보" 버튼에 /user
카카오 개발자 센터
이전 게시물에서 카카오 서버로부터 액세스 토큰을 받았다. 즉, 자원서버에 접근할 수 있는 권한을 얻은 것이다. 액세스 토큰이 위처럼 응답되었는데, 이렇게 브라우저에 뿌려져 있는 json 데이터를 관리하기 힘들기 때문에 model을 하나 만들었다.< OAuthTok
댓글창을 먼저 디자인 해야 한다.w3school 에서 부트스트랩을 이용하였다.이렇게 댓글창이 만들어졌고, 이제 댓글 목록을 뿌려볼 차례이다!!Board 객체를 보면,여기서 board 객체는 reply 를 가지고 있다.따라서, 상세보기 Controller와 Service
댓글을 작성하는 기능을 구현해보았다.먼저 게시글 상세페이지의 댓글 작성 버튼에 id를 넣고 board.js 에서 처리하도록 하였다.< detail.jsp >< board.js >여기서 url 에 백틱을 쓰는 이유는 자바스크립트 변수를 문자열에 바인딩 하기 위
User 객체에서 username 필드에 unique 걸어두어서 중복 username 불가HttpStatus 가 500 이라면 에러이기 때문에 user.js 에서 조건문으로 회원가입 실패와 완료 메세지 나누기이제 중복 username으로 회원가입이 실패되면, 실패 메세
리스너가 아닌 onClick 함수로 구현하였다.삭제이기 때문에 데이터는 필요하지 않다.boardId는 주소에 넣기 위해 가져온 것이고, 파라미터로는 replyId만 받으면 된다.< BoardApiController >< BoardService >