본문 바로가기

✨ Back-end/Servlet36

[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (8) - 댓글 등록 후 리스트로 출력 이전 까지 Board의 상세정보 보기 화면까지 만들었다. 글을 등록한 작성자가 굉장히 성의 없게 제목과 내용을 적어주었다. 악플을 좀 달아야겠다고 생각해서 만들어 보았다. board_detail.jsp 만약 sessionScope.loginInfo 값이 빈 공간이 아니면 ( 즉, 로그인이 되있으면 이라는 뜻이다.) 댓글등록 버튼이 활성화되며, 버튼 클릭시 ${board.boardNum} 값을 boardNum이라는 이름으로 insertReply.re로 content도 함께 데이터를 보낸다. ReplyController.java 서블릿 이곳에서 board_detail.jsp에서 전달한 boardNum과 content 받아와서 각각 맞는 자료형으로 저장한다. 이후 바로 mapper로 가자. 그 전에, 중요한거.. 2023. 2. 28.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (7) - 상세보기 제목에 있는 글을 누르면 상세 정보 보기 폼으로 이동해보려고 한다. board_list.jsp 아까 마지막으로 데이터를 출력했던 board_list.jsp로 돌아와준다. 나는 제목을 누르면 페이지가 이동하게 끔 만들것이다. 따라서 ${ board.title } 앞에 a 태그를 주어 경로를 지정한다. 여기서 끝이 아니라 '?'를 주어 조건을 추가해준다. boardNum의 데이터가 ${board.boardNum}의 데이터와 같은 값만 boardDetail.bo에 가지고 간다. BoardController.java 서블릿 board 컨트롤 서블릿으로 돌아와 board_list.jsp에서 전달해준 boardNum을 문자열로 받아온다. 이후 integer.parseInt를 이용해 자료형을 int형으로 변환해준다... 2023. 2. 28.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (6) - 게시글 목록 리스트 출력 (List<DTO>) 이전까지 단순히 게시글 등록까지만 완료한 후, DB에 등록한 데이터가 저장되는 것 까지 알아 보았다. 이렇게 저장된 데이터가 실제로 html 화면에 우리 눈에는 직접적으로 보이지 않는다. 한번 뽑아내보자!! 먼저 board-mapper.xml로 들어가자. board-mapper.xml mapper에서 select 쿼리를 사용하므로 resultMap 값이 제대로 들어갔는지 확인해주고, 조회할 쿼리를 작성하자. 이후 service 인터페이스로 넘어간다. 매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) 매개변수 : 쿼리 실행 시 빈 값을 채울 용도 1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 2. 채워줄 값이 하나일 경우 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 .. 2023. 2. 28.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (5) - 게시글 등록 (INSERT) 게시글을 등록하는 글쓰기를 만들어 보려고 한다. 글쓰기 버튼이 어디있는지 살펴보자. webapp / view / content / board_list.jsp 파일에 있다. input 타입이 button으로 되어 있으니, form action = "boardDetail.bo"로 가지 않고 직접 경로를 지정해준다. onclick="goBoardWrite(); input 태그내에 경로를 위처럼 자바스크립트 형태로 만들어주었는데, 단, 위 c:if test ~~ 문장으로 세션에 들어있는 loginInfo 값이 빈 값이 아닌,, 즉, 일치할 때 (로그인이 되었을 때) 쓸 수 있다. html head태그 밑에 를 써서 자바스크립트 문법으로 board_write.bo로 보내는것으로 코드를 짜보았다. BoardCont.. 2023. 2. 28.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (4) - Session (로그인 성공, 실패) 이전까지 회원 가입 버튼을 눌러 회원 등록을 하면 DB에 데이터가 저장되는 것 까지 알아보았다. 등록한 데이터를 가지고 로그인을 해보자. 이곳에서 LOGIN을 누르면 Session값을 받아와 로그인 하기를 만들어 보려고 한다. header.jsp이다. 를 사용해 when, otherwise를 나누어주었다. when은 ~~일 때, otherwise는 그렇지 않을 때 이다. 즉, if 와 else if와 유사한 구문이라고 생각할 수 있다. when을 사용하여 session값을 불러온 값이 not empty 비어있지 않을 때 로그인이 되어야 하지만, 아직까지는 session 값을 받아오지 않았으므로 LOGIN을 누르면 otherwise에 있는 loginForm.me로 들어간다. loginForm.me는 Mem.. 2023. 2. 27.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (3) - 회원 등록 (DB에 데이터 저장) 이전까지 webapp / content에 있는 board_list.jsp 까지 보았다. 이곳에서 LOGIN을 누르면 Session값을 받아와 로그인 하기를 만들어 보려고 한다. header.jsp이다. 를 사용해 when, otherwise를 나누어주었다. when은 ~~일 때, otherwise는 그렇지 않을 때 이다. 즉, if 와 else if와 유사한 구문이라고 생각할 수 있다. when을 사용하여 session값을 불러온 값이 not empty 비어있지 않을 때 로그인이 되어야 하지만, 아직 회원가입조차 하지 않았으므로 joinForm.me를 눌러 회원가입부터 조져보자. MemberController.java (서블릿) join.jsp로 가라고한다. join.jsp HTML 삽입 미리보기할 수 .. 2023. 2. 27.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (2) - Template jsp설정하기 ( Include 포함) 템플릿을 사용하여 화면을 구상할 것이기 때문에, webapp폴더에서 view폴더를 만든 후, template폴더까지 만들자. template 폴더 안에는 header.jsp와 template.jsp를 각각 만들어준다. 을 이용하여 jsp에 여러개의 jsp 파일을 분할할 수 있다. template.jsp HTML 삽입 미리보기할 수 없는 소스 template.jsp에는 header와 서블릿에서 받아올 contentPage를 include시켜주었다. 두개의 화면으로 구성된 것이다. 이후 webapp로 돌아와 프로젝트 첫 실행화면 index.jsp를 하나 생성해주자. 이때 주의할 점은 webapp 폴더 바로 밑에다가 만들어야 한다. index.jsp HTML 삽입 미리보기할 수 없는 소스 에 있는 boardL.. 2023. 2. 27.
[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (1) - CREATE (DB 테이블 생성) 이번에는 Servlet / JSP / SQL / Template / Session을 모두 이용하여 게시판을 만들어 보려고한다. 패키지로 controller, service, sqlmap 그리고 webapp 하위 폴더로 view content, template, css 폴더를 만들어 확장성이 높은 게시판을 만들어보았다. 먼저 DB에 쿼리들을 작성해 회원테이블(Member), 게시판 테이블(Board), 댓글 정보 테이블(Reply) 을 생성해주었다. 회원 테이블 .SQL HTML 삽입 미리보기할 수 없는 소스 게시판 테이블.SQL HTML 삽입 미리보기할 수 없는 소스 댓글 정보 테이블.SQL HTML 삽입 미리보기할 수 없는 소스 이렇게 DB에 데이터를 저장시켜 놓고, 이클립스로 돌아와 DTO 클래스를 .. 2023. 2. 27.
[Servlet / JSP ] 세션(Session) 데이터 저장, 전달, 삭제 방법 세션이란? 서버와 클라이언트간의 정보를 전달하는 것이다. 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법이다. 즉, 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다. 이전까지 서블릿과 jsp를 왔다갔다하며 항상 데이터 값들을 전달했다. 하지만 너무 불편하지 않은가? 그래서 세션을 사용한다. 세션에 한번 데이터를 전달하고 나면 불필요하게 이동할때마다 가지고 다닐 필요가없어서 사용한다. 즉, id값을 서버의 어딘가에 넣어 저장시키면 계속 저장하고있다. 이 공간을 세션이라 한다. 세션과 쿠키는 뭐가 다른데? 쿠키는 내 컴퓨터에 데이터가 저장이 된다이고 세션은 서버에 데이터가 저장된다. 1. 세션을 먼저 사용하려면 서블릿에서 세션 객체를 생성해주어야한다. Sevl.. 2023. 2. 26.
[Servlet / JSP ] 템플릿 형태로 JSP 사용하기 <jsp : include> 템플릿이 뭘까? 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿의 특정 부분에 끼워 넣는 방식으로 작동되는 메서드이다. 템플릿은 왜 사용하는 걸까? 1. 많은 코드를 줄일 수 있다. - 템플릿은 간단한 문법을 사용한다. 따라서 코드를 훨씬 간결하게 짤 수 있다. 2. 유지보수에 용이하다. - 하나의 템플릿을 미리 만들어 놓고 관리하는 것은 수백개의 비슷한 페이지를 관리하는 것보다 훨씬 효율적이다. 3. 재사용성이 높다. - 웹 페이지는 똑같은 디자인의 페이지에 데이터만 바뀌는 경우가 많다. 이럴 때 템플릿을 사용하면 미리 템플릿을 만들어 놓고 데이터만 바꿔가면서 수많은 페이지를 만들어 낼 수 있으므로 효율적이다. 간단히 템플릿을 만들어 보며 개념을 알아보자. in.. 2023. 2. 23.
[Servlet / JSP / SQL] 회원 관리 폼 만들기 (4) - UPDATE(정보 수정) 수정을 누르기전에, member_detail.jsp 19번째 줄을 살펴보자. HTML 삽입 미리보기할 수 없는 소스 서블릿의 memberUpdate.do로 memId 값을 들고간다. MemberController.java 서블릿 역시나 memId 데이터를 받아와 저장하고, 바로 member-mapper로 가서 쿼리를 짜주자. member-mapper.xml 바꿔줄 값이 4개이다. MemberService.java 인터페이스 MemberServiceImpl.java 클래스 //매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) //매개변수 : 쿼리 실행 시 빈 값을 채울 용도 //1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 //2. 채워줄 값이 하나일 경우 // 2-1) 채워줄.. 2023. 2. 23.
[Servlet / JSP / SQL] 회원 관리 폼 만들기 (3) - DELETE(회원 삭제) 이번엔 회원 삭제를 하기전에, 상세정보 보기를 먼저 만들어 볼 것이다. member_list.jsp HTML 삽입 미리보기할 수 없는 소스 27번째 줄에있는 태그를 이용해 이름을 클릭하면 상세정보 보기 페이지로 이동하게 만들 것이다. 등록한 이름의 memId가 MemberDTO에 저장한( ${member.memId} ) 아이디를 같이 들고간다. 어디로? member_detail.do MemberController.java 서블릿 member_list.jsp에서 memId 데이터를 보냈으니, getParameter를 사용하여 성공적으로 받아주었다. MemberDTO member 이후 문장은 다시 mapper로 가서 쿼리를 짜주고 돌아오자. member-mapper.xml 오라클 DB에 저장했던 BASIC_.. 2023. 2. 23.