경로는 무조건 절대경로
--------------------------
a태그를 이용한 자바스크립트 사용
detail.jsp
a 태그에서 자바스크립트를 이용하려면 href에 javascript: 을 이용한다.
위 코드의 결과물 (부트 스트랩)
---------------------------
상세보기
Jsoup : HTML 파서
home.jsp
상세보기를 a태그로 만들어보자
EL표현식으로 보드의 id를 주소값에 넣어주자
오라클 디벨로퍼에서 조인 쿼리문을 제작
BoardRepository
BoardRepository에서 해당 쿼리문을 입력한다. (스트링빌더)
스트링 빌더를 이용할 경우에 쿼리문 맨 뒤쪽에 공백을 하나 꼭 주자 (안그러면 문자열이 붙어버린다. usernameFROM)
DetailResponseDto
상세보기에는 보드내용과 같이 작성자 유저네임이 필요하기 때문에
DTO를 제작하여 데이터를 합쳐서 보낸다. 중요!
서버에서 객체를 여러개 생성해서 response를 하면 여러번 보내야 하기 때문에 하나만 보낼 수 있게 객체를 생성하는 것이 좋다.
서버 내부에서의 통신에서는 굳이 안만들어도 무방하다.
detail.jsp
EL표기식으로 데이터를 입력해준다.
부트스트랩에서 클래스를 이용한 색깔 조정 가능
결과
----------------------------
페이지 수정하기
수정버튼을 a태그로 만들어 보자
a태그는 get방식을 사용할 때만 쓰자
BoardUpdateAction
update.jsp
writeSummer.jsp를 복사하여 붙여넣고, EL코드들을 추가한다.
기존 내용을 받아와서 넣는 작업이다.
BoardUpdateProcAction
유효성 체크에 id를 넣어준다.
BoardRepository
보드아이디로 검색하여 제목과 내용을 업데이트한다.
BoardUpdateProcAction
등록 성공시 보드아이디를 이용해서 해당페이지로 다시이동한다.
결과
----------------------------
삭제하기
detail.jsp
삭제버튼에 onclick을 넣어주고 함수를 만들어주자
delete 컨트롤러로 보내는 ajax
주소값이 노출되도 되지만 delete는 get방식으로 사용하지 않는다. post를 이용하자.
BoardController
라우터에 delete를 추가
BoardDeleteAction
BoardRepository
---------------------------------
ajax용 리턴함수를 만들어주자
UsersUsernameCheckAction
ajax는 문자열 등의 데이터를 받기 때문에 printWriter 등의 버퍼드라이터 종류를 사용한다.
----------------------------------
로그인시 쿠키 있으면 미리 체크 해두기
간단하게 JSTL조건문을 사용하여 쿠키가 없다면 체크해제 있다면 체크
결과
Youtube 파싱
첫번째 방식
디테일 액션 파일에서 Jsoup를 이용하여 a태그를 찾고, 태그가 있다면 href주소를 파싱하여 재생화면을 보여준다.
유튜브 주소는 여러가지 종류가 있으니 각각 처리해주자.
결과
두번째 방식
HtmlParser.java
회원정보 업데이트
UsersController
컨트롤러에 회원정보 업데이트 분기
BoardUpdateAction
아이디가 없거나 잘못된 아이디로 접근할 경우 메시지
BoardUpdateProcAction
수정을 시도하면 세션에 아이디가 있는지 체크
update.jsp
회원정보 수정 화면
유저이름은 읽기전용으로 변경
'Web > Jsp' 카테고리의 다른 글
유튜브 업로드 오류 잡기 (0) | 2020.06.09 |
---|---|
Jsoup HTML파싱 // 미리보기 (0) | 2020.06.09 |
200605 / 자바스크립트 공격 xss 막기 / lucy / (0) | 2020.06.05 |
섬머노트(에디터) 추가하기 (1) | 2020.06.04 |
JSP 서블릿 web.xml로 파일접근을 막는 방법 (0) | 2020.06.04 |