전체 글 46

[ORACLE/SQL] 테이블 관련 문제 정리

1. STUDENT 테이블을 조회하여 이름, 주민번호, 부서번호 1, 성별 몸무게와 부서번호1과 성별로 몸무게가 많은 순으로 누적 몸무게를 구하세요.(단, 성별은 주민번호에서 7번째 자리가 1이면 'M'이고, 2이면 'F'이다.) 문제 풀이 case when 사용해서 조건식 sum over 함수로 누적합계를 구한 뒤 부서번호 올림차순, 몸무게 내림차순으로 order by 하면 된다 실행 결과 2. EMP2 테이블을 조회하여 사원명, 전화번호, 급여, 지역별 급여 합계를 구하고 각 사원의 급여가 해당 지역별 급여 합계에서 차지하는 비율을 출력하세요 문제풀이 실행결과 3. PROFESSOR 테이블에서 PROFNO, NAME, EMAIL 컬럼만 가져와서 아래 그림과 같이 PROFESSOR3 테이블을 생성하는 ..

개발/OracleDB 2021.04.06

[JSP]DB커넥션 풀(DBCP)

DBCP란? 커넥션 풀 사용 하기 전에는 db를 엑세스 하기 위해서는 DBconnection한 뒤 사용 한 후 close를 통해 사용을 종료하는 방법을 반복해서 사용해야하는 불편함이 있었다. 간단한 프로그램이면 모르지만 db에 많은 접근이 필요한 프로그램의 경우 이런 반복된 사용은 결국에는 프로그램의 부하로 작용하게 된다. Connection pool은 이러한 불편함을 해소하기 위해 connection을 일정 개수 미리 만들어 두고, 웹서버가 db에 접근이 필요할 때마다 하나씩 빌리고 반납하는 방식으로 처리하여 위 문제를 해결한다. Connection pool 연결테스트 우선 연결 하기 위해서는 tomcat의 server.xml 파일에 아래의 코드를 집어 넣어야 합니다. 최대 100명의 인원을 수용 할수..

개발/JSP 2021.04.05

[JSP/JDBC]Oracle과 이클립스 JSP 연동/ 테이블 조회

우선 jar파일을 jsp파일에 옮겨줘야 합니다. 직접 파일에 넣어준뒤 web.xml에 코드를 추가해 연결하는 방법이 있고 jdk - lib파일에 복사해 넣어주는 방법이 있습니다. 우선 jar 파일을 복사해줍니다. 파일의 위치는 제각각 다르지만 저의 위치는 C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib 입니다. 이렇게 jsp 파일의 WEB-INF lib폴더에 넣어줍니다. 그 다음 테스트 코드를 작성합니다. Connection 클래스를 이용해서 연결을 확인합니다. 이 코드를 실행 하면 연결이 성공했다는 메세지가 뜨면 연결이 성공한 것입니다. 다음은 테이블을 만들고 직접 연동해보겠습니다. 테이블을 만들어주고 3개의 값을 넣어줬습니다. 그리고 commit을 통해..

개발/JSP 2021.04.03

[JSP] 액션 태그를 활용하여 사각형 면적 구하기

오늘은 액션 태그를 사용해서 사각형의 면적을 구하는 프로그램을 만들어 보겠습니다. 우선 html로 가로와 세로를 입력받게 만들어 줍니다. 가로와 세로를 input태그를 통해 숫자를 입력 받습니다. 전송 버튼을 누르면 retangleFrom.jsp로 이동하게 만들어줍니다. 그 다음 area 패키지에 rectangle 클래스를 만들어줍니다. 변수 width와 height가 있고 getter, setter를 만들어줍니다. (액션태그를 통해 값을 불러오려면 필요함) 그다음 process 메서드를 통해 가로 * 세로 연산을 만들어 놓습니다. rectangleFrom.jsp 파일을 만들어 준 뒤, 액션 태그를 활용해 area패키지의 Rectangle클래스를 사용하기 위한 useBean 액션태그와 setPropert..

개발/JSP 2021.03.26

[JSP] session의 사용

session이란? cookie와 마찬가지로 클라이언트가 서버에 접속하여 생성된 연결을 유지시켜주는 역할을 합니다. 흔히 우리가 어느 홈페이지에 접속하여 로그인을 하고 장시간 사용안한 채 두면 "세션이 만료되었습니다." 라고 알려주면서 자동으로 로그아웃이 되는것을 자주 봤을겁니다. 그게 바로 세션의 역할 입니다. 클라이언트에게 서버와의 유지시간을 제한을 주고 클라이언트가 서버유지를 하겠다고 추가적으로 요청하지 않으면 정해진시간이 흐른뒤 자동으로 접속을 끊어버리는 역할을 합니다. cookie는 아래↓↓↓ 2021.03.23 - [개발/JSP] - [JSP] COOKIE 생성, 조회, 삭제 [JSP] COOKIE 생성, 조회, 삭제 cookie란? 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청 할 ..

개발/JSP 2021.03.24

[JSP] COOKIE 생성, 조회, 삭제

cookie란? 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청 할 때 쿠키를 헤더에 담아서 전송해준다. 쿠키 하나당 최대 4KB의 크기이고 최대 300개 까지 저장이 가능하다.(총 1.2M) 동작방식 1. 웹 서버에서 쿠키를 생성하고, 웹 브라우저에 전송한다. 2. 웹 브라우저는 쿠키를 메모리나 파일로 저장한다. 3. 저장된 쿠키를 웹 서버의 요청이 있을 때 마다 꺼내서 사용한다. 쿠키 생성, 조회, 삭제 우선 쿠키 객체를 생성하고 쿠키명(name)과 쿠키 값(value)을 변수로 담아줍니다. 그다음 객체의 지속 시간을 설정하고, 경로를 지정 해준뒤 response객체에 addCookie로 더해주면 (꼭 해줘야함!) 해당 쿠키명과 값을 가진 쿠키가 생성이 됩니다. 다음은 생성된 쿠키를 확인해 보..

개발/JSP 2021.03.23

[JAVA]오류 - 기본클래스 XXX 을(를) 찾거나 로드할 수 없습니다.

프로그램을 실행하려 했더니 콘솔창에 이런 오류가 뜬다. 열심히 구글링을 해보았다. properties - Run/Debug Settings에서 지우고 project clean한 뒤 실행 해보기 해보았지만 안된다. 그 외에 여러가지 해결방안들을 구글링해서 다 해봤지만 안되었다. 결국 새로운 프로젝트를 파서 거기에 하나씩 다 옮겨서 실행해 봤더니 잘 실행 되었다. 아마 classpath문제이거나 프로젝트 내의 패키지안의 클래스 파일을 찾아가는데 경로가 틀려서 경로를 새로 설정 해줘야 하는것같다.

개발/JAVA 2021.03.22

[JSP] request, response 객체

JSP의 구성 - directive page : JSP 페이지의 설정 정보 taglib : 사용할 태그 라이브러리 지정(JSTL)에 사용합니다. include : 특정 영역에 다른 문서를 포함할 때 사용합니다. ex) - 선언부 전연변수 또는 메서드 선언할 때 사용합니다. - scriptlet 자바 코드를 작성할 때 사용합니다. - 표현식 변수, 메소드의 결과를 표시할 때 사용합니다. 대신 사용함. Request 메소드 getContextPath() getRemoteAddr() - 접속한 클라이언트의 ip를 확인 getServerName() - 서버의 이름 확인 getMethod() - 요청방식을 알려줌 getProtocol() - 프로토콜 확인 getRequestURL() - URL을 요청함 getQu..

개발/JSP 2021.03.19

[JSP/servlet] Servlet의 LifeCycle(생명주기)

Servlet의 생명주기 우리(클라이언트)가 인터넷을 통해 무언갈 하려면 서버에 요청을합니다. 화면을 클릭하면 해당 데이터를 불러와 달라고 서버에 요청을 하게 되는데 그 server에 요청할때 지나가는 중간에 Servlet이 있습니다. 하지만 Servlet은 바로 호출이 되지않습니다. 객체를 생성하고 처리한 뒤, 초기화 작업을 거친 후 요청을 처리하게 됩니다. 순서를 정리하면 1. 요청을 할 경우 Servlet 클래스 요청에 의한 객체가 생성됩니다. 2. init() 메소드를 호출해 초기화합니다. 3. service() 메소드를 요청해 클라이언트가 원하는 데이터를 부르는 브라우저의 호출을 요청합니다. 4. service() 메소드는 특정 HTTP요청(Get, Post 등)을 처리하는 메서드를 호출하게 됩..

개발/JSP 2021.03.17

[SQL] CAL 테이블로 달력 출력하기

오늘은 캘린더 테이블로 달력모양으로 출력하는 걸 해보겠습니다. sql developer에서 SELECT * FROM CAL; 을 입력하면 아래와 같이 뜹니다. 이걸 이런식으로 출력해보겠습니다. 우선, DECODE 함수를 사용해서 출력해보겟습니다. SELECT DECODE(DAY, 'SUN', DAYNO) "SUN" , DECODE(DAY, 'MON', DAYNO)"MON" , DECODE(DAY, 'TUE', DAYNO) "TUE" , DECODE(DAY, 'WED', DAYNO) "WED" , DECODE(DAY, 'THU', DAYNO) "THU" , DECODE(DAY, 'FRI', DAYNO) "FRI" , DECODE(DAY, 'SAT', DAYNO) "SAT" FROM CAL; 이렇게 DAY가..

개발/OracleDB 2021.03.16