What is Servlet?

서블릿은 웹 컨테이너에 의해서 관리되며 다양한 클라이언트 요청에 의해서 동적인 Content로 응답 가능한 자바 기반의 웹 컴포넌트이다.

 

 

Features
  • 자바기반의 웹포넌트로서 .java 확장자를 갖는다.
  • MVC패턴의 Controller역할로서 서블릿이 사용된다.
  • 클라이언트의 HTTP 요청을 Servlet에 전달하고, Servlet의 HTTP응답 결과를 클라이언트에 돌려주는 역할.              ( =Servlet 엔진)

 

 

입출력스트림(I/O)

 

자바에서 데이터는 스트림을 통해 입출력이 된다. 스트림이란 한 방향으로 흘러가는 것을 말한다.

즉, 데이터를 입력받은 곳으로부터 출력하는 곳까지 흐르는 것을 가리킨다.

 

스트림의 종류

스트림은 크게 2가지로 구분된다.

 

ㅁ 바이트 기반 스트림 : 바이트형식의 데이터를 읽고 출력할 때 사용한다.

ㅁ 문자 기반 스트림  : 문자를 입력받고 출력할 때 사용한다.

 

스트림 클래스가 바이트 기반인지, 문자 기반인지를 구분하기 위해서는 최상위 클래스를 보면 된다.

 

InputStreamOutputStream 은 바이트 기반의 입출력 최상위 클래스이다.

 

하위클래스들은 접미사로 InputStream 과 OutputStream 이 붙는다.

 

Reader Writer 는 문자 기반의 입출력 최상위 클래스이다.

 

하위클래스들은 접시마로 Reader 와  Writer가 붙는다.

 

 

 

'JAVA' 카테고리의 다른 글

# Java 스트림(Stream)  (0) 2021.08.03
# Java 람다식  (0) 2021.08.02
#Java Throws  (0) 2021.07.30
#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27
If

Choose

스트림(Stream)

 

ㅁ 특징

- 자료의 대상과 관계없이 동일한 연산을 수행.

 

- 배열, 컬렉션을 대상으로 연산을 수행

 

- 일관성이 있는 연산으로 자료의 처리를 쉽고 간단하게 함

 

- 한번 생성하고 사용한 스트림은 재사용할 수 없음.

 

- 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야함.

 

 

 

중간 연산과 최종 연산

중간 연산의 예 - filter(), map(), sorted() 등

조건에 맞는요소를 추출(filter)하거나 요소를 변환 함(map)

최종 연산이 호출될 때 중간 연산이 수행되고 결과가 생성이 됨.

 

 

여기서 filter는 중간 연산이고, forEach 가 최종연산입니다.

추가로, map은 중간 연산이고, forEach 가 최종연산입니다.

 

중간연산과 최종연산을 이용할 때는 람다식을 활용한다.

 

더보기

ㄴㅇㄴㅇㄴㅇ

'JAVA' 카테고리의 다른 글

# Java 입출력스트림  (0) 2021.08.05
# Java 람다식  (0) 2021.08.02
#Java Throws  (0) 2021.07.30
#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27

람다식이란 함수를 하나의 식으로 표현하는 것을 말한다. 함수를 람다식으로 표현하면 이름이 필요없기 때문에

익명함수의 한 종류로 볼 수 있다.

 

ㅁ작성방법

 

(매개변수) -> (실행문;)

 

1.  (x, y) -> (retrun x + y);

 

2. 매개변수가 하나인 경우 자료형과 괄호 생략가능

ㄴ str ->{System.out.printLn(str)};

 

3. 매개변수가 두 개 잇아인 경우 괄호를 생략할 수 없음

ㄴ x, y-> {System.out.printLn(x+y);} //오류

 

4. 실행문이 한 문장인 경우 중괄호 생략가능

str -> System.out.println(str);

 

5. 실행문이 한 문장의 반환문인 경우엔 return과 중괄호를 모두 생략

(x, y) -> x+ y;

 

 

ㅁ람다식의 특징

1. 코드를 간결하게 만들 수 있다.

2. 함수를 만드는 과정에 있어서 비교적 간편하게 만들 수 있다.

 

 

 

함수형 인터페이스

람다식을 선언하기 위한 인터페이스이다.

익명 함수와 매개 변수만으로 실행되므로 인터페이스는 단 하나의 메서드만을 선언해야함.

 

@FunctionalInterface 를 선언해야함.

 

 

'JAVA' 카테고리의 다른 글

# Java 입출력스트림  (0) 2021.08.05
# Java 스트림(Stream)  (0) 2021.08.03
#Java Throws  (0) 2021.07.30
#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27

 

Throws

Throws 문을 이용하면 예외처리를 호출한 메소드로 에외를 떠 넘길 수 있다. 즉, 메소드를 호출한 사용자가 예외를 떠받는 것이라고 생각하면 된다.

 

다음 사진의 빨간색 밑줄을 보면 2개의 예외처리가 있는 걸 확인할 수 있다.

 

loadClass를 호출한 곳에서 저 두개의 예외처리를 진행해야 한다.

 

 

'JAVA' 카테고리의 다른 글

# Java 스트림(Stream)  (0) 2021.08.03
# Java 람다식  (0) 2021.08.02
#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27
# Java 제네릭(Generic)  (0) 2021.07.27
사용자 정의 예외 클래스

자바에서 제공되는 예외클래스 외에 프로그래머가 직접 만들어야 하는 경우가 있다.

 

사용자가 직접 만들어  Application 에서 특정 조건을 위반했을 경우에 명시적으로 예외를 발생시킬 수 있다.

 

기본적으로 exception 클래스를 상속해서 만들 수 있다.

 

 

작성예시)

 

public class 클래스명 extends Excetion {

           

            public 클래스명 (String mesg){

                    super(mesg)

                  }

}

 

 

 

자바에서 작성을 해보면 다음 그림과 같이 작성할 수 있다.

 

 

 

 

 

이 예외처리를 다음과 같이 이용할 수 있다.

 

 

Test 

 

Main에서 사용한 예시

 

'JAVA' 카테고리의 다른 글

# Java 람다식  (0) 2021.08.02
#Java Throws  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27
# Java 제네릭(Generic)  (0) 2021.07.27
#Java StringTokenizer  (0) 2021.07.26
제너릭메서드

 

 

앞서 말한 제네릭을 이용하여 메서드를 만들 때 자료형 매개변수를 통제할 수 있다.

 

아래의 사진들을 보면 <T, V> 2개의 자료형 매개 변수를 받을거라고 정해놓고

 

이후에 호출 시 원하는 타입을 적어 넣으면 된다.(사진2)

 

 

사진1

 

 

 

사진2

'JAVA' 카테고리의 다른 글

#Java Throws  (0) 2021.07.30
#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제네릭(Generic)  (0) 2021.07.27
#Java StringTokenizer  (0) 2021.07.26
# Java instance variable  (0) 2021.07.19
제네릭(Generic)

 

클래스에서 사용하는 변수의 자료형(타입)을 선언할 수 있다. 

 

아래 예시를 보면 보라색<power> 을 보면

Powder 클래스를 타입으로 지정한 것을 확인할 수 있다.

 

메소드가 입력받을 수 있는 타입을 제한함으로서 에러검사 및 타입검사를 생략할 수 있다.

 

'JAVA' 카테고리의 다른 글

#Java 사용자 정의 예외 클래스  (0) 2021.07.30
# Java 제너릭메서드  (0) 2021.07.27
#Java StringTokenizer  (0) 2021.07.26
# Java instance variable  (0) 2021.07.19
# Java 클래스 ( Class)  (0) 2021.07.19
instance variable

클래스가 처리할 데이터를 저장하는 용도로 사용된다.

instance variable 를 이용하기 위해서는 반드시 객체(Instance)가 생성되어야한다.

여기서 가장 중요한 점 하나는 

 

다음과 같이 만들어진 객체는 독립적인 성격을 가지고 있다는 것이다!

이에 대해서는 이후 자세히 설명을 하겠습니다 !

ex) Student student = new Student();

 

 

그리고 사용 전에 초기화하지 않으면 기본 값으로 자동 설정된다.

 

ex) public class Test {

   

   String name;

   int age;

 

}

 

위와 같이 입력했으면 name은 String의 기본 값 null 로, age는 int의 기본 값 0 으로 자동지정이 된다.

 

 

 

'JAVA' 카테고리의 다른 글

# Java 제네릭(Generic)  (0) 2021.07.27
#Java StringTokenizer  (0) 2021.07.26
# Java 클래스 ( Class)  (0) 2021.07.19
#Java Arrays.copyOf  (0) 2021.07.14
#Java Array.fill  (0) 2021.07.14

+ Recent posts