
Filter란? 만약 각 서블릿마다 한글 인코딩을 위해 request.setCharacterEncoding("UTF-8");을 작성해야한다면 매우 불편할 수 있다. 이럴 때 사용할 수 있는게 filter 이다. 공통적인 처리(filter)를 추가하여 통신의 사이 사이에서 지정한 동작을 만들어 낼 수 있다. 예를 들어 전달받은 데이터를 인코딩해야한다든지, 세션 데이터를 인증하거나 이벤트나 공지 등의 팝업을 추가 하는 경우들과 같은 상황에 필요할 수 있다. 1. 필터 클래스 작성 자바 클래스 파일을 하나 생성한 후 아래 코드를 작성합니다. Filter는 인터페이스기 때문에 꼭 메소드를 재정의해야한다. package org.sample.filter; import javax.servlet.*; import ja..

1. GET 방식 웹에서는 클라이언트가 서버로 요청을 하면 응답을 할 수 있는 옵션이 있을 수 있다. 클라이언트는 기본적으로 문서를 요청하고 서버는 요청받은 문서를 주는 식으로 일어난다. (http://localhost/hello 라는 문서를 요청) 그런데 get 방식은 클라이언트가 추가적인 것을 요청하며 문서를 요청할 수 있다. http://localhost/hello?cnt=3 이와 같이 말이다. 뒤에 추가적인 옵션을 덧붙였다. 이런 것을 QueryString 이라한다. 이렇게 서버에게 추가적인 옵션을 요청한다. 이때 서버는 그 옵션에 맞게 반응하여 돌려주어야 한다. 서블릿 클래스에 다음과 같은 내용을 추가하여 해당 값을 받아올 수 있다. int cnt = Integer.parseInt(request..

톰캣서버를 사용해 JSP와 Servlet을 배우고 있다. 웹페이지로 Servlet 출력을 하는데, 원하지 않는 출력이 나타나거나 브라우저마다 다른 출력이 나타나거나 한글이 깨지는 현상들이 일어나곤 한다. 왜그럴까? 형식들을 지정하지 않았기 때문이다. 여러 형식들을 지정해서 그에 맞게끔 브라우저가 읽어들이도록 해야한다. 1. Servlet 출력 형식 일단, 아래 코드부터 보자. @WebServlet("/HelloServlet") public class Hello extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IO..
Stream (스트림) 스트림은 자바8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 데이터 컬렉션 반복을 멋지게 처리하는 기능이라고 생각하면 이해가 쉽다. Iterator와 비슷한 역할을 하지만 람다식으로 처리하기 때문에 코드를 좀 더 간결하게 할 수 있으며, 내부 반복자를 사용하므로 병렬처리가 쉽다는 점에서 차이가 있다. Iterator를 이용해 ArrayList의 요소를 모두 처리하기 위한 방법은 다음과 같다. ArrayList arrayList = new ArrayList(Arrays.asList(1,2,3)); Iterator iter = arrayList.iterator(); while(iter.hasNext()) { int num = iter..

Collection(컬렉션) : 데이터의 집합, 그룹 Java Collections Framework는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다. 개발에 소요되는 시간을 절약하면서 최적화된 알고리즘을 사용할 수 있다. Java Collection Framework 의 상속구조 Collection 인터페이스에 선언된 주요 메서드 메서드 설명 boolean add(E e) Collection에 객체를 추가 void clear() Collection의 모든 객체 제거 Iterator iterator Collection을 순환할 반복자(Iterator)를 반환 boolean remove(Object o) Collection에 매개변수에 해당하는 인스턴스가 존재할 ..
자바를 사용하다보면 abstract 와 interface 의 기능과 차이가 헷갈릴 때가 많다. 그래서 정리를 해보고자 글을 쓰게 되었다. abstract (추상클래스) 추상클래스는 0개/하나 이상의 추상메소드를 가지고 있다. 추상메소드는 추상메소드는 함수의 바디가 아직 구현되어 있지 않은 abstract로 정의된 메소드를 말한다. public abstract class Car { /* 추상 메소드 */ public abstract void drive(); public abstract void stop(); /* 일반 메소드 */ public void startCar() { System.out.println("시동을 켭니다"); } } public class AICar extends Car{ @Overri..

인프런의 해당 강의를 듣고 정리한 내용입니다. www.inflearn.com/course/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4-%EC%9B%B9%EC%95%B1 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 - 인프런 본 강의는 Jetbrains(https://www.jetbrains.com/)사의 Java 프로그래밍 개발 툴인 IntelliJ IDEA에서 웹 프로그래밍을 시작하기 위한 설정 과정에 대해 소개하는 강의입니다. 초급 웹 개발 개발 도구 Jetbrains 웹 www.inflearn.com # Servlet 파일 생성 1. Maven 프로젝트 생성 org.apache.maven.archetypes:maven-archetype-webapp..

HTML, CSS, JavaScript를 이용해서 크롬앱인 ToDoList를 만들어봤다. 기본적으로 JavaScript를 조금 다룰 수 있기 위해서 도전해봤다.😊 만들면서 알게된 정보들 * 요소(Element) 관련 함수 * // HTML 요소를 추가할 수 있는 함수. 인수로 요소 이름 전달 const li = document.createElement('li'); const button = document.createElement('button'); // 선택한 요소 안에 자식 요소를 추가(마지막에) li.appendChild(button); document.querySelector('.todoList').append(li); * 이벤트(event) 관련 함수 * // form 태그의 submit의 디폴..