목록JSP (23)
09009
게시글 수정 화면으로 이동하게 하는 액션 클래스 "BoardServlet?command=board_update_form&num=${param.num}"이 요청됨. - get 방식으로 BoardServlet 요청 → BoardServlet.java에 있는 doGet() 메서드에서 ActionFactory.java의 getAction() 메서드 호출 → ActionFactory.java의 getAction() 메서드의 조건문에서 command가 "board_update_form"과 일치하는 조건이 존재하므로 BoardUpdateFormAction 인스턴스를 생성하여 반환 → BoardServlet.java로 돌아가서 선언한 action이 null이 아니므로 BoardUpdateFormAction 인스턴스가 ..
게시글 상세 보기 페이지로 이동시키는 액션 클래스 게시글 리스트 화면에서 제목 링크를 클릭하면 게시글 상세보기 화면으로 이동한다. 게시글 제목을 클릭하면 "BoardServlet?command=board_view&num=${board.num}"이 요청됨 - get 방식으로 BoardServlet 요청 - 게시글 상세 보기 페이지로 이동해야함. ✍ controller\action\BoardViewAction.java package controller.action; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.Http..
MVC 패턴의 Controller 역할을 하는 서블릿 기존의 서블릿과 달리 요청 시 반드시 command 파라미터를 쿼리 스트링 형태로 전달해 주어야 한다. ✍ controller\BoardServlet.java package controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Bo..
DBCP 설정 ✍ context.xml 위 코드를 해당 위치에 삽입한다. jtsl, jdbc 라이브러리 불러오기 board 테이블 구조 컬럼명 설명 num 글번호 pnum 부모글 번호 pass 비밀번호 name 작성자 email 이메일 title 제목 content 내용 readcount 조회수 writedate 작성일 board 테이블 생성 create table board ( num number(5) primary key, pnum number(5), pass varchar2(30), name varchar2(30), email varchar2(30), title varchar2(50), content varchar2(1000), readcount number(4) default 0, writedat..
프로젝트 환경 설정 - 커넥션 풀 사용 환경 오라클 드라이버인 ojdbc와 JSTL을 위한 jar 파일, 그리고 파일 업로드를 위한 cos.jar를 아래 경로에 사진과 같이 복사한다. 화면 왼쪽에서 Servers를 찾아 Server.xml 파일을 찾아 클릭한다. server.xml 파일을 열어서 아래 Source 버튼을 선택하여 파일 맨 끝 부분으로 내려간다. [Ctrl + Shift + F] (코드 자동정렬 단축키)를 누른 후 web-study-10 프로젝트 (본인이 실행할 프로젝트)에 대한 를 찾아 아래와 같이 작성한다. 설정 관련 내용은 https://haaland09009.tistory.com/110에서 자세히 다루었으니 가볍게 넘어가도록 하겠다. product 테이블 생성 상품 관리를 위한 정보..
✍member/ idcheck.jsp 아이디 중복 확인 ${userid}는 이미 사용 중인 아이디입니다. ${userid}는 사용 가능한 아이디입니다. ✍member.js function idagain() { opener.frm.userid.value = ""; opener.frm.userid.focus(); self.close(); } 회원 가입 폼에서 입력한 id가 이미 DB에 내장되어 있을 때 (이미 존재한 id일 경우) 입력한 id를 추가할 수 없다. 버튼을 클릭하면 idagain() 함수를 호출하여 아이디 중복 확인의 결과를 알려주는 창이 닫혀진다. 그 이후, 회원 가입 폼에서 입력한 아이디의 칸이 비워지고 아이디 입력 칸에 focus가 가도록 한다. 아이디 중복 확인의 결과를 알려주는 창이 닫..
회원 정보 변경 이미 회원 가입을 하였고 로그인 화면에서 아이디, 비밀번호를 입력하여 회원 인증이 완료된 사용자는 메인 페이지 (main.jsp)에서 회원 정보를 변경하는 서비스를 제공받을 수 있다. 회원 정보를 수정하기 전에 등록된 회원의 정보를 출력해 주어야 하기 때문에 memberUpdate.do가 요청되었을 때 호출되는 서블릿 클래스를 생성하여 인증 처리한 회원 아이디로 회원 정보를 얻어온 후, 이를 회원 수정을 위한 폼(memberUpdate.jsp)으로 이동시킨다. main.jsp 페이지에 있는 버튼은 아래와 같이 get 방식으로 memberUpdate.do를 요청한다. memberUpdate.do 요청을 처리하는 서블릿 클래스에서는 doGet() 메서드에 회원 정보를 얻어와서 회원 수정을 위..
로그아웃 처리 logout.do가 요청될 때 인증된 사용자의 인증을 무효화하는 서블릿 클래스를 작성한다. (form 태그의 method 속성에 아무것도 작성하지 않으면 default 값은 get이므로 get 방식으로 요청됨) 인증된 사용자의 인증을 무효화하는 서블릿 클래스 controller 패키지에 오른쪽 마우스 클릭 - [New - Servlet] 클릭 - 서블릿 클래스명을 LogoutServlet이라 작성 [Next] 버튼 클릭 후 [URL Mappings:] 목록에서 항목 선택 후 [Edit] 버튼 클릭 → [URL Mappings] 창이 뜨면 [Pattern:] 입력란에 /logout.do 작성 후 [OK] 버튼 클릭 → [Finish] 버튼 클릭하면 서블릿 클래스가 생성된다. ✍ LogoutS..
!! 회원 정보를 데이터베이스에 추가할 때 선행되어야 하는 작업 !! 1) 회원 가입 폼의 * 표시된 글상자에 데이터가 입력되었는지 확인 2) 암호와 암호 확인이 일치하는 값인지 확인 3) 아이디 중복 체크는 수행하였는지 확인 회원 정보가 올바르게 입력되었는지 확인하기 위해 유효성을 체크하는 자바스크립트 함수를 작성해야 한다. 작성할 함수는 위에 있는 회원 가입 폼에서 버튼을 누르면 호출된다. * 회원 정보의 유효성을 체크하기 위한 자바스크립트 함수 작성 ✍ script/member.js JoinCheck() 함수 호출은 회원 가입 폼(join.jsp)에서 버튼 소스코드에서 작성하였던 것이다. // 위에 중복된 내용 생략 function joinCheck() { // 여기서 document는 join.j..
웹사이트 로그인은 가입이 완료된 회원에 한해서만 가능하고 비회원인 경우 회원 가입부터 해야 한다. 로그인 폼에서 버튼을 클릭 → 회원 가입을 위한 입력 폼을 띄우기 위해 join.do를 get 방식으로 요청한다. 회원 가입 요청 방식 get 방식: 회원 가입이나 게시글 작성과 같은 입력 폼이 화면에 나타나도록 해야할 때 요청한다. post 방식: 회원 정보나 게시글 정보를 모두 입력한 후 데이터베이스에 정보를 저장하기 위한 작업을 해야할 때 요청한다. 로그인 페이지 (login.jsp)에서 버튼을 클릭하면 join.do가 요청되도록 아래와 같이 코드를 작성한다. 그 이후, join.do 요청에 대한 처리를 수행할 서블릿을 정의해야 한다. 링크에 의한 요청은 get 방식이므로 doGet() 메서드에 회원 ..
로그인 인증 처리 작동원리 아이디, 암호를 입력한 후 버튼을 클릭하면 → 회원 인증 처리를 하기 위해 서블릿 (LoginServlet)이 요청된다. → 서블릿에서는 인증 처리에 실패하면 login.jsp로 이동(다시 로그인 작업을 해야하므로), 회원 인증 처리에 성공하면 main.jsp로 이동하도록 한다. ! 입력받은 아이디와 암호로 인증 처리를 하려면 데이터베이스에 이러한 회원 정보가 존재하는지 확인 해야 한다. 위의 작업을 수행하기 위해 아래 메서드를 DAO 클래스에 추가해야 한다. userCheck() member 테이블에서 아이디, 암호를 비교하여 해당 아이디가 존재하지 않을 경우 -1, 아이디만 일치하고 암호가 다르면 0, 모두 일치하면 1 반환 getMember() member 테이블에서 아이..
member 폴더를 아래 경로에 임의로 생성하여, member 폴더에 회원 관리 작업을 위한 JSP 파일들을 작성하여 추가하도록 한다. 회원 인증 회원 인증을 위해 아이디와 비밀번호를 입력받는 폼 작성 ✍ member/login.jsp 로그인 아이디 암 호 ${message} 코드 설명 - 입력 폼을 정상적으로 수행하기 위해서는 자바스크립트 파일(member.js)이 필요하다. member.js에 loginCheck() 함수를 정의하여 버튼을 클릭하였을 때 유효성 체크를 할 예정이다. - 버튼이 "submit"형식으로 작성되어 이를 클릭할 시 form 태그의 action 속성에 기술된 "login.do"가 요청된다. 요청에 대한 처리는 서블릿에서 수행되는데 서블릿은 xxx.do와 같이 일정한 패턴 방식을..