1. 필터란? Servlet 2.3 Specifacation(해당 링크 문서의 챕터 6에 나와있음)에 추가된 대표적인 기능 중 하나가 필터입니다. 스펙에는 아래와 같이 설명되어 있습니다. A filter is a reusable piece of code that transforms either the content of an HTTP request or response and can also modify header information. HTTP Request 또는 HTTP Response 내용을 수정할 수 있고, HTTP 헤더 정보 또한 수정할 수 있는 재사용 가능한 코드 조각 구조를 보면 다음과 같습니다. 위의 그림에서 보여지듯이, 필터는 HTTP 요청이 서블릿으로 가기 전에 먼저 맞닥뜨리는 놈입니..
1. Servlet 매핑에서 /와 /* 차이 과거에는 서블릿 매핑값이 다음과 같았습니다. dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation MvcConfig.java dispatcherServlet *.do url-pattern을 *.do 또는 *.action 처럼 특정 확장자를 붙여 지정했습니다. 그러던 중 RESTful 스타일의 url을 사용하자는 열풍이 불었죠. RESTful 스타일의 URL이란 한마디로 확장자를 쓰지 말자는 것입니다. (확장자를 쓰면 가독성도 떨어지고 별로 이쁘지도 않습니다.) 그럼 확장자 없는 URL을 만들려면 다음처럼 위의 url-pattern을 *.do에서 /*로 바..
1. Java 네트워크 프로그래밍 혹시 Java로 네트워크(소켓) 프로그래밍해보신 적 있으신가요? 다음은 Java를 이용해서 간단한 TCP 서버 프로그램을 만드는 코드입니다. class SocketServer { public static void main(String[] args) { try { // 1. 12000 port 번호로 소켓 객체를 생성한다. ServerSocket server = new ServerSocket(12000); while (true) { // 2. 해당 소켓으로 요청이 들어올 때까지 대기 상태로 기다린다. Socket s = server.accept(); try (BufferedReader in = new BufferedReader(new InputStreamReader(s.g..