전체 글 28

[JSP] 서블릿이란? (Java Servlet)

서블릿(Java Servlet) jsp를 공부하거나 코딩하다가 검색하면 정말 자주 등장하는 단어지. 그래서 오늘은 서블릿이 뭔지 알아보려고 해. 서블릿이란? 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램의 사양을 이야기해. JSP는 HTML문서 안에 Java코드를 포함하고 있는데 서블릿은 Java코드 안에 HTML을 포함하고 있다는 차이점도 존재해. 1. 클라이언트가 URL을 입력하면 HTTP Request가 Servlet Container*로 전송 2. 요청을 전송받은 Servlet Container는 HttpServletRequest, HttpServletResponse 객체 생성 3. web.xml을 기반으로 클라이언트가 요청한 URL이 어느 서블릿에 대한 요청인지 탐색 4. 해당 서..

01 java.lang.NumberFormatException 오류

오류가 났어. 하하. 근데 그저 format오류라 그냥 무시하고 출력하기로 했어. try catch문을 사용해서. package com.my.test; public class Test01 { public static void main(String[] args) { try { String str = "93928"; System.out.println(Integer.parseInt(str)); } catch (NumberFormatException e) { // NumberFormatException 이 발생할 경우 처리 } catch (Exception e) { // Exception 이 발생할 경우 처리 } } } 이렇게 해버리면 에러는 무시하고 그대로 출력값이 나오더라구.

ERRORs/JSP 2021.01.12

[데이터베이스]CHAR, VARCHAR, TEXT 차이

CHAR(길이) 고정길이 문자열. 1~255의 길이를 갖는 문자열이야. CHAR에 5칸의 공간을 부여했으면, 1칸만 사용하더라도 나머지 4칸을 공백으로 채워버리는 녀석이야. VARCHAR(길이) 가변길이 문자열. CHAR와는 달리 남은 공간을 공백으로 채우지 않아. TEXT, VARCHAR 무한대 길이의 문자열을 저장할 수 있어. 하지만 무한대라고 해도 시스템 상 65,535까지만 지정할 수 있으니, 65,535이 최대치라고 할수 있지!

DATABASE 2021.01.12

쿠키(Cookie) 와 세션(Session)

1. HTTP 프로토콜 이번에도 쿠키와 세션에 대해 알아보기전에 HTTP프로토콜을 잠시 살펴보자. HTTP프로토콜은 Request와 Response로 이루어져있어. 클라이언트(브라우저)에서 request를 하면 서버는 그에 맞는 response를 응답하고 연결을 종료하지. 쿠키와 세션은 바로 이 연결이 종료될 때 정보나 데이터를 유지하기 위해서 필요한 녀석들이야. 2. 쿠키(Cookie) 쿠키는 서버에서 생성하고 클라이언트측에 저장 돼. 서버에 요청할 때마다 쿠키의 속성값이 변경, 참조될 수 있어. 사이트 내의 모든 페이지에서 읽을 수 있는 전역 변수이기도 해. 쿠키는 로컬에 txt파일 형태로 저장되기 때문에 보안에 취약하다는 단점이 있어. 따라서 데이터 저장시 URLEncode 처리가, 데이터 읽어올 ..

[JSP] Directive

잠깐! 디렉티브를 알아보기전에 잠시 서버가 어떻게 구동되는지만 살펴보자. 1. 클라이언트가 웹 서버에 요청 2. 웹서버는 WAS로 요청 전달 3. 웹서버에서 JSP를 요청하면 웹컨테이너에서는 JSP파일을 서블릿 파일로 변환한 뒤 컴파일하여 실행한 결과를 웹 서버에 전달 Directive(지시자) -Directive는 바로 웹 컨테이너안에서 JSP페이지를 서블릿 클래스로 변환할 때 필요한 정보기술하기 위해 사용해! 1. 페이지 디렉티브 클라이언트의 요청에 의해 실행되는 JSP 페이지의 필요한 정보를 디렉티브(Directive)의 속성들을 사용해서 정의해주는 역할을 해. 다음은 속성들이니 필요할 때 참고하자! 속성 설명 기본값 contentType JSP가 생성할 문서의 타입을 지정. text/html im..

[JAVA] 추상클래스와 인터페이스(다형성)

1. 추상 클래스(Abstract class) 추상클래스는 미완성 도면이라고 생각하면 이해하기 쉬울거야. 예를 한 번 들어볼게. 1. A회사가 만든 문은 손으로 닫는 문 2. B회사가 만든 문은 자동으로 닫는 문 3. C회사가 만든 문은 양쪽으로 닫는 문 이상 A,B,C 회사 문은 닫히는 방법은 각기 다르지만 결국 '닫히다' 라는 공통점이 있어. '닫힌다' 라는 행위를 메소드라고 본다면, 공통된 메소드만 정의해 놓은 클래스가 바로 추상 클래스라고 할 수 있어. "추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스" 이제는 이렇게 표현해도 이해할 수 있겠지? 추상 클래스가 가질 수 있는 것들은 다음과 같아. 1) 필드 2) 생성자 3) 추상메서드 생성자를 가지기 때문에 객체화가..

JAVA/이론 2021.01.05

[JAVA] String을 import 없이 사용할 수 있는 이유

원칙적으로 java.lang.String (변수명) 이런식으로 기술해야해. 그런데 우리는 왜 String을 import 없이 사용할 수 있을까? 우선 자바를 설치한 폴더를 찾아보자. C:\Program Files\Java\jdk-15.0.1\lib 나 같은 경우는 이 경로였어. lib 폴더를 들어가면, jrt-fs.jar 라는 파일이 보일거야! (구버전은 rt.jar) 바로 이 jar 파일 안에 JAVA에서 사용하는 클래스들이 압축되어 있어. String 같은 경우는 java/LANG 안에 String.class 형태로 저장되어 있지. 따라서 import를 이용해서 다음과 같이 써줄 수 있어 import java.lang.*;// 방법1 import java.lang.String;// 방법2 그러나 우리..

JAVA/이론 2021.01.05

[JAVA] JVM (자바가상머신)

JVM이란 JAVA Virtual Machine을 이르는 말이야. JVM은 코드를 실행하고 해당 코드에 대해 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양이라고 하는데 그냥 쉽게 말해서 자바 프로그램을 실행하는 방법이라고 보면 돼. [실행 과정] 실행자가 자바 소스파일을 실행시키면 JAVA컴파일러가 .java파일을 .class파일로 변환시켜줘. 이렇게 변환된 class파일은 class loader를 만나게 되는데, 이 녀석은 class파일을 JVM에 할당된 메모리에 적재해주는 역할을 하고 있어. JVM이 시작되면 3개의 Class Loader가 사용돼. 1. 부트스트랩 클래스 로더 2. 확장 클래스 로더 3. 시스템 클래스 로더 방금 전에 class loader가 class파일을 메모리에 적재한..

JAVA/이론 2021.01.04