액션태그 액션태그는 하나의 jsp 페이지에서 다른 jsp 페이지로 요청 처리를 전달할 때 사용됩니다. 와 include 디렉티브와는 다음과 같은 차이점이 있습니다. ● 를 통해 요청 처리를 전달받은 페이지가 응답 결과를 웹 브라우저에게 요청을 합니다. ● 요청 처리를 전달받은 페이지는 요청 전달을 했던 페이지의 기본 객체를 그대로 사용합니다. 액션 태그는 간결하고 구조적인 프로그래밍을 위해 사용이 되며 다양한 조건에 따른 처리를 해야 하는 경우 액션 태그를 사용하여 각 조건을 처리하는 jsp를 분리하여 기능별로 모듈화가 가능합니다. 액션 태그의 기본 문법은 다음과 같습니다. 실제 조건에 따라서 처리를 할 수 있는 jsp 페이지를 모듈화하고 조건에 따라 를 통해 요청 처리를 전달해보는 예제를 살펴보겠습니다..
추상 메서드와 추상클래스(Abstract Class) 추상 메서드는 선언부는 있지만 구현부가 없는 메서드를 의미합니다. 상위 클래스의 참조 객체 변수를 통해 하위 클래스에 각각 다른 내용을 적용 시키고 싶을 떄 사용합니다. ● 추상 메서드를 가지는 클래스는 추상 클래스로 선언되어야 한다. ● 추상 클래스를 상속받는 하위 클래스는 반드시 추상 메서드를 구현한다. ● 추상 클래스는 인스턴스(객체)를 생성 할 수 없다. new 사용을 못한다. 간단하게 예제를 통해서 추상 클래스의 필요성을 살펴 보겠습니다. Colored By Color Scripter™ 1 2 3 4 5 6 public abstract class Person { abstract void Introduce(); } Person 추상 클래스입니다..
다형성 객체 지향 언어에서 다형성이란 하나의 클래스나 메서드가 다양한 방식으로 동작이 가능 한 것을 의미합니다. 이러하 다형성에는 오버로딩과 오버라이딩이 존재합니다. 오버라이딩 오버라이딩이란 상위 클래스를 상속받는 하위 클래스가 상위 클래스의 메서드를 사용하지 않고 하위 클래스에서 재정의하여 사용하는 것을 의미합니다. 보통 재사용의 의미로 하위 클래스에서 상위 클래스의 내용을 사용하는 게 일반적이지만 필요에 따라서 하위 클래스에서 상위 클래스의 메서드 내용을 재정의 하여 사용하는 것을 의미합니다. 아래는 간단한 오버라이딩의 예를 보여줍니다. Colored By Color Scripter™ 1 2 3 4 5 6 7 8 9 public class B { public void show() { System.ou..
액션 태그 보통 하나의 웹 사이트를 구성하는 페이지들은 동일한 상단, 좌측 메뉴, 하단을 구성 합니다. 그래서 만약 모든 웹 페이지마다 이런 공통 요소들에 대해서 코드를 작성하게 되면 코드 중복이 발생하게 됩니다. 게다가 이러한 공통 요소에 수정 사항이 발새하게되면 모든 페이지마다 수정 사항을 고쳐야 합니다. 이러한 코드 중복을 해결 할 수 있는게 바로 태그입니다. 가 위치하는 곳에 지정한 페이지를 포함 시킬 수 있습니다. 사용법은 다음과 같습니다. [ ] page 속성에는 포함할 페이지의 경로가 오게 되고 flush는 지정한 페이지를 실행 하기 전에 버퍼의 내용을 플러시할지 여부를 지정하는 것 입니다. 태그를 통해서는 지정한 페이지에 파라미터 값을 넘겨 줄 수 있습 니다. name 속성은 고유의 이름으..
상속 객체 지향 언어에서 상속이란 상위 클래스에 존재하는 멤버를 하위 클래스로 그대로 물려 받는 것을 의미합니다. 물려 받는다는 개념보다는 재사용 + 확장의 의미로 생각하는게 더 편할 수 있습니다. 상속은 다음과 같은 특징을 가집니다. ●하위 클래스에서 상위 클래스를 상속받고자 한다면 클래스 정의 후 extends 사용 ●하위 클래스는 여러 개의 상위 클래스를 상속 받을 수 없음 (다중 상속 허용 X) ●하위 클래스는 상위 클래스의 내용을 재사용이 가능하고 내용을 확장 시킬 수있음 ●상위 클래스는 여러개의 하위 클래스를 가질 수 있음 ●상위 클래스와 하위 클래스에 같은 이름의 멤버 변수나 메서드가 존재 할 경우 상위 클래스의 내용은 감춰 짐 실제 예제를 통해서 구체적으로 살펴 보겠습니다. 예제 코드 1 ..
UPDATE Update문을 실행하여 테이블에 존재하는 레코드의 내용을 변경해 보겠습니다. 현재 테이블에 데이터가 들어 간 상태입니다. ID가 git인 3번 째 레코드의 닉네임을 'git닉네임'으로 변경 해보겠습니다. 먼저 변경 페이지 요청을 위한 updateform.jsp를 작성해 보겠습니다. 123456789101112131415161718192021222324252627닉네임을 바꾸는 Form ID 바꿀 닉네임 : Colored by Color Scriptercs 메서드 방식은 post 방식을 사용하면서 update.jsp에 처리 요청을 합니다. 쿼리 전성 버튼을 클릭합니다. 실제 쿼리문을 실행하여 처리하는 페이지인 update.jsp를 살펴 보겠습니다. 123456789101112131415161..
추상화와 메모리 이번에는 추상화를 통한 클래스 모델링을 하고 클래스의 인스턴스가 생기는 과정에 대해 메모리에는 어떤 식으로 할당이 되는지에 대해서 알아 보겠습니다. '새'라는 클래스를 모델링 해보겠습니다. 추상화를 통해 내가 관심 있는 역역에 대해서만 '속성'과 '기능'을 가져와 보겠습니다. Bird Class 속성 - 이름, 날개의 개수 기능 - 날다 실제 코드로 정의하게 되면 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 public class Bird { public String name; public int countofwing; public void fly() { System.out.println("날다"); } } 실제 테스트를 위한 main을 포함하는 클래스도 구현 하겠습..
추상화 추상화란 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합 하는 것으로 객체 모델링 이라고 합니다. 이 말을 이해하려면 일단 클래스와 객체의 의미를 명확하게 정의해 보겠습니다. ● 객체는 유일무이한 사물로써 속성과 기능을 가짐 ● 클래스는 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념 김연아, 원빈은 어떠한 속성과 기능을 가지는 객체에 해당이 되고 김연아, 원빈을 총칭하는 개념으로 '사람'이라는 클래스라고 볼 수 있습니다. 다시 모델링이라는 개념을 보도록 하겠습니다. 모델링을 한다는 것은 보통 클래스를 설계를 한다는 것과 같은 의미입니다. 예를 들어 '사람'이라는 클래스를 설계한다고 가정해보겠습니다. 사람의 속성 : 키,몸무게,성별,머리길이,다리길이 ...... 사람의 기능 :..
Table 생성 MySQL Workbench를 실행 해줍니다. 먼저 database를 생성합니다. -Create database [database 이름] 쿼리 실행은 상단의 번개 표시를 클릭하면 됩니다. 다음으로 데이터베이스를 생성 하였다면 사용 할 데이터베이스를 지정 해야 합니다. -use [database 이름] 조금 전에 만들었던 데이터베이스를 사용 데이터베이스로 지정합니다. 데이터베이스가 생성 되었으니 이제 user database 안에 table을 만들어 줄 차례입니다. - create table [table 이름] (colum1 이름 colum1 type 제약조건, ...... ) VARCHAR Type의 Colum 5개를 가지는 Member Table이 생성이 됩니다. ● NOT NULL -..
이클립스 프로젝트 생성 이제 이클립스에서 JSP 웹 프로그래밍 작업 환경을 구축합니다. 본 게시글은 tomcat이 설치가 되어있다고 가정을 하고 진행 하겠습니다. 이클립스를 실행하고 작업공간을 지정 한 뒤 File -> New -> Dynamic Web Project 클릭하고 프로젝트를 하나 생성합니다. 서버 실행 환경 추가하기 먼저 개발과정에서 사용 할 서버를 설정합니다. [Window] -> [Preferences] 항목을 선택하면 설정창이 뜹니다. 왼쪽 트리 메뉴에서 [Server] -> [Runtime Environments]를 클릭하면 서버 실행 환경을 추가/삭제 할 수 있는 설정 창이 보이게 됩니다. Add.. 클릭해주세요. 설치 되어 있는 tomcat 버전에 맞는 항목을 클릭하고 Finish..
getter/setter 메서드 구현 자바의 특성 중 정보 은닉(Information Hiding)의 특성을 고려한 방식입니다. 클래스의 멤버 변수를 private형으로 구현을 하고 이 멤버 변수에 대한 read/write는 각각 getter/setter 메서드를 통해 처리하도록 구현을 합니다. 사람의 정보를 저장하는 Member Class가 존재한다고 가정해 보겠습니다. Member Class의 멤버 변수로는 ● 나이 ( private int age) ● 이름 ( private String name) ● E-mail ( private String email) 그리고 Class의 멤버 변수 각각에 해당 하는 getter/setter 메서드 ● public int getage() , public void ..
MySql 설치 먼저 프로그래밍에 앞서 MySql Server를 설치 해줘야 합니다. http://dev.mysql.com/downloads/mysql 위의 주소로 들어가주세요. 그림에 표시 된 Go to Download Page > 클릭합니다. 두 개 중에서 용량이 더 큰 .msi 파일의 Download 클릭해 줍니다. 아래에 No thanks, just start my download. 클릭합니다. 다운로드가 시작되고 완료가 되면 실행 시켜주세요 아래에 있는 I accept the license terms 체크해주고 NEXT를 클릭합니다. Custom 항목을 체크해주시고 Next 클릭합니다. 다음 항목을 추가해줍니다. 운영체제 64bit 기준입니다. ● MySQL Servers/MySQL Server..
프로그램이 메모리를 활용하는방법 객체 지향 프로그램에서 메모리 사용하는 방식에 대해 알아보겠습니다. 프로그램이 실행 되면 메모리는 코드 실행 영역과 데이터 저장 영역으로 분할이 됩니다. 여기서 데이터 영역은 다시 Static 영역, Stack 영역, Heap 영역으로 분할이 됩니다. 여기에서 집중적으로 볼 것은 데이터 영역입니다. ● Static 영역 - 프로그램에서 사용되는 패키지 및 클래스 ● Stack 영역 - main() 메서드를 포함 한 메서드들 및 블록구문 ● Heap 영역 - 객체 기본적으로 프로그램이 실행이 되면 모든 자바 프로그램이 공통적으로 가지는 java.lang 패키지와 사용자가 import 한 패키지 그리고 main 메소드를 포함하고 있는 class가 Static영역에 할당됩니다...