자바 웹 개발(35)
-
[Web] DataSource를 이용해 데이터베이스 연동하기
데이터베이스 연동은 시간이 많이 걸린다는 단점이 있다. 특히 매번 수많은 접속자들이 기능을 사용할 때마다 데이터베이스와 연동해야한다는 점에서 매우 비효율적이다. 그래서 데이터베이스와 연결시킨 상태를 유지하는 커넥션풀(ConnectionPool)을 이용한다. 어플리케이션이 실행되면 커넥션풀 객체를 생성하여 연결을 맺고, 이 객체를 이용해 작업을 한다. 커넥션풀 객체를 구현할 때에는 Javax.sql.DataSource 클래스를 이용한다. 톰캣이 만들어놓은 커넥션풀 객체에 접근할 때에는 JNDI(Java Naming and Directory Interface)를 이용한다. JNDI는 필요한 자원을 키/값 쌍으로 저장한 후 키를 이용해 값을 얻는 방법을 사용한다. 톰캣 DataSource 설정 및 사용법C..
2024.08.20 -
[Web] 데이터베이스 연동
오라클 데이터베이스 연동오라클 데이터베이스와 연동하기 위해서는 드라이버가 필요하다. 다음 경로에 설치한다. 클래스 생성VO는 데이터를 담은 객체이다. 데이터베이스와 직접 상호작용을 합니다. DAO는 데이터베이스와 직접 상호작용하는 객체이다. 아래는 DAO의 특성이다. 데이터베이스 연결 및 해제데이터 CRUD(Create, Read, Update, Delete) 작업 수행SQL 쿼리 실행 및 결과 반환 VO 예시)데이터에서 조회한 레코드의 컬럼 값을 속성에 저장해야하니 컬럼 이름과 동일한 자료형과 이름으로 소성을 선언하고 겟터, 셋터를 생성한다.public class MemberVO { private String id; private String pwd; private String name; priva..
2024.08.19 -
[Web] encodeURL 사용
브라우저에서 쿠키 기능을 사용할 수 없게 설정했으면 encodeURL 메서드를 이용해야한다. \@WebServlet("/login")public class SessionTest5 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doHandle(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doHandle(re..
2024.08.19 -
[Web] 세션을 이용한 로그인 정보 바인딩하기
톰캣이 종료되어도 세션이 메모리에서 삭제되지 않는 경우가 있어서 다음과 같이 설정을 해주어야 한다. 주석을 해제한다. login2.html 파일을 작성한다. 아이디 : 비밀번호 : setAttribute() 메서드를 이용해 user_id로 사용자 ID를 바인딩하도록 구현한다. 톰캣을 껐다가 다시 키지 않는한 session이 저장된 user_id대로 로그인 정보가 남아있다. @WebServlet("/login")public class SessionTest4 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IO..
2024.08.19 -
[Web] 세션 유효 기간 설정 / 세션 삭제하기
web.xml에 session-config을 이용해서 유효 시간을 바꿀 수 있다. 기본 시간은 30분이다. 30 setMaxInactiveInterval()을 이용해서 세션 유효 시간을 5초로 정해보자. @WebServlet("/sess2")public class SessionTest2 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWrit..
2024.08.19 -
[Web] 세션을 이용한 웹 페이지 연동 기능
세션도 웹 페이지 사이의 공유 정보를 서버에 저장해두고 페이지를 매개한다는 점에서 쿠키와 같다. 하지만, 쿠키는 클라이언트에 저장되어 노출이 쉬운 반면에 세션은 서버 메모리에 저장된다. 따라서 보안이 요구되는 정보는 세션을 이용하는 것이 좋다. 세션은 각 브라우저당 한 개가 생성된다. 다만, 서버에 부하를 줄 수 있다는 단점이 있다. 세션 기능 실행 과정브라우저가 서버에 최초 접속하면 세션 객체를 생성한 후 세션 객체에 대한 세션 id를 브라우저에 전송한다. 브라우저는 이 세션 id를 세션 쿠키에 저장한다. 쿠키 이름은 jsessionId이다. 재접속하여 세션 쿠키에 저장된 세션 id를 다시 서버로 전송하면 서버는 전송된 세션 id를 이용해 세션 객체에 접근하여 작업을 수행한다. 과정은 다음과 같다...
2024.08.19