본문 바로가기
728x90

전체 글188

HTTP 에러 코드 : 404 405 500 HTTP 에러 코드 404 : URL상의 경로명이나 파일명이 제대로 입력되었는지 확인 405 : doGet(), doPost() 메서드가 적절히 오버라이딩 되었는지 확인 500 : 개발 중인 코드를 전반적으로 확인하여 오류를 처리 에러별로 출력할 페이지를 설정하려면 web.xml에 추가해야한다. 404 /temp/Exception.jsp 2023. 3. 17.
커넥션 풀 커넥션 풀 커넥션 객체를 미리 생성해 풀에 넣어놓고, 요청이 있을 때 이미 생성된 커넥션 객체를 가져다 사용하는 기법 대부분 WAS는 커넥션 풀을 비롯한 여러 자원을 JNDI 서비스로 제공한다. JNDI(Java Naming and Directory Interface) WAS의 JNDI를 통해 커넥션 풀을 사용하는 절차 WAS가 시작할 때 server.xml과 context.xml에 설정한 대로 커넥션 풀을 생성한다. JSP 코드에서 JNDI 서버로부터 데이터소스 객체를 얻어온다. 데이터소스로부터 커넥션 객체를 가져온다. DB작업을 수행한다. 모든 작업이 끝나면 커넥션 객체를 풀로 반환한다. server.xml --계정 패스워드 context.xml 커넥션 풀 이용 import java.sql.Conne.. 2023. 3. 17.
JSP 파일 업로드 JSP에서 파일 업로드를 위해서는 COS라이브러리가 필요하다. COS라이브러리의 Multipart Request클래스를 사용한다. 순서 데이터베이스 구축하기 업로드 양식 페이지 작성하기 데이터베이스 연동 클래스 작성하기 업로드 처리 페이지 작성하기 파일 다운로드 페이지 작성하기 보안 코딩 적용하기 파일 업로드 심화 과정은 다음과 같습니다 파일을 다운로드 한 횟수 저장하기 다중 파일 업로드 구현하기 데이터베이스 구축하기 파일 업로드에서 반드시 구현되어야 할 정보 서버에 저장된 실제 파일의 이름 사용자가 지정한 파일의 이름 구현하는 방법은 두 가지 게시판, 프로필 등의 테이블에 파일 관련 속성을 삽입하기 따로 파일 관련 테이블을 생성하기 실습용 데이터베이스 생성 CREATE DATABASE FILE; USE.. 2023. 3. 17.
JSP 자바 빈즈(Beans) JSP는 HTML내에 JAVA코드를 넣어 동적인 페이지를 생성하는 스크립트 언어이다. JSP 자바 빈즈는 JSP의 표준 액션 태그로 접근할 수 있는 자바 클래스로서 값을 가지는 속성(멤버변수)와 값을 설정하는 메소드(setter), 값을 추출하는 메소드(getter)로 이루어져있다. JSP 자바빈즈 개발 규약 패키지화 JSP 페이지에서 자바빈즈를 사용할 때 기본 패키지에 있으면 인식이 안된다. 반드시 패키지화 되어 있어야 한다 기본 생성자 존재 자바빈즈의 객체 생성은 jsp:useBean 액션 태그로 생성하는데, 객체가 생성될 때 기본 생성자를 이용하기 때문에 반드시 기본 생성자가 있어야 한다. 멤버변수의 접근자는 private으로 선언 자바빈즈 객체의 속성 값은 외부에서 직접 접근할 수 없도록 priv.. 2023. 3. 17.
인터페이스 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 사용함. 인터페이스는 interface키워드를 통해 선언할 수 있으며, implements키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. JAVA8 이전까지는 상수, 추상메소드만 선언이 가능했지만 (그만큼 강제성이 강했다) JAVA8부터는 디폴트메소드, 정적 메소드가 추가되었다. public interface 인터페이스명 { //상수 타입 상수명 = 값; //추상메소드 타입메소드명(매개변수,...); //디폴트메소드 default 타입 메소드명(매개변수,....){ // 구현부 } //정적메소드 static 타입 메소드명(매개변수) { //구현.. 2023. 3. 14.
업캐스팅과 다운캐스팅 형 변환(업캐스팅) 상위 클래스로 변수를 선언하고 하위 클래스의 생성자로 인스턴스를 생성 상속 관계에서 모든 하위 클래스는 상위 클래스로 형 변환(업캐스팅)이 됨 (그 역은 성립하지 않음) 형 변환과 메모리 Customer vc = new VIPCustomer(); VIPCustomer()생성자에 의해 VIPCustomer클래스의 모든 멤버 변수에 대한 메모리는 생성되었지만, 변수의 타입이 Customer이므로 실제 접근 가능한 변수나 메서드는 Customer의 변수와 메서드이다. 다운캐스팅 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하위 클래스로의 형 변환은 명시적으로 해야 함 if ( customerE instanceof GoldCustomer ) { GoldCustomer vc = (Gold.. 2023. 3. 14.
상속 클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를구현해야 할 때 기존 클래스를 상속 class B extends A { } extends키워드 뒤에는 단 하나의 클래스만 올 수 있다! 자바는 단일 상속(single inheritance) 만을 지원함 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미 사람 < 포유류 class Mammal{ } class Human extends Mammal{ } super 키워드 하위클래스에서 가지.. 2023. 3. 14.
배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법 배열이란? 동일한 자료형(데이터 타입)의 순차적 자료 구조 인덱스 연산자[]를 이용하여 빠른 참조가 가능 물리적 위치와 논리적 위치가 동일 배열의 순서는 0부터 시작 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함. int [] arr1 = new int[10]; int arr2 [] = new int[10]; 배열의 길이와 요소의 개수는 동일하지 않습니다. 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이터)가 없는 경우도 있음 length속성은 배열의 개수를 반환해주기 때문에 요소의 개수와 다를 수 있다. 동일하지 않을 경우 요소의 개수에 대한 count변수를 따로 넣어야한다. 향상된 for문 사용하기 / for(변수:배열){} public class CharArrayTes.. 2023. 3. 14.
디자인 패턴 1. 싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있음 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용 주로 서로 자원을 공유할 때 사용, 실물 세계에서는 프린터가 해당 (여러 대의 pc가 하나의 복사기를 사용하는 경우) 실제 프로그래밍에서는 tcp socket 통신에서 서버와 연결된 connect 객체에 주로 사용 (socket 하나로 多연결) 기본 생성자를 private로 막고 getInstance()를 제공 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private으로 선언 외부에서 Company를 만들지 못하도록 함 private Company() {} 클래스 내.. 2023. 3. 14.
여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 회사에 사원이 입사할때마다 새로운 사번이 필요한 경우 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스변수, 정적 변수라고도 함 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 ex) Student.serialNum = 100; static 변수 테스트하기 public class Employee { private static int serialNum = 1000; private int .. 2023. 3. 14.
728x90