본문 바로가기

BackEnd

(97)
서블릿의 생명주기 (LifeCycle) 서블릿은 최초 요청 시(서버가 켜질 때) 객체가 생성되고, 이때 생성된 객체가 계속 재사용되다가 서버가 중지될 때 서블릿 객체는 삭제됩니다. 즉 Application의 특성을 가지고 있는 객체가 서블릿입니다. 서블릿의 생명주기 1. 최초 요청인 경우 서블릿 객체를 메모리에 생성 2. init() 서블릿 객체가 생성된 다음에 호출되는 메서드로써 재정의가 가능합니다. 3. service() 서블릿 요청이 있을 때 마다 재사용되어 호출되며 재정의가 가능합니다. 하지만 재정의하지 않으면 요청 정보 헤더의 요청 방식에 따라 서로 다른 메서드를 호출합니다. 요청 방식에 의해 호출되는 메서드는 아래와 같습니다. 요청 방식 메서드 GET doGet(request, response) POST doPost(request,..
JSP의 동작 원리 알아보기 1. 웹 브라우저 요청 (클라이언트가 웹 브라우저로 JSP에 대한 요청 정보를 전달) kalsWeb.jsp 라는 페이지를 클라이언트가 웹 브라우저 주소창에 입력하고 이동을 합니다. 2. JSP -> Servlet (컨테이너가 JSP 파일을 servlet 파일(.java)로 변환) servlet 파일로 변환된다는 것은 kalsWeb_jsp.java 파일이 생성된다는 것과 같은 말이자 생성되는 시점입니다. 3. Servlet -> JSP (.class 파일 생성) 바로 전 단계에서 생성된 servlet 파일(.java)를 컴파일하여 실행가능한 byte code로 변환한 .class 파일을 생성합니다. 4. 내부 로직 수행 바로 전 단계에서 변환되고 생성된 .class 파일을 로딩하고 인스턴스를 생성합니다. ..
구현 코드가 없는 인터페이스 (interface) 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 하며 추상 메서드와 상수로만 이루어져 있고 구현된 코드가 없기 때문에 인터페이스로 인스턴스를 생성할 수도 없습니다. 인터페이스를 생성하려면 클래스를 생성할 때 처럼 패키지에서 마우스 우클릭 후 [New -> Interface]를 클릭하여 생성하며 간단한 계산기 인터페이스를 만들어보겠습니다. public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1..
[기본 클래스] Object 클래스 우리는 지금까지 String, Integer와 같은 참조형 클래스를 사용하고 있었습니다. 이들 클래스는 java.lang 패키지에 속해있으며 String 클래스의 전체 이름은 java.lang.String입니다. 외부 패키지에 선언된 클래스를 사용할 때는 import문으로 해당 클래스의 패키지와 함께 선언해줘야 합니다. 그런데 import java.lang.String;이라는 문장을 써준 적이 없죠? 이 말인즉슨 import java.lang.*; 문장이 자동으로 추가되어 암묵적으로 사용할 수 있었던 것이었습니다. 오늘 이 글에서 다룰 JDK 기본 클래스는 Object 클래스입니다. Object 클래스는 모든 클래스의 최상위 클래스입니다. 모든 클래스는 Object 클래스를 상속받습니다. 상속받으려면 e..
enum (데이터 열거형 타입) enum이란 enumeration(열거, 목록)의 약자입니다. 자바에서는 enum을 같은 종류의 상수 집합으로 사용합니다. 일반적으로 상수를 선언할 때는 아래와 같습니다. private final static int KIM; private final static int CHOI; private final static int PARK; 일반 상수에서 배웠듯이 private final static 은 생략해도 상수가 기본적으로 생략하며 가질 수 있습니다. 상수를 관리할 때 자료형 상수 방식으로 상수를 선언하는 것 보다 enum 방식으로 관리하는 게 장점이 더 많습니다. enum FirstName { KIM, CHOI, PARK } 위 enum 방식은 최상단 일반적인 상수 선언했던 내용과 100% 동일합니다...
향상된 for문 (for each문) 향상된 for문 (for each문) 은 JDK 5.0 버전 이상부터 지원하는 문법입니다. 기본 문법 for(객체에서 꺼낸 데이터를 저장할 변수 선언 : 배열 등의 객체) { ... } 보통 배열이나 여러개의 값이 담긴 객체를 사용할 때 반복문을 씁니다. 일반적인 for문으로 구문을 작성하면 아래와 같습니다. String[] arr = {"칼", "스", "블", "로", "그"}; for(int i=0; i
MySQL 설치하기 웹 서버를 본인 PC에 올려서 쓰거나, 다른 이유로 Database를 사용해야 할 경우를 위해 설치하는 방법을 알려드립니다. MySQL은 DBMS (DataBase Managerment System) 소프트웨어의 일종입니다. JSP로 예를 든다면 회원가입 하는 멤버, 게시판의 글/댓글, 쇼핑몰 장바구니 등 우리가 로그아웃을 해도 데이터가 남아있는 이유가 DB에 데이터를 저장해뒀기 때문입니다. JSP는 웹 개발에 최적화 된 언어이기 때문에 DB는 당연히 쓸 것 같아 JSP 게시판에 포스팅 하였습니다. 아래 링크에 접속합니다. https://www.mysql.com/downloads/ 스크롤을 쭉 내리다보면 MySQL Community (GPL) Downloads >> 링크가 있는데 이 링크를 통해 다운로드..
추상화 (Abstract) 1. 추상 메서드 - 메서드 구현부(Body)가 없는 메서드 (실행할 코드가 없는 메서드) - 선언부 리턴 타입 앞 abstract 키워드 명시 - 이렇게 추상 메서드로 정의가 된 메서드를 포함하는 클래스는 반드시 추상클래스로 정의해야 함 기본 문법 [접근제한자] abstract 리턴타입 메서드명([파라미터...]); 2. 추상 클래스 - 인스턴스를 생성할 수 없는 클래스 - 클래스 내에 추상 메서드가 하나라도 존재할 경우 반드시 추상 클래스로 선언 - 서브 클래스는 반드시 추상 메서드를 구현(implements)해야 함 = 오버라이딩 방법과 동일 기본 문법 [접근제한자] abstract class 클래스명 { // 멤버변수, 상수 // 일반메서드, 추상메서드 } abstract class Abstrac..