본문 바로가기

IT Study/JSP24

JSP - FrontController를 이용한 페이징 유지(비동기처리X) FrontController 패턴을 이용하여 페이징 유지하는 기능을 구현해보았다. 해당 기능은 비동기 처리가 아닌 목록이 초기화되지 않도록 하는 목적이다. 조건 - 게시글 작성/삭제, 댓글 작성/삭제, 좋아요 클릭 시 페이징 유지하기 ​ 1) 각 행동을 할 때 cnt값이 유지되어야 한다. *좋아요 기능을 기준으로 설명 a태그의 href 경로나, form태그의 action에서 cnt의 값을 넣어주어야 한다. ​ 2) 행동 이후에 정보가 유지되어야 하므로 forward 방식으로 응답해야 한다. sendRedirect 방식으로 응답하게 되면 글 목록 수가 초기화 되면서 페이징 유지가 불가능하게 된다. ​ 필요한 각 기능에 응답 방식을 forward로 지정하고 경로에 ${cnt}값을 함께 보내면 된다! 2023. 1. 5.
JSP - FrontController를 이용한 최근 가입한 회원 목록 출력 기능 FrontController 패턴을 이용하여 최근 가입한 회원 목록을 출력하는 코드를 작성해보았다. 조건 - 최근 가입한 회원 3명까지 출력 ​ 1) MemberDAO 회원 테이블에서 총 3명까지의 데이터 값을 가져오는 sql문과 selectAll 메서드를 작성하였다. ​ sql문 SELECT * FROM (SELECT A.*,ROWNUM AS RNUM FROM (SELECT * FROM MEMBER ORDER BY ROWNUM DESC) A WHERE ROWNUM=1 가장 최근의 3명의 데이터를 가져와야 하므로 ROWNUM을 기준으로 내림차순 정렬하여 출력 ​ 2) MainAction에서 3명의 데이터를 저장할 배열객체 member를 생성하였고, 'member'라는 속성명에 member 데이터를 set.. 2023. 1. 5.
JSP - FrontController를 이용한 내 글만 보기 기능 FrontController 패턴을 이용하여 전체 게시글 중 내 글만 출력하는 기능을 구현해보았따. 조건 - 더보기 클릭 시 전체 게시글이 아닌 내 게시글만 나오도록 해야 함 ​ 1. MainAction 1) showContent 파라미터 값을 저장할 'showContent' 객체 생성 main.jsp 2) 객체 showContent가 받아온 값이 main인 경우 전체 글 출력 3) 객체 showContent가 받아온 값이 로그인한 본인인 경우 본인의 글 출력 3)의 경우 showContent(userId 받아온 값) 값을 속성명 moreContent에 저장한다. BoardVO vo = new BoardVO(); String showContent = request.getParameter("showCont.. 2023. 1. 5.
JSP - FrontController를 이용한 더보기 기능 FrontController 패턴을 이용하여 더보기 기능을 구현해보았다. 조건 - 모든 목록 출력 시 더보기 기능 비활성화 ​ 1. 게시판 VO 클래스에 메인 화면에서 보여줄 글의 개수를 담을 변수 cnt 설정 ​ 2. MainAction - 게시글 출력 수 지정 첫 메인화면으로 이동 시 cnt 파라미터 값을 paramCnt 객체에 저장 paramCnt가 null이거나 공백인 경우 cnt의 값을 2로 설정(2개씩 출력할 예정이다) null 값이 아닌 경우(더보기 버튼을 통하여 url의 cnt값이 추가된 경우) 정수로 형변환하여 set ​ 3. MainAction - 더보기 비활성화 1) 게시글과 게시글에서 N개의 댓글을 담을 VO 생성 2) 더보기 버튼을 클릭했을 때 2개씩 추가될 예정이므로 Cnt를 불.. 2023. 1. 4.
JSP - ajax를 이용한 로그인 중복처리 기능 1. DAO 생성 메서드를 int 형으로 만들어 0과 1로 데이터 존재 여부/ 오류 등과 같은 상황일 때 사용한다. 서블릿에서 mid값을 받아와 메서드 실행한다. ​ 2. 테이블 생성 ID 테이블을 생성 후 임의의 데이터인 'admin'과 'test' 값 삽입 ​ 3. jsp파일 ajax 사용 중복검사 4. 서블릿 package test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import java.. 2023. 1. 4.
JSP - FrontController를 이용한 회원탈퇴 기능 FrontController 패턴을 이용하여 회원탈퇴 기능을 구현해보았다. 조건 - 본인의 댓글과 게시글이 존재하는 경우 탈퇴를 하지 못하도록 해야 함 ​ 1. 커스텀 태그 생성 메인.jsp 에서의 코드 길이를 줄이기 위해 회원탈퇴용 커스텀 태그를 생성하였다. id 데이터 값은 로그인 시 session으로 가져왔기 때문에 input 타입에서 hidden을 주어도 괜찮았다. password는 로그인 때 request를 이용하였으므로 hidden으로 주고 탈퇴버튼만 클릭하는 것은 불가능 하였다. ​ 2. main.jsp 메인 화면에서 jstl 라이브러리를 사용하여 아이디 값이 null이 아닌경우(로그인상태) 회원탈퇴 버튼이 출력되도록 하였다. ​ 3. 회원탈퇴 Action package ctrl; impor.. 2023. 1. 4.
JSP - FrontController 패턴 | FrontController 패턴 클라이언트의 요청에 따라 프론트컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출하여 요청을 처리할 수 있도록 한다. jsp파일로 구성된 컨트롤러에서는 공통된 코드들이 별도로 처리되지 않고 포함되어 있어 코드의 중복이 생기는 경우도 있다. 때문에 서블릿파일을 이용하여 각 기능을 담당하는 컨트롤러(java파일)를 사용자의 요청에 따라 처리하기 위해 해당 패턴을 사용한다. ​ MVC 패턴 + FC 패턴 => MVC 패턴2 1. V(View)에서 FC(FrontController)로 요청 2. FC는 각 기능을 담당하는 java파일로부터 기능 수행 3. 기능 수행 후 V에 출력 ​ FC패턴을 토대로 1. 서블릿 파일 생성을 하고 URL mappings를 모든 요청에 응답하기 위.. 2023. 1. 4.
JSP - 리스너/필터 | 초기화 매개변수 초기화 매개변수 - 프로그램을 동작시킬 때 필요한 정보(ex. url, id, pw...)를 소스코드에 하드코딩을 해왔음 그런데 이런 정보들은 프로젝트 중간에 쉽게 변경이 될 수 있음 => 그래서 이런 정보들을 별도로 환경설정 파일(.xml)에 보관 정보 == 초기화 매개변수 ​ -> servletConfig : 해당 서블릿에서 사용가능 -> servletContext : 동일한 웹 어플리케이션 내에서의 모든 서블릿에서 사용가능 ​ ** .xml -> @(어노테이션=에너테이션) 어노테이션 - 컴파일을 시도할 때, 어노테이션이 있었음을 별도로 기억함 특정 기능을 수행할 때 그에 해당하는 어노테이션이 있는지를 먼저 확인 특정 순간에 반응(모니터링, 감지)하는 어노테이션이 있음. 해당 순간.. 2023. 1. 4.
JSP,DBMS - 트랜잭션 | 트랜잭션[M] 하나의 작업 처리 단위 서비스의 단위를 정하거나 테이블을 설계하는 경우 ​ ex) 커뮤니티에서 회원탈퇴 시(user delete) > 게시글(board delete)이 전부 삭제 이러한 작업의 단위를 트랜잭션이라고 함 ​ Rollback(); 트랜잭션 처리과정 중 문제가 발생했다면 이전 처리를 다시 돌려놓음 ​ Commit(); 하나의 트랜잭션 단위가 잘 처리된다면 해당 변경사항을 마무리 ​ Practice 상대방에게 입금을 할 때 본인의 계좌에서 돈이 나가는 트랜잭션 dao.java final String sql_transfer1="UPDATE BANK1 SET BALANCE=BALANCE-? WHERE BID=101"; final String sql_transfer2="UPDATE .. 2023. 1. 4.