728x90

index.jsp

  • a태그의 href를 통해서 게시판 목록의 가상 주소를 서버에 보낸다.

BoardController.java

  • BoardDAO 클래스의 boardSelectAll() 메서드를 이용해 ArrayList <BoardVO> alist 객체를 생성한다.
  • RequestDispatcher 클래스의 rd 객체를 생성하고 forward 방식으로 보낸다.

BoardVO.java

  • oracle sql의 데이터를 담을 때 사용할 클래스
  • private 멤버변수와 setter, getter 메서드만 존재한다.

BoardDAO.java

  • 여러 쿼리 실행 함수를 만들어 둔 클래스
  • oracle 데이터베이스의 a_board 테이블에서 쿼리문으로 데이터를 가져와 BoardVO 객체에 담고, 이를 ArrayList 객체에 담아서 반환하는 함수를 생성했다.

boardList.jsp

  • for 문을 사용해 ArrayList<BoardVO> alist의 값을 표로 출력한다.
728x90

'노트' 카테고리의 다른 글

4월 27일 JSP 게시판 글 수정하기  (0) 2022.04.27
4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
4월 21일 web.xml, 컬렉션 프레임워크  (0) 2022.04.21
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
728x90

Web.xml

  • 자바 웹 애플리케이션은 배포 설명자 파일을 사용하여 URL이 서블릿에 매핑되는 방법, 인증이 필요한 URL, 기타 정보를 확인하는데 이 파일의 이름이 Web.xml이다.
  • 이클립스의 WEB-INF 디렉터리에 위치하고 있다.
  • 애플리케이션의 클래스, 리솟, 구성을 기술하고, 웹 서버가 이를 사용해서 웹 요청을 처리하는 방법을 기술한다.
  • 웹 서버가 애플리케이션에 대한 요청을 수신하면 배포 설명자를 사용해서 해당 요청을 처리해야 하는 코드로 요청의 URL을 매핑한다.

모든 URL 경로(/*.do)를 서블릿 클래스 jspstudy.controller.FrontController에 매핑한다.

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>FrontController</servlet-name>
        <servlet-class>jspstudy.controller.FrontController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FrontController</servlet-name>
        <url-pattern>/*.do</url-pattern>
    </servlet-mapping>
</web-app>

 

 

JAVA 컬렉션 프레임워크(Collection framework)

  • 자바에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하는데 이를 컬렉션 프레임워크라고 한다.
  • 자바 컬렉션 프레임워크에는 여러 인터페이스가 정의되어 있고 그 인터페이스를 구현한 클래스가 있다.
  • 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다
  • Collection인터페이스는 하나의 자료를 모아서 관리하는 데 필요한 기능을 제공
  • Map 인터페이스는 쌍으로 된 자료들을 관리하는데 유용한 기능을 제공한다. (key값과 value)

Collection 인터페이스

  • 하위에 List 인터페이스와 Set 인터페이스를 가지고 있다.
  • List의 경우 순차적인 자료를 관리하는데 사용하고 Set은 중복되지 않은 객체를 다루는 데 사용한다.
  • 자주 사용하는 메서드

- boolean add(E e) 객체를 추가한다.

- void clear() 모든 객체를 제거한다.

- boolean remove(Object o)  매개변수에 해당하는 인스턴스가 존재하면 제거한다.

- Iterator <E> iterator 순환할 반복자(iterator)를 반환한다.

- int size() 요소의 개수를 반환한다. 

 

Map 인터페이스

  • Key - Value 쌍이라고 표현하는 자료들을 관리하는 메서드들이 선언되어 있다.
  • 키값은 중복될 수 없다.
  • 기본적으로 검색용 자료구조이다. 주로 key값을 알고 있을 때 value값을 찾기 위해 사용한다.
  • 자주 사용하는 메서드

- V put(K key, V value) key에 해당하는 value값을 map에 넣는다.

- V get(K key) key에 해당하는 value값을 반환

- boolean isEmpty() map이 비어있는지 여부를 반환

- boolean containsKey(Object key) map에 해당 key가 있는지 여부를 반환

- boolean containsValue(Object value) map에 해당 value가 있는지 여부를 반환

- Set keyset() key집합을 Set으로 반환

- Collection values() value를 Collection으로 반환

- V remove(key) key가 있는 경우 삭제

- boolean remove(Object key, Object value) key가 있는 경우 key에 해당하는 value가 매개변수와 일치할 때 삭제

728x90

'노트' 카테고리의 다른 글

4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
4월 25일 jsp 게시판 글 목록 보이기  (0) 2022.04.25
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
4월 15일 JSP  (0) 2022.04.15
728x90

oracle SQL

답변형 게시판 만들기

- 답변형 게시판을 만들기 위해서 인덱스 비교를 위한 컬럼을 추가하고

인덱스 비교하는 컬럼에 정렬을 적용시키면 된다.

- 정렬을 어떻게 시키느냐에 따라 답변의 순서가 바뀐다.

- 글로 작성하니 직관적이지 못한데 답변형 게시판을 만드는 것에 특별한 예약어라든지 

기술이 필요하지 않아서 그런듯하다.

중요한 것은 게시글 인덱스와 비교인덱스 컬럼을 잘 활용하는 것과 정렬의 방법이다. 

 


JAVA

추상클래스

  • 항상 추상 메서드를 포함한다.
  • 선언하는 예약어는 abstract
  • 추상 메서드는 몸체를 쓰지 않고 선언할 수 있다.
  • ex)
abstract int add(int x, int y);
  • 추상클래스에서 추상메서드를 생성해두는 이유는 공통된 이름의 메서드지만 하위 클래스마다 다르게 구현하기 이해서이다.
  • 추상클래스의 경우 new 예약어로 인스턴스를 생성할 수 없다.

 

템플릿메서드

  • 역할은 메서드 실행 순서와 시나리오를 정의 
  • final 예약어를 사용해 선언한다.

- 로직 흐름을 정의한 메서드이며 메서드 내부에서 일반 메서드와 구현되지 않은 추상 메서드를 호출한다. 흐름이 변하지 않도록 하위 클래스에서 재정하지 못하게 final로 선언한다.

728x90

'노트' 카테고리의 다른 글

4월 21일 web.xml, 컬렉션 프레임워크  (0) 2022.04.21
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
4월 15일 JSP  (0) 2022.04.15
4월 11일 oracle SQL, JAVA  (0) 2022.04.11
728x90

oracle SQL

CONCAT() 함수

-- 문법
CONCAT('합칠 문자열','합칠 문자열')

TO_CHAR() 함수로 소수점 표현하기

TO_CHAR(소수점 숫자열, 'FM9990.0')
-- ex) TO_CHAR(123.4444,'FM990.0) -> 123.4로 표시
-- FM 뒤의 9는 숫자가 있을경우 숫자를 표시하고 없으면 표시하지 않는다.
-- 0은 없을 경우 0을 출력한다.

SEQUENCE 만들기

-- 시퀀스는 숫자를 사용할때마다 자동으로 일정 숫자를 더해준다.
-- 회원번호와 같이 중복없이 숫자가 하나씩 커지는 컬럼에 이용하면 편리하다.

-- 문법
CREATE SEQUENCE 시퀀스 이름 INCREMENT BY 증가시킬 수 START WITH 시작숫자
EX)
-- CREATE SEQUENCE MIDX_SEQ INCREMENT BY 1 START WITH 1;

-- DROP SEQUENCE 시퀀스 이름 (시퀀스 삭제)

 


JAVA

자바의 특징 

  • 객체지향
  • 상속
  • 다형성
  • 추상화
  • 캡슐화(데이터 은닉)

다운캐스팅(down casting)

- 상위 클래스로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환하는 것을 다운캐스팅이라 한다.

- 다운캐스팅을 하기 전에 상위 클래스로 형 변환된 인스턴스의 원래 자료형을 확인해야 변환할 때 오류를

막을 수 있다. 이때 사용하는 예약어가 'instancof'이다.

// 사용법 ex)
Animal hAnimal = new Human();
if(hAnimal instanceof Human){
	Human hunam = (Human)hAnimal;
    }

instanceof 왼쪽에 있는 변수의 원래 인스턴스형이 오른쪽 클래스 자료형인가 확인한다.

728x90

'노트' 카테고리의 다른 글

4월 21일 web.xml, 컬렉션 프레임워크  (0) 2022.04.21
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
4월 15일 JSP  (0) 2022.04.15
4월 12일 oracle SQL, JAVA  (0) 2022.04.12
728x90

백준 1008 A/B

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int b = scan.nextInt();
        double c = (double)a/b;
        System.out.println(c);
    }
}

int로 a와 b의 값을 저장했기 때문에
출력을 그대로 하면 소수점이 출력되지 않는다.
따라서 double타입의 변수 c를 생성하고 a/b의 타입을 강제 변환시켜 저장한 후 출력했다.

728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

프로그래머스 같은 숫자는 싫어 자바풀이  (1) 2022.09.23
프로그래머스 K번째 수 Java풀이  (0) 2022.09.14
백준 10998 자바  (0) 2022.03.11
백준 1001 자바  (0) 2022.03.11
백준 1000 자바  (0) 2022.03.11
728x90

백준 10998 A*B

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        System.out.println(a*b);
    }
}

System.in.read() 보다 편한 라이브러리를 찾았다.
Scanner를 사용하면 system in read가 아스키코드를 반환하는 것과 달리
입력한 값을 그대로 받아오고 입력받은 값은 공백을 기준으로 끊어서 가져올 수 있다.

728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

프로그래머스 K번째 수 Java풀이  (0) 2022.09.14
백준 1008 자바  (0) 2022.03.11
백준 1001 자바  (0) 2022.03.11
백준 1000 자바  (0) 2022.03.11
백준 10172 자바  (0) 2022.03.11
728x90

백준 1001 A-B

import java.io.*;
public class Main {
    
    public static void main(String[] args) throws IOException {
        int a = System.in.read();
        System.in.read();
        int b = System.in.read();
        
        System.out.println(a-b);
    }
}

 

728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

백준 1008 자바  (0) 2022.03.11
백준 10998 자바  (0) 2022.03.11
백준 1000 자바  (0) 2022.03.11
백준 10172 자바  (0) 2022.03.11
백준 10171 자바  (0) 2022.03.11
728x90

백준 1000 A+B

import java.io.*;

public class Main{
        public static void main(String[] args) throws IOException {
        int a = System.in.read();
        System.in.read();
        int b = System.in.read();
        System.out.println(a+b-96);
    }
}

System.in.read()는 입력받은 값의 아스키 값을 반환한다.
때문에 결괏값을 도출할 때 - 96을 해주었다.

728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

백준 10998 자바  (0) 2022.03.11
백준 1001 자바  (0) 2022.03.11
백준 10172 자바  (0) 2022.03.11
백준 10171 자바  (0) 2022.03.11
백준 10718 자바  (0) 2022.03.11
728x90

백준 10172 개

public class Main {
    
    public static void main(String[] args) {
        System.out.println("|\\_/|");
        System.out.println("|q p|   /}");
        System.out.println("( 0 )\"\"\"\\");
        System.out.println("|\"^\"`    |");
        System.out.println("||_/=\\\\__|");
    }
}

 

728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

백준 1001 자바  (0) 2022.03.11
백준 1000 자바  (0) 2022.03.11
백준 10171 자바  (0) 2022.03.11
백준 10718 자바  (0) 2022.03.11
백준 2557 자바  (0) 2022.03.11
728x90

백준 10171 고양이

public class Main {
    
    public static void main(String[] args) {
        System.out.println("\\    /\\");
        System.out.println(" )  ( ')");
        System.out.println("(  /  )");
        System.out.println(" \\(__)|");
    }
}
728x90

'Algorithm > Java 풀이' 카테고리의 다른 글

백준 1001 자바  (0) 2022.03.11
백준 1000 자바  (0) 2022.03.11
백준 10172 자바  (0) 2022.03.11
백준 10718 자바  (0) 2022.03.11
백준 2557 자바  (0) 2022.03.11

+ Recent posts