get 방식
형태: http//localhost:8282/java_hello3?name=제목&contents=내용
post 방식
WAS(Web Application Server)에서 웹 어플리케이션을 구분하기 위한 path
JSP에서 contacst는 project를 뜻합니다 (contacst = project)
(다른 분야에서는 contacst가 전혀 다른 의미로 사용되기 때문에 주의해야합니다)
- HttpServletRequest request,
- HttpServletResponse response
HttpServletRequest request
HttpServletRequest 의 역할은 사용자 이름 및 암호와 같이 웹 클라이언트가 보낸 데이터 를 수신하는 것으로 request 정보를 서블릿에게 전달하기 위한 목적으로 사용합니다
HTTP 헤더와 HTTP 바디로 구성되어 있다.
Header정보, parameter, cookie, url, uri 등의 정보를 읽어들이는 메소드를 가진 클래스
bodydml steam을 읽어들이는 메소드를 가짐
메소드 정보
HttpServletResponse
HttpServletResponse 의 역할은 웹 클라이언트에 데이터를 보내는 것
WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServleResponse객체를 생성하여 서블릿에게 전달 → 서블릿은 HttpServletResponse에 content type, 응답 코드, 응답 메세지 등을 담아서 전송합니다
서블릿에 속성을 설정 하는 많은 setXXX () 메서드가 제공됩니다.
ServletResponse interface (javax.servlet.ServletResponse)
HttpServletResponse interface (javax.servlet.http.HttpServletResponse)
- DDL
데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어.
- DML
정의된 데이터베이스에 입력된 레코드를 조회하거나 수정, 삭제하는 역할을 하는 언어
- DCL
데이터베이스에 접근하거나 객체에 권한을 주는 역할을 하는 언어
이름에 T가 들어가는 사원의 속한 부서에서 근무하는 모든 사원의
사원번호 및 이름을 출력하라.
select empno, ename from emp where deptno in (select deptno from emp where ename like '%T%');
자신의 급여가 평균 급여보다 많은 모든 사원의 사원 번호, 이름, 급여를
표시하는 질의를 작성하고 급여를 기준으로 결과를 내림차순으로 정렬하라.
select empno,ename,sal
from emp
where sal>(select avg(sal)from emp) order by sal desc ;
Smith와 동일한 부서에 속한 모든 사원의 이름 및 입사일을 출력하라.
단, Smith는 제외하고 출력하시오
select ename,hiredate from emp where deptno=(select deptno from emp where ename='SMITH')and ename != 'SMITH';
사원들의 평균 급여보다 더 많은 급여를 받는 사원을 검색하는 쿼리문
select *
from emp
where sal>(select avg(sal)from emp);
연봉을 3000이상 받는 사원이 소속된 부서와 동일한 부서에서 근무하는 사원들의 정보를 출력하는 쿼리문
select * from emp where deptno in (select deptno from emp where sal>=3000);
Smith보다 늦게 입사한 사원의 이름 및 입사일을 출력하라.
select ename,hiredate from emp where hiredate>(select hiredate from emp where ename='SMITH');
Smith와 동일한 부서에 속한 모든 사원의 이름 및 입사일을 출력하라.
select ename,hiredate from emp where deptno=(select deptno from emp where ename='SMITH')and ename != 'SMITH';
DDL 구문
기존 테이블(EMP)과 동일한 내용과 구조를 갖는 emp04 테이블을 만드는 쿼리문
create table emp04 as select * from emp;
기존테이블에 컬럼을 추가 하는 명령어는?
alter add
기존테이블에 컬럼의 크기를 변경하는 명령어는?
alter modify
1)



@WebServlet("/star2")
public class Star2 extends HttpServlet {.....
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
int num = Integer.valueOf(request.getParameter("num"));
for (int i = 0; i <num ; i++) {
for (int j = 0; j <= i; j++) {
out.print("*");
}
out.print("<br>");
}
}
}
2)



@WebServlet("/star")
public class Star extends HttpServlet {.....
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
int num = Integer.valueOf(request.getParameter("num"));
for (int i = 1; i <= num; i++) {
for (int j = i; j <= num; j++) {
out.print("*");
}
out.print("<br>");
}
}
}
-sevlet_lotto 프로젝트 생성
lotto.html 에서 6개의 번호및 전송 버튼을 만든다.
-/lottoResult 로 치고 들어오면 LottoServelt 파일에서 랜덤숫자 6개를 생성후
입력된 숫자와 랜덤생성된 숫자를 비교한후, 맞는 숫자 틀린숫자를 뿌려준다.

@WebServlet("/lottoResult")
public class LottoSevlet extends HttpServlet {.....
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
int n1= Integer.valueOf(request.getParameter("n1"));
int n2= Integer.valueOf(request.getParameter("n2"));
int n3= Integer.valueOf(request.getParameter("n3"));
int n4= Integer.valueOf(request.getParameter("n4"));
int n5= Integer.valueOf(request.getParameter("n5"));
int n6= Integer.valueOf(request.getParameter("n6"));
Set<Integer> useLotto = new HashSet<>();
useLotto.add(n1);
useLotto.add(n2);
useLotto.add(n3);
useLotto.add(n4);
useLotto.add(n5);
useLotto.add(n6);
Set<Integer> Lotto = new HashSet<>();
final int COUNT = 6;
while (Lotto.size() < COUNT) {
Lotto.add((int) (Math.random() * 45 + 1));
}
Set<Integer> sameSet = new HashSet<>();
Set<Integer> differSet = new HashSet<>();
for (Integer useNum : useLotto) {
for (Integer n : Lotto) {
if(useNum == n)
sameSet.add( useNum);
else
differSet.add(useNum);
}
}
for (int n : sameSet) {
differSet.remove(n);
}
out.print("<html>");
out.print("<body>");
out.print("당첨번호: "+Lotto+"<br>");
out.print("맞는 숫자: "+sameSet+"<br>");
out.print("다른 숫자: "+differSet+"<br>");
out.print("</body>");
out.print("</html>");
out.close();
doGet(request, response);
}
}