Springboot (34) 썸네일형 리스트형 게시판 만들기 - ajax통신으로 회원가입 1. 데이터들을 Form으로 감싸고 id값을 준다. 2. Ajax 작성 먼저 아래와 같은 형식으로 만들고 시작한다. type : post 응답받을때의 데이터 타입 dataType: json - 데이터타입은 무조건 json으로 한다. 지금내가 전송할 데이터를 stringify에 담는다. 키값은 data이다. 최종코드 let isUsernameSameCheck = false; // 회원가입 $("#btnJoin").click(()=>{ if(isUsernameSameCheck == false){ alert("유저네임 중복 체크를 진행해주세요"); return; } // 0. 통신 오브젝트 생성 let data = { username: $("#username").val(), password: $("#passw.. 게시판 만들기 - ajax통신으로 아이디 중복 확인 form 태그안에 button이 있으면 자동 submit을 한다. 그래서 type을 button으로 지정해준다. listener가 된것이다. id가 btnUsernameCheck인 버튼이 클릭이 되면, 뭘할지에 대한 행위를 click( )의 ()안에 작성해준다. java는 (() -> {}), javascript는 (()=>{})를 사용한다. get요청을 하는 이유는 username이 있는지 select할 것이기 때문이다. json을 만드는 이유는 body데이터를 보내거나 받을때 사용한다. @ResponseBody를 붙이면 파일을 찾는 것이 아니라 CMRespDto 데이터로 응답을 한다. 중요 기본적인 Controller는 view resolver가 발동된다. -> 파일을 찾아서 응답해준다. Respon.. Ajax통신 정리 HTTP통신을 하면 HTML로 받는다. -> 전체Reload를 해야한다. AJAX통신을 하면 데이터로 받는다 -> 부분Reload를 해야 한다. 자바스크립트로 비동기 통신을 한다 => ajax통신 ajax통신은 자바스크립트 만으로 통신을 할 수 있다. ajax는 데이터로만 응답 받을 수 있다. Get - a태그, 주소요청(브라우저) - 예외로 Ajax통신을 사용하는 경우 (비동기 통신, 부분 리로드)할때 사용 Post - ajax통신 Body데이터 O Put - ajax통신 Body데이터 O Delete - ajax통신 Body데이터 X Mime 타입 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘 - text/html -text/plain - application/json(json처럼생김).. MariaDB설치 및 스프링부트 연결 MariaDB설치 패스워드는 green1234 설치가 완료되면 깃헙에 있는 readme 코드 복사해서 붙여넣어준다 실행 키 shift +ctrl +F9 실행할때 ;뒤에서 실행하면 안된다. 무조건 ;안에 커서를 두고 실행을 한다. 2행까지 만들고 새로고침을 해준다. CREATE USER 'green'@'%' IDENTIFIED BY 'green1234'; green이라는 사용자를 생성하였다. CREATE DATABASE greendb; greendb데이터베이스를 생성 GRANT ALL PRIVILEGES ON greendb.* TO 'green'@'%'; greendb에 접근하는 모든 권한을 green@에게 준다는 것이다. 성공적으로 생성되었다. db를 선택을 해줘야한다. 깃헙에서 더미테이블을 가지고 온다.. 게시판만들기 - delete기능 form태그로 만들기 쿼리문 - bords.xml 작성 select가 아니기때문에 return값은 없다. boardsDao작성 BoardsController작성 id를 PathVariable로 받은 이유는 primary키 이기때문에 primary키가 아닌 PageNum은 쿼리스트링으로 받았다. form태그작성 원래는 삭제는 form태그로 못한다. form태그는 delete메서드가 없기 때문이다. 삭제를 위한 인증 로직 1. 로그인이 되어 있는지 확인 2. 게시글을 쓴 본인이 맞는지 3가지의 체크를 하는 이유는 주소로 요청할수 있기 때문에 비정상 요청체크 - 없는 번호를 요청하였을때 인증체크 - 로그인 안했을때 권한체크 - 해당아이디로 작성한자만 삭제가능 로그인, 게시글 본인이 아니라면 삭제 버튼이 없게 수정 페이징 TOTALCOUNT : 총 글의 개수 TOTALPAGE : 총 페이지 수(10개 단위) CURRENTPAGE : 현재 페이지 FIRST : 첫페이지 LAST : 마지막 페이지 decode(currentPage,0,1,0) first currentPage가 0이면 1(true)반환, 0이 아니면 0(false)반환 decode(currentPage, totalPage-1,1,0)last currentPage가 totalPage-1이랑 같으면 1(true)반환, 0이 아니면 0(false)반환 작성한 쿼리문을 boards.xml에 복사해준다. pagingDto로가서 변수를 변경해준다. boolean은 변수작성할때 변수명앞에 is를 붙여진다. 템플릿엔진에서는 last,first로 작성하면 찾아진다. (gett.. 게시판만들기 session에 users오브젝트(usersPS)를 저장하였다. users로그인 할때 session의 키값 이름으로 principal로 했다. 만약 principal값이 비어 있다면 로그인이 안된걸로 보고 principal에 값이 있다면 로그인 된걸로 보겠다는 것이다. 세션의 값이 있는지 확인할려면 세션은 DI(dependency injection) 해야한다. DI 생성자 주입 DI 는 IOC에 있는 것을 주입하는 것이다. 생성자를 주입하는 것이다. HttpSession은 IOC 컨테이너에 저장이 되어있다.(spring이 해준다.) final로 적는 이유는 lombok으로 생성자주입받기 편할려고 사용한다. session의 값을 가지고 올때 다운캐스팅해서 가지고왔다. 그이유는 들어갈때 오브젝트로 들어갔기때.. blog 초기세팅 button을 누르면 username, password의 데이터를 가지고 /login으로 간다. button은 안에 있는 데이터를 한번에 전송을 한다. 전송해야 할 위치는 컨트롤러의 위치인 action = "/login"으로 정한다. method는 select하는 쿼리인데 로그인만 예외로 select인데 post를 사용한다.(보통 select는 get이다.) form태그는 대부분 post이다. loginDto생성 세션에 접근할려면 request객체가 필요하다. request객체는 Dispatcher Servlet이 가지고있다. 세션은 Dispatcher Servlet이 있으면 Ioc컨테이너에 넣어놓는다. key값을 principal이라고 한다. principal 은 접근 주체로 인증된 유저라는 의미이다... 이전 1 2 3 4 5 다음