본문 바로가기

Wanna be a Programmer

Servlet & JSP day11 - 회원 정보 프로그램(전체회원 정보 조회) GetAllMemberInfoServlet.java ☞ package : servlet.member ☞ url-pattern : /getAllMemberInfo ☞ 로그인 여부와 상관없이 database에 select 쿼리를 전송하여 저장되어 있는 MemberDTO type을 객체들을 조회한다. 회원이 여럿 존재하는 경우 조회한 MemberDTO 객체들을 ArrayList를 통해 add시키고, ArrayList 객체를 binding하여 요청 디스패치 방식을 통해 member_list.jsp에 보낸다. 소스보기 package member.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager;.. 더보기
Servlet & JSP day11 - 회원 정보 프로그램(회원탈퇴<DB연동>) RemoveMemberServlet.java ☞ package : member.servlet ☞ url-pattern : /removeMember ☞ session scope에 MemberDTO 객체가 존재하는지 조회(로그인 여부)하여 존재하지 않는 경우 로그인 페이지로 이동하고 존재하는 경우(로그인 상태)에는 session scope에 존재하는 MemberDTO를 조회하여 조회한 객체의 id 정보를 통해 database에 그 id와 관련된 MemberDTO객체를 invalidate() 메소드를 통해 소멸시킨다. 소스보기 package member.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.DriverM.. 더보기
Servlet & JSP day11 - 회원 정보 프로그램(로그인한 상태에서 정보수정<DB연동>) ModifyForm.java ☞ package : member.servlet ☞ url-pattern : /modifyForm ☞ session scope에 binding된 MemberDTO 객체가 존재하는지 조회하여 객체가 존재하면 로그인 되어있는 것으로 간주하고 로그인 된 경우에만 정보를 수정할 수 있다. 리다이렉트 방식을 이용해서 modify_form.jsp 페이지를 출력한다. 만약 로그인이 되어 있지않다면 디스패치 방식으로 로그인이 필요하다는 메세지를 전송하고 로그인 페이지로 이동한다. 소스보기 package member.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.S.. 더보기
Servlet & JSP day11 - 회원 정보 프로그램(로그인 상태에서 회원정보 조회) GetLoginMemberInfoServlet.java ☞ package : member.servlet ☞ url-maping : /getMemberInfo ☞ session scope에 존재하는 MemberDTO 객체의 존재 유무를 확인하여 존재하면 로그인이 되어있는 상태이므로 리다이렉트방식을 통해 member_detail.jsp를 통해 회원의 정보를 조회한다. 만약 로그아웃 되어있는 상태라면 로그인 페이지를 출력한다. 소스보기 package member.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.htt.. 더보기
Servlet & JSP day10 - 회원 정보 프로그램(로그아웃) LogoutServlet.java ☞ pacakge : member.servlet ☞ url-mapping : /logout ☞ Session scope에 dto 객체가 있는지 없는지 조회 - 존재할 경우 session.invalidate()를 통해 객체를 소멸시킴(session을 관리하지 않음) - 존재하지 않을 경우 "로그인 먼저 하세요"라는 메시지를 출력 소스보기 package member.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.. 더보기
Servlet & JSP day10 - 회원 정보 프로그램(로그인) login_form.html ☞ folder : WebContent 하위 ☞ 가입한 정보를 바탕으로 로그인 동작 수행 소스보기 로그인 폼 ID : PWD : LoginServlet.java ☞ pacakge : member.servlet ☞ url-mapping : /login ☞ register_form.html을 통해 입력한 정보를 database에 저장하고 저장한 정보를 바탕으로 ID와 PASSWORD를 비교하여 ID가 불일치하면 errorMessage를 출력하고 다시 login_form.jsp 로 이동, PASSWORD가 불일치하면 errorMessage를 출력하고 다시 login_form.jsp로 이동 ☞ 로그인 했을 경우에만 USER가 로그인 했다고 출력해야 하기 때문에 request scop.. 더보기
Servlet & JSP day10 - 회원 정보 프로그램(회원등록) 회원정보관리 Application index.html ☞ folder : WebContent 하위 소스보기 회원관리 회원가입폼 register_form.html ☞ folder : WebContent 하위 ☞ 초기의 회원가입 페이지를 html을 이용하여 작성 소스보기 ID : Password : 이름 : 주민번호 : RegisterMemberServlet.java ☞ pacakge : member.servlet ☞ url-mapping : /register_member ☞ register_form.html 페이지를 통해 입력한 정보를 Orlcle Database와 연결하여 회원정보를 저장 ☞ 입력한 정보를 하나의 MemberDTO객체로 묶어 Binding 하여 디스패치 방식을 통해 register_suc.. 더보기
Servlet & JSP day9 - HttpSession HttpSession을 이용한 Session 관리 ☞ client의 상태값을 서버측에 저장하여 Session 관리 ☞ javax.servlet.http.HttpSession 객체를 이용하여 관리 ◎ 클라이언트의 상태값은 Attribute로 관리됨 ☞ 장점 ◎ 관리할 수 있는 상태값(클라이언트 데이터)의 종류나 크기나 개수의 제한이 없다. ◎ 서버에 저장되므로 cookie에 비해 보안상 유리 ☞ 단점 ◎ 서버에 부담 HttpSession 객체 생성 ☞ HttpServeltRequest객체.getSession() ◎ 기존 Session이 있으면 기존 Session객체를, 없으면 새로 생성하여 리턴 - ex) 주로 로그인 페이지에서 사용 ☞ HttpServletRequest객체.getSession(false).. 더보기
Servlet & JSP day8 - Session, Cookie Session 관리 ☞ HTTP 프로토콜은 stateless 한 특징을 가진다. ☞ Stateless - 상태유지를 못한다. -> 클라이언트의 데이터를 유지하지 못 함 Session ☞ 하나의 클라이언트가 프로그램을 시작해서 종료 할 때까지 ☞ 하나의 세션동안 여러번의 요청과 응답이 반복 될 수 있다. ☞ 하나의 세션동안 클라이언트의 데이터는 유지 되어야 한다. Session 관리 개념 ☞ HTTP프로토콜의 특징은 클라이언트의 상태를 유지 못하므로 CGI에서 지원 ☞ 방식 ◎ Cookie를 이용 ◎ Session을 이용 ◎ URLReWriting을 이용 Cookie를 이용한 Session 관리 ☞ 쿠키 ◎ 서버가 브라우저(Client)로 전송하는 text 데이터 ◎ 쿠키는 클라이언트의 정보를 유지하기 위.. 더보기
Servlet & JSP day8 - Multi-Thread 상황에서 Data 동기화 Multi-Thread 상황에서 Data 동기화(Synchronized) ☞ Local 변수 : X ☞ Instance 변수 : O ☞ Static 변수 : O Attribute ☞ Request Scope : X ☞ Session Scope : 이론적으로는 O, but 실제로는 X ☞ Application Scope : O 서블릿 입장에서 각각의 클라이언트는 service(), doGet(), doPost() 메서드를 통해 서블릿을 호출하는 다른 쓰레드이다. 서블릿이 단순히 요청을 읽고 응답을 반환하고 지역변수에 저장을 한다면, 각각의 쓰레드의 연결을 신경 쓸 필요가 없다. 그러나, 어떠한 정보가 비지역변수에 저장되면 각각의 클라이언트의 쓰레드가 서블릿의 비지역변수를 조작가능해진다. ex) 두 개의 요.. 더보기