목록
'java web' 123건
-
HttpSessionListener 이용해 로그인 접속자수 표시1. 다음과 같이 실습 파일을 준비합니다. 2. 첫 번째 서블릿인 LoginTest 클래스 파일을 다음과 같이 수정합니다. setAttribute()를 이용해 loginUser를 세션에 바인딩하면 LoginImpl 클래스에 구현된 이벤트 핸들러를 이용해 접속자수를 1 증가시킵니다. 그리고 user_list에 접속에 ID를 저장한 다음 ServletContext 객체에 바인딩합니다.package sec04.ex02;import jakarta.servlet.ServletContext;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;i..
-
서블릿의 여러 가지 URL 패턴URL 패턴이란 실제 서블릿의 매핑 이름을 말합니다. 즉, 서블릿 매핑 시 사용되는 가상의 이름으로, 클라이언트가 브라우저에서 요청할 때 사용되며 반드시 /(슬래시)로 시작해야 합니다.서블릿 매핑 이름으로 사용되는 URL 패턴 종류는 정확히 이름까지 일치하는지, 디렉터리까지만 일치하는지, 확장자만 일치하는지에 따라 세 가지로 나누어집니다. 서블릿에 여러 가지 URL 패턴 적용 실습1. 다음과 같이 TestServlet1~3 클래스 파일을 준비합니다. 2. 첫 번째 서블릿의 TestServlet1 클래스를 다음과 같이 작성합니다. 이 서블릿은 /first/test로 요청할 때 실행됩니다. 브리우저의 요청 URL에 대해 서블릿의 여러 가지 메서드를 이용하여 요청 관련 정보를 가져옵니다.package sec0..
-
서블릿 속성과 스코프서블릿 속성(Session)이란 다음 세 가지 서블릿 API 클래스에 저장되는 객체(정보)라고 보면 됩니다.ServletContextHttpSessionHttpServletRequest서블릿 API의 setAttribute(String name, Object value)로 바인딩하고, 필요할 때 getAttribute(String name)으로 바인딩된 속성을 가져오면 됩니다. 또한, removeAttribute(String name)을 이용해 속성을 서블릿 API에서 제거할 수도 있습니다.서블릿의 스코프(scope)는 서블릿 API에 바인딩된 속성에 대한 접근 범위를 의미합니다.ServletContext에 바인딩된 속성은 애플리케이션 전체에서 접근할 수 있으므로 애플리케이션 스코프를 갖습니다. Http..
-
세션을 이용한 로그인 예제1. 먼저 데이터베이스 연동과 관련된 설정을 해줍니다. MemberDAO.java와 MemberVO.java를 만들어 다음과 같이 작성합니다.MemberDAO.javapackage sec05.ex01;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public c..
-
encodeURL() 사용법1. 다음과 같이 실습 파일을 준비합니다. 2. SessionTest5 클래스를 다음과 같이 작성합니다. 다시 /login으로 요청해 jsessionId를 URL rewriting 방식으로 가져온 후 세션에 접근하여 로그인 상태 유무를 판단하도록 구현합니다.package sec04.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta...
-
세션을 이용한 로그인 정보 바인딩 실습1. 실습하기 전에 해야할 일이 있습니다. 톰캣이 종료된 후에도 세션이 메모리에서 삭제되지 않는 경우가 있으므로 톰캣 설정 파일인 context.xml을 열어 태그의 주석을 해제해야 합니다. 2. 다음과 같이 실습 파일을 준비합니다. 3. 로그인창에서 ID와 비밀번호를 입력한 후 서블릿으로 전송할 수 있도록 login2.html 파일을 작성합니다. 아이디 : 비밀번호: 4. SessionTest4 클래스를 다음과 같이 작성합니다. 로그인창에서 로그인할 경우 ID와 비밀번호를 가져오고, 최초 요청 시 세션에 setAttribute() 메서드를 이용해 user_id로 사용자 ID를 바인딩하도록 구현합니다. 태그를 이용해 재요청하고 세션의 getSttribute() 메서드를 이용하여 us..
-
다른 브라우저에서 새 세션 만들기브라우저에서 Ctrl + Shift + N을 눌러 스크릿 모드의 크롬을 실행합니다. 주소창에서 /sess로 요청하면 새로운 세션을 생성한 후 다른 세션 id를 출력합니다. 세션 기본 유효 시간은 톰캣 컨테이너에서 지정한 30분(1800)초입니다. 그러나 HttpSession의 setMaxInactiveInterval() 메서드를 이용하면 사용자가 원하는 세션 유효 시간을 설정할 수 있습니다. 그리고 invalidate()의 메서드를 이용하면 새션을 언제든지 삭제할 수도 있습니다.다음과 같이 톰캣 컨테이너의 web.xml에 세션 유효 시간이 설정된 것울 확인할 수 있습니다. 이번에는 제공되는 메서드들을 이용해서 직접 세션 유효 시간을 재설정해보겠습니다.1. 다음과 같이 SessioTest2 클래스를 준비합..
-
서블릿에서 세션 API 이용하기1. 다음과 같이 세션 테스트를 위한 실습 파일인 SessionTest 클래스를 준비합니다. 2. SessionTest 클레스를 다음과 같이 작성합니다. request의 인지 없는 getSession() 메서드를 호출하여 세션이 없으면 새로 생성하고, 세션이 있으면 기존 세션을 가져옵니다. 또한 세션 객채의 getMaxInactiveInterval()를 호출하여 생성된 세션의 유효 시간을 가져옵니다.package sec03.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.H..
-
세션 API의 특징과 기능서블릿에서 세션을 이용하려면 HttpSession 클래스 객체를 생성해서 사용해야 합니다. HttpSession 객체는 HttpServletRequest의 getSession() 메서드를 호출해서 생성합니다. 세션을 얻는 getSession() 메서드로는 다음과 같인 것들이 있습니다.getSession(): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(true): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(false): 기존의 세션 객체가 존재하면 반환하고, 없으면 null을 반환합니다.또한 HttpSession 클래스에서 제공하는 세션 기능 관련 메서드는 다음과 같습니다. HttpSession 클래스의 여러 가지 메서드반환 타..
-
세션을 이용한 웹 페이지 연동 기능세션 역시 웹 페이지들 사이의 공유 정보를 서버에 저장해 두고 웹 페이지들을 매개해주는 방법이라는 점에서 쿠키와 같습니다. 하지만 쿠키는 사용 시 웹 페이지들의 정보가 클라이언트 PC에 저장되므로 정보가 쉽게 노출될 수 있다는 단점이 있는 반면, 세션은 서버의 메모리에 생성되어 정보를 저장합니다. 따라서 웹 페이지에서 사용되는 정보에 로그인 정보처럼 보안이 요구되는 정보는 대부분 세션을 이용합니다.세션은 각 브라우저당 한 개, 즉 사용자당 한 개가 생성됩니다. 사용자의 로그인 상태나 쇼핑몰의 장바구니 담기 기능 같은 정보를 해당 브라우저의 세션에 저장해 두고 사용하면 편리합니다.세션의 특징은 다음과 같습니다.정보가 서버의 메모리에 저장됩니다.브라우저의 세션 연동은 세션 쿠키를 이용합니다.쿠키보다 보안에 ..
-
서블릿에서 쿠키 사용하기1. GetCookieValue, setCookieVale 클래스 파일을 준비합니다.2. SetCookieValue 쿨래수를 다음과 같이 작성합니다. Cookie 객체를 생성한 후 쿠키 이름을 cookieTest로 값을 저장합니다. 그리고 setMaxAge() 메서드에 쿠키 유효 시간을 24시간으로 설정합니다. 그런 다음 response와 addCookie() 메서드를 이용해 생성된 쿠키를 브라우저로 전송합니다.package sec02.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.Cookie;import jakarta.servlet.http..
-
쿠키 API쿠키는 서블릿에서 쿠키 기능 사용 시 이와 관련된 API에 대해 알아보겠습니다. 쿠키는 Cookie 클래스 객체를 생성하여 정보를 저장한 후 서버에서 클라이언트로 전송해 파일로 저장됩니다. 쿠키 관련 API의 특징은 다음과 같습니다.javax.servlet.http.Cookie를 이용합니다.HttpServletResponse의 addCookie() 메서드를 이용해 클라이언트 브라우저에 쿠키를 전송한 후 저장합니다.HttpServletRequest의 getCookie() 메서드를 이용햐 쿠키를 서버로 가져옵니다,메서드설명getComment()쿠키에 대한 설명을 가져옵니다.getDomain()쿠키의 유효한 도메인 정보를 가져옵니다,getMaxAge()쿠키 유효 기간을 가져옵니다.getName()쿠키 이름을 ..