본문 바로가기

전체 글97

필터 필터는 서블릿 필터라고도 하며 리스너와 마찬가지로 웹 앱을 지원하기 위한 특수한 형태의 서블릿이다. 클라이언트의 특정 요청에 따라 서블릿이나 JSP가 실행되기 전에 response 혹은 request 객체의 조작이나 추가적인 처리를 할 수 있다. 여러 개의 필터는 정해진 순서대로 요청 처리 전에 먼저 실행된다. 리스너처럼 기능만 구현하는 웹 프로그램의 경우에는 필터가 불필요하다. 하지만 앱 설계 관점에서 더 효과적인 앱 구현 및 운영이 필요하다고 판단되면 필터를 이용하는 것이 좋다. 필터의 구조와 동작 과정 필터는 톰캣 서버를 시작할 때 필터 구현 클래스의 어노테이션을 참조하여 인터페이스를 구현한 클래스가 초기화된다. 또한 필터는 여러 개 존재할 수 있으며 필터는 각각 init() 메소드를 통해 초기화한.. 2023. 8. 10.
리스너 리스너는 컨테이너를 모니터링하다가 특정 이벤트가 발생하면 실행되는 서블릿으로 이벤트 리스너라고도 한다. Web Application 실행에 필요한 정보를 제공하거나 톰캣 시작/종료와 같은 특정 상황에 자동으로 동작하는 프로그램을 구현할 때 사용한다. 리스너 또한 서블릿처럼 어노테이션 기반 코드로 작성 가능하다. 리스너의 동작 구조는 위의 그림과 같다. 클라이언트 요청에 따라 서블릿을 통해 Session, Request 객체가 생성되거나 속성의 변화가 발생하면(이벤트 발생) 컨테이너에서 이벤트를 감지한다. 그리고 해당 이벤트를 처리하는 리스너 클래스의 메소드를 호출한다. 리스너의 종류 ServletContextListener - 톰캣의 시작, 종료와 같은 이벤트에 동작 ServletContextAttrib.. 2023. 8. 10.
Servlet과 JSP(Java Server Pages) 서블릿이란 자바 기반의 웹 프로그램 개발을 위해 만들어진 기술로 톰캣과 같은 서버 소프트웨어(WAS)를 통해 관리된다. 웹 프로그램은 서버에 접속해야만 화면을 볼 수 있고 로그인과 같은 기능은 모두 서버에서 실행되 이후 결과만 클라이언트에 보이는 구조이다. 참고로 이때 클라이언트는 HTML 파일의 내용으로 수신받는데 HTML은 정적인 파일이므로 실시간으로 변하는 정보(날씨, 홈페이지 메인 화면 등)는 가져올 수 없다. 이러한 정보는 데이터베이스에 저장되어 있기 때문에 사용자의 웹 요청을 받으면 또 다른 프로그램을 통해 데이터베이스에서 정보를 가져와 HTML로 재구성 해야한다. 이러한 프로그램 실행 중에 데이터베이스에 저장하는 과정이 필요하다. 서블릿은 이러한 기능을 수행할 수 있도록 도와주는 특수한 목적.. 2023. 8. 8.
플레이데이터 백엔드 3기 8월 1주차 회고 일주일 동안 한 일 jsp에 대한 공부와 직접 뉴스 기사를 등록하고 삭제하는 서비스를 만들어 jsp를 적용해보았다. 좋았던 점 jsp에 대한 공부를 할 수 있어 좋았다. 로컬에 호출할 때 404에러가 떴다. 에러를 처리하면서 코드에서의 오타와 톰캣과의 호환성 문제 등을 해결하며 더블체크하는 자세를 길렀다. 아쉬웠던 점 할머니 제사로 3일을 빠졌다. 그래서 작은 예제는 스킵하고 큰 예제 하나만 가지고 공부했는데 그게 너무 아쉽다. 개선할 점 요즘에 너어무 일어나기 힘들다. 날도 더워지니 더더욱 나가기 싫어하는 것 같은데, 매일 갖는 마음가짐이 중요한 것 같다. 처음 부트캠프에 임했던 간절함을 잊지말자. 다음주 계획 1. 리스너에 대한 공부 게시글을 작성 2, 유튜브 밀린 영상 2개 만들기 3. 프로그래머스.. 2023. 8. 7.
플레이데이터 데이터 엔지니어링 5주차 회고 일주일 동안 한 일 html로 계산하는 홈페이지를 만들고 톰캣과 servlet을 이용하여 로컬에 띄어보았다. 좋았던 점, 내가 잘한 점 스프링으로 자동 톰캣이 돌려지는 상황에서 내가 직접 톰캣을 이용해 실행하려니 어려웠다. 인텔리제이에서 하려니 더욱 힘들었던 것 같다. 하지만 같은 툴을 쓰는 사람들끼리 머리를 맞대어 호환성문제와 경로설정 문제를 해결하여 결국 톰캣과 서블렛을 연결할 수 있었다. 아쉬웠던 점 서블렛에 대한 이해도가 낮은 것 같다. 어떤 용도인지 더 공부해야겠다. 개선할 점 학원에서의 시간을 잘 활용해야겠다. 친구들이랑 너무 친해져서 자습시간에 마음 잡고 공부해야 할 듯. 다음주 계획 서블렛에 대한 공부를 하고 게시글에 올릴 것. jsp 책 1회독 2023. 8. 3.
[Hashmap] .getOrDefault(key, defaultValue) .getOrDefault(key, defaultValue) 메소드는 HashMap에 지정된 key에 대한 값을 가져온다. 만약 해당 key가 HashMap에 존재하지 않을 경우, defaultValue로 지정된 값을 반환한다. key : HashMap에서 찾고자 하는 key defaultValue : 해당 key가 존재하지 않을 때 반환할 기본 값 HashMap map = new HashMap(); map.put("java", 1); map.put("python", 2); 위의 코드에서 map.get("java")를 호출하면 3이 반환된다. 하지만 map.get("c++")을 호출하면 key가 존재하지 않으므로 null이 반환된다. map.getOrDefault("c++",0)을 호출하면 기본값 0으로 .. 2023. 7. 25.