본문 바로가기

전체 글

(276)
JAVA - Map(HashMap, LinkedHashMap) 1. Map, HashMap, LinkedHashMap 공통적으로 모두 key-value 형태로 저장이 된다. 차이점이라기 보단 Map은 인터페이스이고 HashMap, LinkedHashMap은 Map을 상속받은 클래스이다. HashMap, LinkedHashMap은 차이가 있는데, HashMap은 입력순서를 보장하지않는다. 반대로 LinkedHashMap은 입력 순서를 보장한다. 예를 통해 한번 확인해보자. private LinkedHashMap lhm = new LinkedHashMap(); private HashMap hm = new HashMap(); lhm.put(key1, value1); lhm.put(key2, value2); lhm.put(key2, value3); hm.put(key1, ..
Spring - IoC/DI 스프링의 특징중 하나인 Spring IoC에 대해 알아보려고 한다. 들어가기에 앞서 필요한 개념의 정의에 대해 알아보려고 한다. 의존성이란 뭔지, IoC란 뭔지에 대해 알아보자. " 의존성이란 클래스 A, B 가 존재한다고 가정할때, 클래스 B변경시 클래스 A도 변경해야할때, 클래스 A는 B에 의존한다고 한다. " -> 의존성이 강한 구조는 각 클래스들이 자유롭지 못하며 서로 영향을 많이 끼치기에 서비스에 문제를 초래한다. " IoC 란 제어의 역전이다 즉, 클래스에서 제어가 아닌 서버에서 제어한다." 쉬게 설명하면 아래와 같다 의존성 주입 : 클래스가 현재 사용하고자 하는 클래스를 모르게 한다. 제어의 역전 : 클래스 인스턴스 생성, 종료 등의 생명주기를 스프링에서 한다. 이번엔 예시를 비교해가면서 I..
Servlet - Connection with DB Servlet을 사용할 때, DB는 어떻게 연결을 했을까? 다양한 방법으로 소개를 하고 추후 이를 토대로 발전사를 정리해보고자 한다. 앞으로 다뤄볼 내용의 구조는 다음과 같다. servletController - memberDAO - memberVO servletController : 요청에 대한 처리를 할 Servlet memberDAO : DB 처리할 Servlet memberVO : DB와 관련된 객체를 담을 Servlet // Controller protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // MemberDAO 객체 선언 Membe..
Servlet - Cookie And Session 이 파트는 크게 3가지로 분류 가능하다. - Persistence Cookie : client의 컴퓨터의 저장 - Session Cookie : client가 사용하는 브라우저에 저장 - Session : 서버의 메모리에 저장 과정 Client -> (접속) -> 서버 -> (쿠키생성, 전송) -> Client 1. Persistence Cookie 사용 용도) 로그인 유무, 팝업창 제한 등 사용) 쿠키 객체 생성 후, 지속시간을 설정합니다. 이후 response에 담아 전달합니다. Cookie c = new Cookie("id", "abc")); c.setMaxAge(24*60*60); // persistense cookie response.addCookie(c); 2. Session Cookie 사용..
Servlet - ServletContext 앞서 바인딩 파트에서 ServletContext의 바인딩 기능에 대해서 다뤄보았다. ServletContext에는 다양한 기능이 있어 더 알아보려고 한다. 1) Binding 2) 매개변수 설정 기능 3) 파일 입출력 기능 파일 입출력 기능은 생략하고 매개변수 설정기능에 대해서 알아본다. 2) 매개 변수 설정 기능 아래와 같이 xml 파일에 설정하고 싶은 정보를 설정한다. // web.xml menu_member 회원정보 회원조회 회원수정 회원삭제 menu_order 주문조회 주문등록 주문수정 주문취소 Servlet에서는 위에서 설정된 정보를 불러온다. 이때, 이름을 맞춰주는 것이 중요하다. // Servlet ServletContext context = getServletContext(); String..
Servlet - Binding 바인딩 - 정보를 객체에 저장하여 포워딩하거나 사용하기 위한 과정을 의미한다. 그 전 포스트에서 Forwarding에 대해서 알아보았다. 데이터를 다른 서블릿으로 전달을 할때 항상 바인딩이 필요하다. 방법) 1. request.setAttribute("이름", "값"); 2. ServletContext 사용 1. request.setAttribute("이름", "값"); 밑에를 살펴보면, firstServlet에 요청 request가 들어왔다고 가정해보자. 이때, 이 request에 "address" 속성에 "천안시"라는 데이터를 삽입한다. 이 후, 포워딩에 필요한 dispatch 객체 생성후 이동할 서블릿을 설정한다. 다음 서블릿에 데이터를 전달한다. // Servlet1 request.setAttri..
Servlet - Forwarding Forwarding이란 한 서블릿에서 다른 서블릿으로 정보를 전달하는 방식이다. 종류 - Redirect - Refresh - Location - Dispatch 여기서 Dispatch만 알아보려고 한다. 이유는 나머지 방식은 다른 서블릿에 전달하기 위해 client를 거쳐 다음 서블릿으로 전달된다. (Client 요청 -> Servlet1 -> Clint -> Servlet2) Dispatch - Client를 거치지 않고 원하는 데이터를 다른 서블릿으로 전달하는 방식 - 본질적으로는 get 방식으로 전달, 따라서 다음 서블릿에서는 doGet 메서드를 이용해 정보를 전달받는다. 간단하게 처음에 first servlet으로 전달받은 request, response를 그대로 second servlet으로 ..
Servlet - Get, Post Servlet을 이용할때 사용되는 GET, POST 방식에 대해 알아보려고 한다. 우선, 공통적으로 GET, POST는 특정 데이터를 서버에 전달한다. 하지만 방식이 조금 다르다. 일반적으로, 많은 데이터 - POST 이용, 적은 데이터 - GET 이용 이라고 생각하면 쉽다. ex) POST 현재, view에서 로그인 정보를 서버에 보낸다고 가정해보면 form 태그 안에 method=post 지정 후 action을 통해 전달하고자 하는 servlet 매핑명을 써주면 해당 form이 서버에 전달된다. 아이디 : 비밀번호 : ex) GET 아래와 같이 주소를 이용해 아이디와 비번을 해당 서버에, 서블릿에 전달하는 방식이다. localhost:8090/Project/login?id="aaa"&pwd="1234..