Java/톰캣 (Tomcat)

    톰캣에서 지원하는 HttpSession 이란? (feat. Servlet API)

    Tomcat 에서 지원하는 Http 세션 (HttpSession) 이란? HttpSession 은 자바 서블릿 API 에 의해 제공된다. 유저를 식별하고 각 유저에 맞는 정보를 저장할 수 있게 해준다. 톰캣 내부에 구현이 있다. 톰캣은 오픈소스 웹서버이고 서블릿 컨테이너이다. 자바 서블릿과 자바 서버 페이지 (JSP) 스펙을 구현한다. HttpSession 인터페이스의 기능 서블릿 API 에 의해 제공되어 세션 식별자, 생성 시간, 마지막으로 엑세스한 시간 등 세션에 대한 정보를 보거나 조작하게 해준다. 객체를 세션에 바인딩하여 여러 사용자 연결에 걸쳐 사용자 정보를 유지할 수도 있다. 어떻게 동작하는가? 세션 생성 세션 ID 세션 속성 세션 타임아웃 세션 추적 세션 생성 (Session Creation..

    인텔리제이 콘솔에서 톰캣 한글 로그가 깨질 때 해결 방법

    증상 체크 톰캣 서버를 띄웠는데, 콘솔에서 한글이 잘 찍히지 않는다. 초기화 과정에서 나오는 메세지가 깨져서 나온다. 기본 Intellij 콘솔 인코딩 깨짐 해결 아래의 화면처럼 깔끔한 초기화 로그가 뜨지 않고 여러 문자가 깨져보일 때 해결하는 방법이다. Intellij File Encodings 체크 상단부터 차례대로 체크해본다. 통신에는 UTF-8 이 가장 범용적으로 사용되므로 UTF-8 로 모두 고정해주는 것이 좋다. 가변길이 인코딩으로 통신 시 공간효율이 좋다. Global Encoding, Project Encoding, Default encoding for properties files 아래의 Transparent native-to-ascii conversion 도 체크하는 것이 좋다. 네이티..

    web.xml 에서 사용하는 absolute-ordering 이란?

    absolute-ordering 이란? Servlet 3.0 명세에서 도입된 기능이다. 어떤 web fragments 가 먼저 처리되어야 하는지 개발자가 직접 정의할 수 있는 기능이다. web fragments 란, 메인 웹 애플리케이션과 독립적으로 패키징하고 배포할 수 있는 웹 앱의 모듈적 단위이다. WEB-INF 내부 lib 디렉토리에 있는 JAR 파일들이 web fragments 의 예이다. 순전히 optional 한 엘리먼트이며, 존재하지 않는 경우 기본 값으로 처리된다. 기본값은 발견된 순서이다. 어떻게 동작하는가? 웹 앱이 배포되면, 웹 컨테이너는 web.xml 을 읽고 모든 web fragments 를 모아 하나의 통합된 웹 앱으로 만든다. 기본 값은 웹 컨테이너에 의해서 발견된 web fr..

    web.xml 파일이란? 그리고 web.xml 파일의 역할

    web.xml 파일이란? 자바 웹 애플리케이션을 위한 배포 디스크립터 (deployment descriptor) 이다. WEB-INF 디렉토리 내부에 위치한다. 배포 디스크립터란 구성 정보 파일을 말한다. 애플리케이션에 의해 사용되어 배포 도구 혹은 런타임에 정보를 제공한다. 애플리케이션의 servlets, filters 그리고 그 외 컴포넌트들을 구성하는 것을 도와준다. 정리하자면, 웹 컨테이너(Tomcat)에 구성 정보 (configuration information)를 제공해준다. web.xml 을 통해 제공할 수 있는 구성 정보들 자바 웹 애플리케이션에 대표적으로 아래와 같은 구성정보를 제공해줄 수 있다. 서블릿 매핑 보안 제약 에러 페이지 초기화 파라미터 필터 세션 구성 마임 타입 매핑 서블릿 ..

    자바 서블릿(Servlet) 이란?

    서블릿이란? 서블릿은 자바 웹 서버의 기능을 확장한다. 자바 웹 앱에서 클라이언트 요청을 다루기 위해 사용되는 자바 클래스이다. 서블릿은 동적 웹페이지 생성, 유저의 입력 처리, DB 혹은 다른 백엔드 서비스와의 커뮤니케이션 등에 사용된다. 왜 서블릿이란 이름을 가지게 되었는가? "server" 와 "applet" 이라는 이름이 합쳐졌다. "server" 는 클라이언트의 요청에 응답하는 프로그램을 말한다. "applet" 은 커다란 프로그램 안에서 세부적인 작업을 하는 작은 프로그램을 말한다. 서블릿은 어떻게 생성되는가? Java Servlet API 를 통해 구현된다. 공식문서 를 확인하여 어떠한 API 가 존재하는지 확인할 수 있다. 제공하는 인터페이스와 클래스들을 이용해 서블릿의 동작을 정의할 수 ..

    WEB-INF 디렉토리란?

    WEB-INF 디렉토리란 무엇인가? 자바 웹 애플리케이션에서 특수한 역할을 담당하는 디렉토리이다. 보통 웹 애플리케이션 루트 디렉토리에 위치한다. 애플리케이션 내부적으로 쓰는 파일이 존재하는 디렉토리로 클라이언트 접근이 불가능해야 한다. 몇개의 서브 디렉토리와 파일을 갖는다. WEB-INF/classes: 컴파일된 자바 클래스 파일들을 보관. WEB-INF/lib: 서드파티 라이브러리들을 보관. WEB-INF/web.xml: 구성정보 파일이다. 절대 클라이언트가 접근 가능한 위치에 두면 안된다. 서블릿, JSP 페이지와 같은 웹 애플리케이션 컴포넌트만 접근이 가능해야 한다.

    톰캣 + JDK 환경에서 로컬 개발환경에 HTTPS 적용하기

    JDK 에서 keytool 로 keystore 생성하기 JDK 내부에서 keytool 을 제공한다. JDK 디렉토리로 이동하여 아래 명령어를 입력해 keystore 를 생성하자. keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcat.keystoreTomcat 에서 server.xml 파일 수정하기 위는 톰캣 9.xxx 버전 기준이다. 설정을 한 이후 서버 켜고 https://localhost 접속해보면 된다. 레퍼런스 톰캣 SSL HOW-TO 공식문서

반응형