BackEnd/Java 60

[Servlet/JSP]JSP란?

JSP(Java Server Page)란? Java를 이용해서 동적 웹 페이지(HTML)을 만드는 기술표기법은 HTML 이지만 컴파일 시 Servlet으로 변환되어짐 (HTML 내부에 Java 코드를 작성하는 듯한 형태) (직접 코딩한 서블릿 보다 최적화 된 서블릿을 생성함(효율적)) ▶ Servlet과 JSP 차이점ServletJava코드에 HTML 코드가 포함되어 있는 형태→ HTML 문서를 작성하는데 복잡하고 번거롭다는 단점이 있음.JSPServlet과 반대로 HTML 코드에 Java 코드가 포함되어 있는 형태→ scriptlet(, ), EL(${}), JSTL() 등으로 Java 코드를 표기컴파일을 통해 클래스 파일(Servlet)로 변환되어 웹 서버(WAS)에서 실행됨. ▶JSP 동작 구조 j..

BackEnd/Java 2024.08.16

[Servlet/JSP]Servlet 정의

Servlet이란 ? - 웹 서비스를 위한 자바 클래스 (자바를 이용하여 웹을 만들기 위해 필요한 기술) - 클라이언트의 요청(Request)을 처리하고 그 결과를 다시 클라이언트에게 응답(Response)하는 Servlet클래스의 구현 규칙을 지킨 자바 프로그래밍 기술(ex)사용자가 로그인을 하려고 할 때 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 (요청) 서버는 아이디와 비밀번호를 확인하고 다음 페이지(로그인 성공 또는 실패)를 보여주는 역할 수행 (응답) * Servlet은 자바로 구현된 **CGI라고 함 ▶ Servlet의 특징 - 클라이언트의 요청에 따라 Java Application(자바 프로그램) 으로 웹 브라우저용 출력 화면(HTML) 을 만들어 응답하는 기술 - 클라이언트의 요청에..

BackEnd/Java 2024.08.16

[Java]입출력(IO) InputStream과 ObjectStream

ObjectInputStream / ObjectOutStream란? - 객체를 입출력하는 용도의 바이트 기반 보조 스트림(바이트 기반 == 1byte 단위)(보조 스트림 == 혼자 사용 불가, 기반 스트림과 같이 사용 !)  1) 직렬화(Serializable)- 스트림을 통과하려는 객체(Object)를  직렬(직선) 형태로 변환하는 것  [직렬화 방법]- 스트림을 통과하려는 객체에게 Serializable 인터페이스를 상속받게 하면된다 2) 역직렬화 - 직렬화된 객체를 다시 정상 객체 형태로 바꾸는 것  [역직렬화 방법] - ObjectInputStream을 이용해서 "직렬화"된 객체를 읽어오게 되면자동으로 "역직렬화"가 수행됨 #예제1 객체를 외부 파일로 출력 public void objectOutp..

BackEnd/Java 2024.08.12

[Java]입출력(IO) Stream

Stream(스트림)이란 ? - 데이터가 이동하는 통로 - 기본적으로 단방향 1)  Byte 기반 스트림  - 1byte 단위로 데이터를 입/출력하는 스트림  - 최상위 인터페이스 : InputStream, OutputStream  - 입/출력 할 수 있는 데이터 : 문자열, 이미지, 영상, 오디오, pdf 등 모든 데이터/파일 (단, 문자열이 깨질 가능성이 있고, 좁은 통로를 이용하다보니 속도가 상대적으로 느림)  * Stream(통로) 객체는 Java 프로그램이 종료가 되어도 연결에 사용된 외부 파일/프로그램과 지속적으로 연결되어져 있어 자동으로 사라지지 않는다!!! → 직접 닫아서 없애주는 close() 구문을 필수로 수행! #예제1 지정된 경로의 폴더에 파일 생성 + 내용 출력 (바이트 기반 스트..

BackEnd/Java 2024.08.12

[Java]입출력(IO)

1. 입출력(IO)이란? - Input과 Output의 약자 - 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것 - 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리할 공통적인 방법으로 스트림 이용 2. File 클래스 - java.io 패키지 - 파일/디렉토리(폴더)를 관리하는 클래스 (파일/디렉토리 존재 유무 관계 없음)  - 파일 생성, 제거, 이름, 크기, 마지막 수정일, 존재여부 등의 기능 제공  File 클래스 메서드 boolean mkdir() : 디렉토리 생성 boolean isFile() : 현재 File 객체가 관리하는게 파일이면 true  boolean mkdirs() : 경로상의 모..

BackEnd/Java 2024.08.12

[Java]예외처리(exception) 사용자 정의 예외

[Parent]package pkg4.dto;import java.io.IOException;public class Parent { // IOException을 던질 가능성이 있는 메서드 3개 public void method1() throws IOException{} public void method2() throws IOException{} public void method3() throws IOException{}} [Child] package pkg4.dto;import java.io.EOFException;import java.io.IOException;public class Child extends Parent { // 부모랑 예외 처리 구문이 같으면 문제 없음! //@Override ..

BackEnd/Java 2024.08.12

[Java]예외처리(Exception) throw와 throws 구분하기

1. throws란?  메서드 내부에서 던져진 예외를 호출부로 다시 던지는 예외 처리 구문 2.  throw란? 생성된 예외 객체를 던져 예외 발생! (예외 강제 발생) [throws를 사용하는 이유!!!] 1) 경고의 의미 -> 해당 메서드 기능을 활용하다보면 특정 예외가 발생할 수도 있으니 대비를 해라  2) 예외 처리를 한 곳에서 묶어 처리하기 위하여  -> 실질적으로 예외를 처리하는 try - catch 구문이사방에 흩어져 있을 경우 돌려 받는 최종 결과가 정상 결과인지, 예외 처리된 결과인지 구분하기 힘들어지는 경우가 발생 #예제1package pkg3.service;import java.io.BufferedReader;import java.io.IOException;import java.io...

BackEnd/Java 2024.08.12

[Java]예외처리(Exception) try~catch문 예제

#예제1package pkg2.service;import java.util.Scanner;public class TryCatchFinallyService {private Scanner sc = new Scanner(System.in); /** * finally 확인하기 */ public void test1() { try { System.out.println("1. 정상 수행 / 2. 예외 강제 발생 : "); int input = sc.nextInt(); if(input == 1) { System.out.println("예외 없이 정상 수행됨"); }else { throw new Exception("강제로 던져진 Exception"); } }catch(E..

BackEnd/Java 2024.08.12