728x90

웹 어플리케이션은 기본적으로 

1. 클라이언트(브라우저)로부터의 request

2. 서버에서 request 처리

3. 서버에서 처리 결과 response

4. 클라이언트(브라우저)가 받은 response의 데이터를 브라우징(사용자에게 보여주는 것)

 

4단계로 동작한다.

 

JSP는 그 자체로 정적인 HTML 코드에 자바코드를 넣어, 동적 웹페이지를 생성할 수 있는 도구이며, 따라서 이 과정에서 아주 유용한 언어이다.

 

 


JSP 내장 객체(기본 객체)

 

1) 입출력 관련 객체

 

◆ request = 요청 하나 당 하나가 생성된다. 클라이언트로부터 요청이 오면 요청 정보를 저장하기 위함. 요청이 오면 생성, 응답을 하면 바로 없어짐.

 

◆ response = 클라이언트에게 응답할 내용을 처리하는 객체. sendRedirect() 메서드로 페이지를 이동시키는 기능을 자주 사용한다.

 

◆ out = 처리 결과를 브라우저로 출력하기 위한 기본 출력 객체.

 

2) 서블릿 관련 객체

 

◆ page = JSP 페이지 자체를 의미 (Java class의 this. 와 같은 의미)

 

◆ config = JSP 페이지에서 사용하는 초기 파라미터를 저장하고 있는 객체

 

3) 외부 환경 정보를 제공하는 객체

 

◆ session

= 브라우저 하나당 하나가 생성되며 Session ID 값을 만들어 브라우저들을 식별함.

= 브라우저가 웹 서비스를 이용하는 동안 유지하고 있어야 하는 값을 저장(로그인 상태유지 등)

 

◆ application

= 웹 어플리케이션 하나당 하나씩 존재. 서비스가 종료될 때까지 하나씩 존재한다.

= 웹 어플리케이션 전체 영역에서 사용할 수 있는 파라미터를 저장하는 용도로 사용(초기화 파라미터, 서버정보 등 불러오기)

 

◆ pageContext

= JSP페이지 하나당 하나 생성. JSP 페이지에서 다른 기본 객체에 접근할 수 있는 메서드를 제공한다.

(흐름제어 가능(include, forward 메서드)

 

4) 예외 관련 객체

◆ exception = JSP 페이지에서 발생한 예외를 처리할 때 사용

(Page Directive 에서 isErrorPage = true 여야 사용 가능하다.)


JSP 기본 객체의 영역

 

1. Page 영역 = 하나의 JSP 페이지를 처리할 때 사용되는 영역 - pageContext.getAttribute("name")하고 forward로 secondPage로 보내면, 콘솔에는 속성값이 출력되지만 브라우저에는 출력되지 않음.

 

2. Request 영역 = 하나의 HTTP 요청을 처리할 때 사용 (처리하는 데 사용되는 모든 JSP 페이지 포함)

 

3. Session 영역 = 하나의 웹브라우저와 관련된 영역

 

4. Application 영역 = 하나의 웹 어플리케이션과 관련된 영역(모든 JSP 페이지, 모든 요청, 모든 브라우저 세션)

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
728x90

JSP (JavaServer Pages)

 

- HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.

 

JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

 

 

웹 서버가 사용자로부터 서블릿에 대한 요청을 받으면 서블릿 컨테이너에 그 요청을 넘김 -> 요청을 받은 컨테이너는 HTTP Request와 HTTP Response 객체를 만들어, 이들을 통해 서블릿 doPost()나 doGet() 메소드 중 하나를 호출한다.

만약 서블릿만 사용하여 사용자가 요청한 웹 페이지를 보여주려면 out 객체의 println 메소드를 사용하여 HTML 문서를 작성해야 하는데 이는 추가/수정을 어렵게 하고, 가독성도 떨어지기 때문에 JSP를 사용하여 비지니스 로직과 프레젠테이션 로직을 분리한다.

 

여기서 서블릿은 데이터의 입력, 수정 등에 대한 제어를 JSP에게 넘겨서 프레젠테이션 로직을 수행한 후 컨테이너에게 Response를 전달, 이렇게 만들어진 결과물은 사용자가 해당 페이지를 요청하면 컴파일이 되어 자바파일을 통해 .class 파일이 만들어지고, 두 로직이 결합되어 클래스화 되는 것을 확인 할 수 있다. 즉, out 객체의 println 메소드를 사용해서 구현해야하는 번거로움을 JSP가 대신 수행해준다.


cf) 기본 개념 Plus ++

 

◆ 웹(web)

웹이란 인터넷 기반의 정보기술로 World Wide Web 의 줄임말로 쓰이며 WWW 라고도 한다.

전세계에 거대한 네트워크 망을 통해 정보를 공유하며 정보의 흐름은 양방향성을 가진다.

 

웹어플리케이션(Web Application)

웹어플리케이션은 웹에서 실행되는 응용프로그램을 뜻하며 인터넷을 통한 은행업무, 인터넷쇼핑, 등등 인터넷에서 하는 여러 서비스를 총칭

하며 사용자가 필요한 요청(Request) 를 하고 서버에서는 이에 해당하는 요청을 수행하고 그리고 요청한 데이터를 응답(Response) 한다.

 

◆ 웹 브라우저(Web Browser)

 - 클라이언트에서 요청을 하고 전달받은 페이지를 볼수있는 환경을 말한다.  ( 크롬, IE, Safari, Firefox 등.. )

 

◆ 웹 서버(Web Server) 

- 클라이언트로 부터 요청받아 서버에 저장된 리소스를 클라이언트 에게 전달한다. 주로 정적컨텐츠롤 담당한다.

 

◆ 웹 어플리케이션 서버 ( Web Application Server )

- 줄여서 was 라고도 부르며 서버단에서 필요한 기능을 수행하고 그결과를 웹서버에게 전달한다.

 

◆ 데이터베이스

- 서비스에 필요한 데이터를 보관, 갱신 등 관리를 한다.

 


참고)

https://yn971106.tistory.com/23

 

https://javacpro.tistory.com/43

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP기본 개념 및 객체  (0) 2023.06.27
[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
728x90

자바의 특징

 

◆ 자바는 객체지향 언어이다.

 - 객체지향 프로그램(OOP, Object Oriented Programming)이란 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 것이다.

 

- 객체를 만들기 위해서는 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.

 

- 객체지향 언어의 특징인 캡슐화, 상속성, 다향성을 완벽하게 지원한다. 

 

◆ 이식성이 높다

- 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다.

 

- 자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.

 

◆ 인터프린터 언어이다.

- 컴파일 언어인 동시에 인터프리터 언어이다.

 

- 텍스트 소스를 컴파일 하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다.

 

- 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다.

 

◆ 메모리를 자동으로 관리한다.

- C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 성실하게 해주지 않는다면 프로그램은 불안전해지고 갑자기 다운되는 현상을 겪을수도 있다. (JAVA와 다른점)

 

- 자바는 개발자가 직접 메모리에 접근할 수 없으며 메모리는 자바가 직접 관리한다.

 

- 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

 

- 덕북에 개발자는 메모리 관리의 수고를 덜고, 핵심기능 코딩에 집중할 수 있다.

 

◆ 멀티 스레드 구현이 쉽다.

- 운영체제에 따라 멀티 스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

 

◆ 동적 로딩을 지원한다.

- 실행시에 모든 클래스가 로딩되는 것이 아니라 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점을 지닌다.

 

- 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 장성할 수 있다.

 

◆ 분산환경을 지원한다.

- 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어 있다.

 

- 또한 http 와 htp 프로토콜을 기본적으로 지원한다.

 

◆ 오픈소스 라이브러리가 풍부하다.

- 자바는 오픈소스(Open Source) 언어이고 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스의 양이 방대하다. 

 

- 고급 기능을 구현하는 코드를 작성하는 대신 검증된 오픈소스 라이브러리를 사용하면 애플리케이션을 다시 컴파일 할 필요가 없다.

 

- 따라서 유지보수를 쉽고 빠르게 진행 할 수 있다.

 

◆ 단점

- 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.

 

- 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.

 

- 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.

 

참고)

https://helloworld-88.tistory.com/3

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP기본 개념 및 객체  (0) 2023.06.27
[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
728x90

- JDBC란?

자바에서 데이터베이스를 사용하기 위한 절차에 대한 규약이며,

Java DataBase Connectivity의 약자로 JDBC는 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리이다.

 

JDBC는 DBMS에 종속되지 않는 관련 API를 제공한다.

JDBC API는 JDK에서 제공하며 JDBC 프로그래밍을 위해서는 JDBC드라이버가 필요하다.

JDBC 드라이버는 각 DBMS 회사에서 제공하는 라이브러리 압축파일이다.

MySQL 데이터베이스관리시스템을 사용하거나 만약 오라클을 사용한다면 오라클용 JDBC 드라이버가 필요하다.

 

- JDBC 클래스

JDBC는 다양한 클래스와 인터페이스로 구성된 패키지 java.sql 와 javax.sql로 구성

 

주요 클래스 및 인터페이스

  • DriveManager = JDBC 드라이버 로드
  •  Connect = DB와 연결하기 위한 인터페이스
  • Statement / PreparedStatement / CallableStatement (SQL을 보내기 위한 통로)
    • Statement = SQl을 보내기 위한 통로. 인자가 없음.  
    • PreparedStatement = Statement와 동일한데 차이점은 인자값으로 SQL을 받기 때문에 특정한 SQL에 대한 통로라고 생각하면 된다. 
    • CallableStatement = PL/SQL을 호출할 때 사용
  • ResultSet = SQL 문의 결과를 저장하는 객체

- 이클립스에서 JDBC 등록하기

java에서 데이터베이스를 사용하기 위해서는 드라이버를 설치해야 한다.

 

JDBC 드라이버(MySQL)

https://dev.mysql.com/downloads/connector/j/

 

1. jar 파일 준비하기

설치가 완료되면, mysql-connector-java-버전-bin.jar 파일이 생성된다.

여러 클래스들을 모아 놓은 파일을 jar 파일이라고 하는데, 이 파일이 있어야 MySQL을 사용할 수 있다.

 

2. 이클립스에서 jar파일 연동

  1. 이클립스에서 새로운 프로젝트를 생성
  2. 프로젝트 폴더를 우클릭 -> Properties -> Java Build Path 항목 클릭
  3. Libraries -> Add Library ... -> User Library  -> User Libraries 
  4. New 클릭하여 아무렇게 이름을 작성. ( 저는 JDBC라는 이름으로 생성. )
  5. 생성된 Library를 클릭하고 Add External JARs 클릭
  6. 처음에 설치한 jar 파일 mysql-connector-java-버전-bin.jar 파일을 찾아서 클릭

여기까지 진행했으면 JDBC를 사용할 준비가 된 상태이다.

 

3. JDBC 기본적인 사용

JDBC에서 인터페이스를 제공하기 때문에, 어떤 DB를 사용하든 개발자가 JDBC를 사용하는 방법은 변하지 않는다.

이것이 인터페이스의 가장 큰 장점이죠.

 

JDBC를 사용하는 방법

  1. import java.sql.*;
  2. 드라이버를 load
  3. mysql 연결을 위한 Connection 객체 생성
  4. Statement 객체를 생성하여 질의 수행
  5. 질의 결과가 있다면, ResultSet 객체를 생성하여 결과 저장
  6. 추가 로직 실행 후, JDBC 연결 과정에서 필요했던 객체들을 close

 

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
728x90

package ch01_variable_operator;

public class PrintMe {
    public static void main(String[] args) {
        String name ;
        int age ;

        double height ; // 큰 범주의 실수
        float weight ; // 큰 범주의 실수

        String blood = "AB" ; // 변수 선언하면서 값을 대입하기
        char munza ;
        boolean bool ; // 진위 값

        name = "홍길동" ;
        age = 27 ;
        height = 175.8 ;
        weight = 55.8f ; // float 타입은 f를 붙여 줘라.
        munza = 'Z' ;
        bool = false ;

        System.out.println("이름 : " + name);
        System.out.println("나이 : " + age);
        System.out.println("키 : " + height);
        System.out.println("혈액형 : " + blood);
        System.out.println("몸무게 : " + weight);
        System.out.println("글자 1개 : " + munza);
        System.out.println("진위 값 : " + bool);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class PlusMinus02 {
    public static void main(String[] args) {
        int x = 3, y = 5, z ;

        z = x++ + --y ;

        System.out.println("x : "+ x); //11
        System.out.println("y : "+ y); //21
        System.out.println("z : "+ z); //31

        z += --x + y++ ;

        System.out.println("x : "+ x);
        System.out.println("y : "+ y);
        System.out.println("z : "+ z);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
<Git>Operator01.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class PlusMinus01 {
    public static void main(String[] args) {
        int a = 10, b = 20, c ;

        c = ++a + b++ ;

        System.out.println("a : "+ a); //11
        System.out.println("b : "+ b); //21
        System.out.println("c : "+ c); //31

        c = a++ + --b ;

        System.out.println("a : "+ a);
        System.out.println("b : "+ b);
        System.out.println("c : "+ c);

        a = 15 ;
        b = 12 ;
        c = --a + --b ;

        System.out.println("a : "+ a);
        System.out.println("b : "+ b);
        System.out.println("c : "+ c);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
<Git>Operator01.java  (0) 2023.02.04
<Git> Increment01.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class OperatorEx {
    public static void main(String[] args) {
        int a = 3 - -2, b = 3 ;
        int x = (a >= b) ? 5 : (a+2);

        x += ++a ;
        int y = ++a ;
        y += a + --b ;

        char ch3 = 'D' ;
        int z = ch3 >= 'A' && ch3 <= 'Z' ? --y : x + 2 ;

        int result = 0 ;
        result = x > y ? z - y : x + z ;
        System.out.println("result : " + result);
    }
}

 

 

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git>PlusMinus02.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
<Git>Operator01.java  (0) 2023.02.04
<Git> Increment01.java  (0) 2023.02.04
<Git>MyPrint.java  (0) 2023.02.04

+ Recent posts

728x90
반응형
728x90
반응형