고마구의 개발 블로그
240627 10주차 목요일 - JSP 04 본문
Pattern.matches("^[0-9a-zA-Z가-힣]*$", name)
name에 숫자,한글,영어가 들어갈 경우 true를 리턴
- frontcontroller - (패턴컨트롤러)
매핑 주소는 보통 1:1 매칭이지만 *를 이용해서 여러 매핑 주소를 한번에 받아서 처리 할 수 있다.
*.do 라고 매핑 주소를 만들면 .do로 끝나는 여러 개의 주소를 한번에 받을 수 있다.
이 방식을 이용해서 여러 요청을 받아서 처리하는 컨트롤러를 만들 수 있다.
- cookie관리프로그램 to frontcontroller -
이전에 만든 쿠키 관리 프로그램을 frontcontroller형태로 만들어 보자.
main.html이 view.jsp에 해당하는 시작 메뉴이고
해당 메뉴에서 쿠키의 create, read, update, delete 작업을 할 수 있는 사용자 입력 화면이 있고
입력후 버튼을 눌러서 create.do, read.do, update.do, delete.do로 이동하여
각각의 쿠키 작업을 한후 각각의 결과물 화면 .jsp로 이동 한다.
- session -
세션은 클라이언트가 원하는 개인정보를 서버에 저장할 때 사용한다.
서버는 클라이언트 A와 클라이언트 B를 구별할 수 없으며, 즉 요청이 들어오면 누가 보냈는지 알 수 없다.
그런데 세션을 사용하기 원하면 사용자에게 세션 ID를 발급하고, 이를 쿠키로 클라이언트로 저장 한다.
그 후 사용자가 세션을 사용하려면 세션 ID를 이용하여,
이 사용자가 이전에 세션을 사용한 사용자인지를 판단하여 만약 동일한 사용자라면 이전 세션을 계속 사용하고,
다른 사용자라면 새로운 세션 ID를 생성하여 클라이언트에게 제공합니다.
세션(Session)은 웹 서버와 클라이언트(브라우저) 간의 상호 작용에서 발생하는 정보를
일시적으로 서버에 저장하는 방법 중 하나입니다.
클라이언트가 서버에 접속하면 서버는 그 클라이언트에 대한 고유한 세션 ID를 생성하고,
이 ID를 쿠키(cookie)나 URL 파라미터(parameter) 등의 방법으로 클라이언트에 전달합니다.
이후 클라이언트가 서버에 요청을 보낼 때마다 서버는 해당 세션 ID를 이용하여
세션에 저장된 정보를 참조하거나 업데이트 합니다.
이를 통해 사용자 인증 정보, 장바구니 정보 등을 유지할 수 있습니다.
세션은 일정 시간 동안 유지되며, 일반적으로 사용자가 로그아웃하거나 브라우저를 종료할 때 종료됩니다.
세션은 세션 객체에 있는 메소드로 작업을 한다.
다음과 같은 세션 객체의 메소드가 있다.
- setAttribute() 메서드는 HttpSession 객체에 데이터를 저장하는 역할을 한다.
- getAttribute() 메서드로 세션에 저장한 값을 읽어오는 역할을 한다.
- getMaxInactiveInterval() 메서드는 세션이 유효한 시간을 반환하는 역할을 한다,
- setMaxInactiveInterval() 메서드는 세션의 유효 시간을 설정하는 역할을 합니다.
- 섹션 저장 방법 -
// SetSessionServlet.java 서블릿에서는 세션을 어덯게 저장하는지 보여준다.
HttpSession session=request.getSession();
session.setAttribute("name", "park");
session.setMaxInactiveInterval(600);
이 코드는 JSP에서 HttpSession 객체를 생성하고, "name"이라는 이름으로 "park"라는 값을 세션에 저장하며,
이 세션의 유효시간을 600초로 설정하는 코드입니다.
HttpSession 객체는 클라이언트와 서버 간의 통신에서 세션을 유지하기 위한 객체이며,
이를 사용하여 클라이언트가 웹 애플리케이션과 상호 작용하는 동안 필요한 데이터를 저장하고 공유할 수 있습니다.
- 세션을 수정하는 방법은 저장하는 방법과 동일한데 같은 키로 새로운 값을 넣으면 된다.
session.setAttribute("name", "newValue");
- 세션 읽어오는 방법은 다음과 같다.
// GetSessionServlet.java 코드는 저장한 세션을 불러오는 코드이다.
HttpSession session=request.getSession();
String name=(String)session.getAttribute("name");
// DeleteSessionServlet.java코드는 세션을 삭제하는 코드이다.
HttpSession session=request.getSession();
session.removeAttribute("name"); // 부분 삭제로 name만 삭제
session.invalidate(); // 전체삭제로 사용자에 모든 세션을 삭제
|
sessionLogin to frontcontroller -
로그인 프로그램에서 로그인의 의미는 다음과 같이 세션을 등록하는 것이고,
- session.setAttribute("user_id",user_id);
로그아웃의 의미는 다음과 같이 로그인과 관련된 모든 세션을 지우는 것이다.
- session.invalidate();
프로그램을 시작하려면 login.servlet 를 주소창에 입력하면 된다.
login.jsp가 나타나면 id password를 입력하고 login버튼을 누르면 loginDB.servlet으로 이동하고,
해당 서블릿에서 로그인에 성공하면 success.jsp로 이동 하고 실패하면 login.jsp로 이동 시킨다.
success.jsp화면에 로그인 없이 들어오면 login.servlet으로 이동시키고,
로그아웃 버튼을 누르면 logout.servlet으로 이동하여 로그 아웃시킨 다음 login.jsp페이지로 이동시킨다.
'KDT풀스택과정 공부' 카테고리의 다른 글
240629 10주차 토요일 (0) | 2024.06.29 |
---|---|
240628 10주차 금요일 - JSP 05 (0) | 2024.06.28 |
240626 10주차 수요일 - JSP 03 (0) | 2024.06.26 |
240625 10주차 화요일 - JSP 02 (0) | 2024.06.25 |
240624 10주차 월요일 - JSP 01 (0) | 2024.06.24 |