redirect
여러 페이지가 있을 때, 조건에 따라 해당 페이지를 분기시킬 때 사용합니다
서버가 클라이언트에게 어떤 URL로 이동하라는 요청을 보내는 것 입니다(클라이언트에게 다시 접근하게 만든다.)
클라이언트는 리다이렉션 응답을 받게 되면 헤더에 포함된 URL로 재요청을 보냅니다.
서블릿이나 JSP는 리다이렉트하기 위해 HttpServeltResponse클래스의 sendRedirect() 메서드를 사용합니다.
HTTP 프로토콜로 정해진 규칙
요청과 응답이 각각 이루어집니다 → 처음 요청한 URL과 리다이렉트가 일어난 후의 URL이 다르게 변경됩니다.
예시
고객전화->콜센터 직원-> 해당부서로 다시 전화로 걸어주세요-> redirect->request 객체를 다시 생성->전화번호가 바뀌듯이 주소가 바뀜
forward
서블릿이나 jsp가 요청을 받은 후 그 요청을 처리하다가 추가적인 처리를 같은 was 안에 있는 다른 서블릿이나 jsp에 위임하여 처리하는 경우
주로 서블릿으로 request 요청을 보내고 응답처리는 jsp로 가공한다.
요청과 응답이 한번만 이루어짐 → 요청 URL이 동작된 후에도 같다.
예시
고객전화->콜센터 직원-> 해당부서 내선번호로 돌림-> forward->request 기존꺼를 그대로 쓸 수있으며 ->전화번호가 안바뀜(주소가 바뀌지 않음)
액션 태그는 서버나 클라이언트에게 어떤 행등을 하도록 명령하는 태그입니다.
forward
include
외부 페이지의 내용을 포함하거나 페이지를 모듈화합니다.
param
<jsp:forward>,<jsp:include>,<jsp:plugin>태그에 인자를 추가합니다.
-foreign key (외래키)
: 참조하는 테이블의 컬럼에 값이 존재하면 허용합니다.
-primary key(기본키)
: 항상 유일한 값을 가지도록 하며 비어 있을 수 없습니다.
사원번호가 7566인 사원의 이름 및 부서번호를 표시하는 출력하라.
select ename, deptno from emp where empno=7566;
급여가 1500이상 ~ 2850이하의 범위에 속하지 않는 모든 사원의 이름 및 급여를 출력하라.
select ename, sal from emp where sal not between 1500 and 2850;
1981년 2월 20일 ~ 1981년 5월 1일에 입사한 사원의 이름,직업 및 입사일을 출력하라.
입사일을 기준으로 해서 오름차순으로 정렬하라
select ename, job, hiredate from emp where hiredate between '1981/02/20' and '1981/05/01' order by hiredate;
10번 및 30번 부서에 속하는 모든 사원의 이름과 부서 번호를 출력하되,
--이름을 알파벳순으로 정렬하여 출력하라.
select ename,deptno from emp where deptno in(10,30) order by ename;
관리자가 없는 모든 사원의 이름 및 직위를 출력하라.
select ename,job from emp where mgr is null;
이름에 L이 두 번 들어가며 부서 30에 속해있는 사원의 이름을 출력하라.
select ename from emp where ename like'__A%';
직업이 Clerk 또는 Analyst 이면서 급여가 1000,3000,5000 이 아닌
모든 사원의 이름, 직업 및 급여를 출력하라.
select ename, job, sal from emp where job in('CLERK','ANALYST') and sal not in(1000,3000,5000);
사원의 이름과 커미션을 출력하되, 커미션이 책정되지 않은
사원의 커미션은 'no commission'으로 출력하라.
select ename,nvl(to_char(comm),'no commission')from emp;