Presentation is loading. Please wait.

Presentation is loading. Please wait.

중 간 고 사 (웹프로그래밍) 2012. 4. 20.

Similar presentations


Presentation on theme: "중 간 고 사 (웹프로그래밍) 2012. 4. 20."— Presentation transcript:

1 중 간 고 사 (웹프로그래밍)

2 [시험 방법] 30초 각 문제마다 제한 시간 할당 각 문제당 2.5 점 제한 시간이 지나면 자동으로 다음 문제로 전환
30초 [시험 방법] 각 문제마다 제한 시간 할당 각 문제당 2.5 점 제한 시간이 지나면 자동으로 다음 문제로 전환 남은 시간은 문제 번호 옆에 바(Bar) 형태로 표시 시험 종료 직후에 답안을 제출하지 않을 시에는 부정행위로 간주

3 웹 어플리케이션 구축을 위해 필요한 구성 요소들을 적으시오.
1 30초 60초 웹 어플리케이션 구축을 위해 필요한 구성 요소들을 적으시오. ( )

4 웹 어플리케이션 프로그래밍은 구현하는 방식에 따라 두 가지로 구분할 수 있다. 아래 표에 빈 칸을 채우시오.
2 1분 60초 웹 어플리케이션 프로그래밍은 구현하는 방식에 따라 두 가지로 구분할 수 있다. 아래 표에 빈 칸을 채우시오. 구현 방식 코드 형태 컴파일 된 실행 프로그램 실행 방식 스크립트 코드를 해석한 뒤 실행 코드 변경 소스 코드를 다시 컴파일 해야 함 종 류 C기반 CGI 프로그램 JSP, ASP, PHP,…등

5 JSP 페이지의 구성 요소는 7가지이다. 아래 나열된 구성 요소를 제외한 빈칸을 채우시오.
3 60초 30초 JSP 페이지의 구성 요소는 7가지이다. 아래 나열된 구성 요소를 제외한 빈칸을 채우시오. ( ) 스크립트 기본객체 정적인 데이터 커스텀 태그와 JSTL

6 4 60초 30초 아래 빈칸을 채우시오. ( )를 사용하면 JSP 페이지가 어떤 문서를 생성하는지, 어떤 자바 클래스를 사용하는지, 세션에 참여하는지, 출력 버퍼의 존재 여부와 같이 JSP 페이지를 실행하는 필요한 정보들을 입력할 수 있다.

7 <%@ page ( ) =“( )" %>
5 30초 60초 아래 그림은 디렉티브와 스크립트 코드 부분의 공백 문자(줄 바꿈 등)가 그대로 출력된 것을 확인할 수 있다. Page 디렉티브에 어떤 속성을 사용하면 불필요하게 생성되는 공백 문자를 제거할 수 있는가? 아래 빈칸을 채우시오. page ( ) =“( )" %>

8 6 60초 2분 JSP의 스크립트 요소에는 세 가지가 있다. 세 가지 요소의 명칭과 각 요소의 문법 구조(구문)을 작성하시오. 1. ( ) 문법구조 : 2. ( ) 3. ( )

9 Request 기본 객체가 제공하는 기능이 아닌 것을 고르시오?
7 60초 30초 Request 기본 객체가 제공하는 기능이 아닌 것을 고르시오? 클라이언트가 전송한 쿠키 읽기 속성 처리 서버와 관련된 정보 읽기 클라이언트가 전송한 요청 파라미터 읽기 서버가 전송한 요청 헤더 읽기

10 8 1분 60초 다음은 웹 브라우저를 통해 상폼의 수량, 크기, 색상을 입력받는 HTML 문서입니다. 위의 HTML 문서를 통해 입력된 데이터를 가져다가 처리하는 JSP 페이지입니다. 빈칸에 들어갈 코드를 작성하시오. <HTML> <FORM ACTION=“Cart.jsp”> <INPUT TYPE=TEXT NAME=NUM> <INPUT TYPE=RADIO NAME=SIZE VALUE=대> <INPUT TYPE=RADIO NAME=SIZE VALUE=중> <INPUT TYPE=RADIO NAME=SIZE VALUE=소> <SELECT NAME=COLOR> <OPTION>베이지</OPTION> <OPTION>브라운</OPTION> <OPTION>오렌지</OPTION> </SELECT> </FORM> </HTML> contentType=“text/html”; charset=euc-kr” %> <% String num = ( ); //수량 데이터 가져오기 String size = ( ); //크기 데이터 가져오기 String color = ( ); //색상 데이터 가져오기 ... %>

11 9 1분 60초 웹 브라우저는 웹 서버에 파라미터를 전송할 때 알맞은 캐릭터 셋을 이용해서 파라미터 값을 인코딩한다. 따라서, 어떤 캐릭터 셋을 사용할지의 여부는 GET 방식인지 POST 방식인지에 따라서 달라진다. 아래의 빈칸을 채우시오 GET 방식 파라미터를 위한 인코딩 방식 POST 방식 파라미터를 위한 인코딩 방식 <Connector port=“8080” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8443” ( )=“euc-kr”> <% request. ( )("euc-kr"); ... %>

12 10 60초 30초 웹 컨테이너는 JSP 페이지를 실행시키기 위해 다음과 같은 5개의 단계를 거친다. 5개의 단계 중 틀린 것을 고르시오. 1단계 : JSP 페이지를 서블릿 클래스의 소스 코드로 변환 2단계 : 그 소스 코드를 컴파일 3단계 : 컴파일된 결과를 가지고 서블릿 클래스의 객체 생성 4단계 : 그 객체를 인스턴스화해서 서블릿으로 생성 5단계 : 웹 브라우저로부터 URL 요청이 오면 그 서블릿을 가지고 요청 처리

13 11 1분 60초 웹 브라우저로부터 입력된 상품코드와 수량을 sendRedirect 메서드를 통해 다른 JSP 페이지르 넘겨주려고 한다. 호출해야 할 JSP 페이지의 URL이 이고, 넘겨줘야 할 데이터의 이름이 CODE와 NUMBER라면 다음의 괄호 안을 채우시오? <% String code=request.getParameter(“CODE”); String num=request.getParameter(“NUM”); response.sendRedirect( ); %>

14 12 60초 30초 아래 빈칸을 채우시오. 버퍼가 다 찼을 때, 버퍼에 쌓인 데이터를 실제로 전송되어야 할 곳(또는 저장되어야 할 곳)에 전송하고(또는 저장하고) 버퍼를 비우는 것을 ( )라고 한다.

15 13 1분 60초 아래의 보기는 클라이언트와 서버 정보 출력을 위한 request 객체의 메소드이다. 아래 제시된 URL 정보에 해당하는 메소드를 매칭시키시오. <보 기> String getRequestURI() String getRemoteAddr() String getServerName() String getProtocol() String getMethod() String getQueryString() String getCharacterEncoding() long getContentLength() int getServerPort() String getContentType()

16 14 60초 30초 pageContext 기본 객체는 하나의 JSP 페이지와 1:1 매핑되는 객체이다. pageContext 기본 객체가 제공하는 기능이 아닌 것은? 다른 기본 객체 구하기 버프 크기 구하기 속성 처리하기 페어지의 흐름 제어하기 에러 데이터 구하기

17 15 30초 60초 아래의 if - else 코드는 표현식과 스크립트릿이 복잡하게 썩여 있다. 어떤 기본 객체를 사용하면 복잡한 코드를 간단하게 표시할 수 있는가? <% if (grade > 10) { %> <%= gradeStringA %> <% } else if (grade > 5) { %> <%= gradeStringB%> <% } %>

18 16 60초 30초 application 기본 객체는 하나의 웹 애플리케이션을 관리하고, 웹 애플리케이션 내에서 정보를 공유하도록 도와주는 객체이다. application 기본 객체가 제공하는 기능이 아닌 것은? 응답 페이지에 대한 설정 정보 지정 웹 어플리케이션 초기화 파라미터 읽기 서버 정보 읽기 로그 메시지 기록 웹 어플리케이션의 자원 구하기

19 웹 어플리케이션은 네 개의 영역을 갖고 있다. 아래 그림의 도형에 적합한 영역을 채우시오.
17 60초 30초 웹 어플리케이션은 네 개의 영역을 갖고 있다. 아래 그림의 도형에 적합한 영역을 채우시오. 1. ( ) 2. ( ) 3. ( ) 4. ( )

20 18 1분 60초 다음의 두 JSP 페이지에서 잘못된 곳이 한 곳이 있습니다. 찾아서 고치시오.
contentType=“text/html”; charset=euc-kr”%> <% String winners [ ] = new String [ 3 ]; winners [ 0 ] = “이수현”; winners [ 1 ] = “정세훈”; winners [ 2 ] = “김진희”; request.setAttribute(“WINNERS”, winners); %> <jsp : forward file = “WinnersView.jsp” /> contentType=“text/html”; charset=euc-kr”%> <HTML> <HEAD><TITLE>우승자 명단</TITLE></HEAD> <BODY> <H3>우승자 명단</H3> 1등. ${ WINNERS [0] } <BR> 2등. ${ WINNERS [1] } <BR> 3등. ${ WINNERS [2] } <BR> </BODY> </HTML>

21 19 60초 30초 아래 빈칸을 채우시오. <jsp:include> 액션 태그는 다른 페이지를 호출해서 실행한 후 그 결과를 현재의 페이지에 포함하는 기능을 가지고 있다. <jsp:include> 액션 태그는 ( ) 기본 객체의 ( ) 메소드와 동일한 역할을 한다. <jsp:forward> 액션 태그는 제어권을 가진 페이지가 다른 페이지를 호출하면서 자기가 가진 모든 권한을 다른 페이지로 넘기는 역할을 한다. <jsp:forward> 액션 태그는 사용법만 조금 차이가 있을 뿐 ( ) 기본 객체의 ( ) 메소드와 동일한 기능을 한다.

22 20 1분 60초 다음의 두 JSP 페이지에서 잘못된 곳이 한 곳이 있습니다. 찾아서 고치시오.
page contentType = "text/html; charset=euc-kr" %> <html> <head><title>include 디렉티브</title></head> <body> <% int number = 10; %> include page="/includee.jspf" %> 공통변수 DATAFOLDER = "<%= dataFolder %>" </body> </html> page contentType = "text/html; charset=euc-kr" %> includer.jsp에서 지정한 번호: <%= number %> <p> <% String dataFolder = "c:\\data"; %>

23 21 60초 30초 아래는<jsp:include> 액션 태그와 include 디렉티브의 차이점을 정리한 표이다. 빈칸을 채우시오. 비교항목 <jsp:include> include 디렉티브 처리시간 JSP 파일을 자바 소스로 변환할 때 처리 기능 별도의 파일로 요청 처리 흐름을 이동 데이터 전달방법 request 기본 객체나 <jsp:param>을 이용한 파라미터 전달 페이지 내의 변수를 선언한 후, 변수에 값 저장 용도 화면의 레이아웃의 일부분을 모듈화할 때 주로 사용 다수의 JSP 페이지에서 공통으로 사용되는 변수를 지정하는 코드나 저작권과 같은 문장을 포함

24 22 60초 30초 page 디렉티브의 errorPage 속성을 사용해서 에러 페이지를 지정하면, 에러가 발생할 때 지정된 에러 페이지를 보여주게 된다. 예를 들어, A.jsp 페이지에서 에러가 발생하면 에러 페이지로 지정한 B.jsp의 에러 페이지가 출력이 되어야 한다. 하지만 인터넷 익스플로러에서는 다음과 같은 경우에 아래 그림과 같이 서버에서 전송한 응답 화면이 아닌 자체적으로 제공하는 오류 메시지 화면을 출력한다. 아래 빈칸을 채우시오. 응답의 상태 코드가 404나 500과 같은 에러 코드 전체 응답 결과 데이터의 길이가 ( )보다 작을때

25 23 30초 60초 쿠키를 구성하는 요소 5가지를 적으시오. ( )

26 24 1분 쿠키에서 다음과 같은 기능을 구현하기 위해서는 어떤 메서드를 호출해야 하는지 작성하시오.
60초 1분 쿠키에서 다음과 같은 기능을 구현하기 위해서는 어떤 메서드를 호출해야 하는지 작성하시오. 쿠키 데이터를 입력 및 수정하는 기능 쿠키 데이터를 삭제하는 기능 (두 개 이상의 메서드 필요) 쿠키 데이터를 조회하는 기능 (두 개 이상의 메서드 필요) ( ) ( , ) ( , )

27 25 1분30초 세션에서 다음과 같은 기능을 구현하기 위해서는 어떤 메서드를 호출해야 하는지 작성하시오. 세션을 시작하는 기능
60초 1분30초 세션에서 다음과 같은 기능을 구현하기 위해서는 어떤 메서드를 호출해야 하는지 작성하시오. 세션을 시작하는 기능 세션을 끝내는 기능 세션 데이터를 입력 및 수정 기능 세션이 생성된 시간을 구하는 기능 세션 데이터를 조회하는 기능 ( ) ( ) ( ) ( ) ( )

28 26 30초 아래는쿠키와 세션의 차이점을 정리한 표이다. 빈칸을 채우시오. ➀ ➁ ➂ ➃ 60초 구분 쿠키 세션 저장되는 곳
저장되는 형식 만료시점 쿠키 저장 시 설정 가능(설정하지 않을 경우 브라우저 종료 시 소멸) 클라이언트가 로그아웃 하거나 설정한 시간 동안 반응이 없을 경우 리소스 클라이언트의 리소스 사용 서버의 리소스 사용 용량 제한 한 도메인 당 20개 쿠키 하나당 4KB 총 300개 서버가 허용하는 용량

29 <jsp:setProperty>
27 1분 30초 60초 <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty> 액션 태그의 기본 문법을 작성하시오. <jsp:useBean> <jsp:setProperty> <jsp:getProperty> <jsp:useBean /> <jsp:setProperty /> <jsp:getProperty />

30 JDBC 프로그램의 일반적인 실행 순서는 아래와 같다. 빈칸을 채우시오.
28 30초 60초 JDBC 프로그램의 일반적인 실행 순서는 아래와 같다. 빈칸을 채우시오. ( ) 쿼리 실행을 위한 Statement 객체 생성 쿼리 실행 쿼리 실행 결과 사용 Statememt 종료

31 29 60초 30초 다음은 회원 정보 테이블에서 주어진 아이디에 해당하는 회원 정보를 삭제하는 기능의 JSP 페이지인데 잘못된 곳이 있습니다. 찾아서 고치시오. <%page import = “java.sql.*” %> <% String code = request.getParameter(“id"); if (id == null) throw new Exception(“id를 입력하시오."); Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/webdb", "root", "1234"); if (conn == null) throw new Exception(“DB에 연결 X"); stmt = conn.createStatement(); int rowNum = stmt.executeQuery( “delete from userinfo where id=‘” + id + “’”); if(rowNum < 1) throw new Exception(“회원정보 삭제 X”); } finally { } response.sendRedirect(“DeleteUserResult.jsp”); %>

32 29 60초 1분 다음은 회원 정보 테이블에서 주어진 아이디에 해당하는 회원 정보를 삭제하는 기능의 JSP 페이지인데 잘못된 곳이 있습니다. 찾아서 고치시오. <%page import = “java.sql.*” %> <% String code = request.getParameter(“id"); if (id == null) throw new Exception(“id를 입력하시오."); Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/webdb", "root", "1234"); if (conn == null) throw new Exception(“DB에 연결 X"); stmt = conn.createStatement(); int rowNum = stmt.executeQuery( “delete from userinfo where id=‘” + id + “’”); if(rowNum < 1) throw new Exception(“회원정보 삭제 X”); } finally { } response.sendRedirect(“DeleteUserResult.jsp”); %>

33 30 60초 30초 SQL의 LONG VARACHAR 타입은 대량의 텍스트 데이터를 저장할 때 사용된다. 아래의 코드에서 ResultSet에서 LONG VARCHAR 타입의 읽어오기 위해서 어떤 메서드를 사용해야 하는지 빈칸을 채우시오. String history = null; Reader reader = null; try { reader = rs . ( )("HISTORY"); if (reader != null) { StringBuffer buff = new StringBuffer(); char[] ch = new char[512]; int len = -1; while( (len = reader.read(ch)) != -1) { buff.append(ch, 0, len); } history = buff.toString(); } catch(IOException ex) { out.println("예외 발생:"+ex.getMessage()); } finally { if (reader != null) try { reader.close(); } catch(IOException ex) {}

34 다음 중 JSP 페이지에서 호출할 필요가 전혀 없는 메서드는?
31 60초 30초 다음 중 JSP 페이지에서 호출할 필요가 전혀 없는 메서드는? getCookies 메서드 addCookie 메서드 getSession 메서드 getAttribute 메서드 setAttribute 메서드

35 32 30초 아래의 특징을 갖는 쿼리를 적으시오. 반복해서 실행되는 동일 쿼리의 속도를 향상시킨다.
60초 아래의 특징을 갖는 쿼리를 적으시오. 반복해서 실행되는 동일 쿼리의 속도를 향상시킨다. 값 변환을 자동으로 해준다. 예를 들면, 작은 따옴표 등 값에 포함된 특수 문자의 처리에 편리하다. 코드의 간결해진다. 예를 들면, 지정할 값이 많아질 경우 문자열 연결에 따른 코드의 복잡함을 감소시킨다.

36 33 1분 60초 다음의 JSP 페이지는 회원 정보 테이블에 등록되어 있는 모든 사용자 아이디를 읽어서 java.utilArrayList 객체에 저장한 다음에 다른 JSP 페이지로 넘겨주는 일을 합니다. 밑줄 친 부분을 채워서 완성하시오. <%page import = “java.util.*” %> <% Connection conn = null; Statememt stmt = null; ArrayList<String> list = new ArrayList<String>(); try { Class.forName(“org.apache.commons.dbcp.PoolingDriver”); conn = DriverManager.getConnection( "jdbc:apache:commons:dbcp:/wdbpool); if (conn == null) throw new Exception(“DB에 연결 X"); stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( “select id from userinfo;”); while ( ) { String id = ; list.add(id); } finally {…} %>

37 34 60초 30초 아래 그림의 login.jsp를 가져오려면 웹 브라우저에 어떤 URL을 써야 할까요? 웹 브라우저가 웹 서버와 동일 컴퓨터에서 실행되고 있고, 웹 서버가 사용하는 포트 번호는 3434이라고 가정하세요.

38 35 30초 60초 아래의 JSP 페이지를 실행하면 어떤 HTML 문서가 생성될까요? 아래쪽의 빈 박스를 채워서 완성하세요. 웹 컨테이너가 JSP 페이지를 처리하면서 추가하는 줄바꾸기 문자는 고려하지 않아도 됩니다. page contentType=“text/html”; charset=euc-kr” %> <HTML> <HEAD><TITLE> 계산문제 </TITLE></HEAD> <BODY> <% int a = 1, b = 3; %> A와 B의 합은 ? <%= a + b %> <br> A와 B의 곱은 ? <%= a * b %> <br> A + B의 제곱근은 ? <%= Math.sqrt(a + b) %> <br> </BODY> </HTML> <HTML> <HEAD><TITLE> 계산문제 </TITLE></HEAD> <BODY> </BODY> </HTML>

39 JSP 페이지 안에서 java.util.HashMap 클래스를 사용하려고 합니다. 어떤 지시자를 써야 할까요?
36 30초 60초 JSP 페이지 안에서 java.util.HashMap 클래스를 사용하려고 합니다. 어떤 지시자를 써야 할까요? < >

40 아래의 JSP 페이지를 실행하였더니 에러가 발생하였다. 에러가 발생하지 않도록 수정하시오.
37 30초 60초 아래의 JSP 페이지를 실행하였더니 에러가 발생하였다. 에러가 발생하지 않도록 수정하시오. page contentType = "text/html; charset=euc-kr" %> page buffer="1kb" autoFlush="false" %> <html> <head> <title>autoFlush 속성값 false 예제</title> </head> <body> <% for (int i = 0 ; i < 1000 ; i++) { %> 1234 <% } %> </body> </html>

41 38 1분 60초 아래의 JSP 페이지는 웹 브라우저, 즉 클라이언트가 전송한 정보 및 서버 정보를 구할 수 있는 메서드를 이용하여 클라이언트 및 서버 정보를 출력한다. 빈 칸에 해당하는 메서드를 채우시오. page contentType = "text/html; charset=euc-kr" %> <html> <head><title>클라이언트 및 서버 정보</title></head> <body> 클라이언트IP = <%= request.getRemoteAddr() %> <br> 요청정보길이 = <%= request.getContentLength() %> <br> 요청정보 인코딩 = <%= %> <br> 요청정보 컨텐트타입 = <%= %> <br> 요청정보 프로토콜 = <%= request.getProtocol() %> <br> 요청정보 전송방식 = <%= %> <br> 요청 URI = <%= request.getRequestURI() %> <br> 컨텍스트 경로 = <%= request.getContextPath() %> <br> 서버이름 = <%= request.getServerName() %> <br> 서버포트 = <%= request.getServerPort() %> <br> </body> </html>

42 39 30초 60초 아래의 JSP 페이지는 현재 사용 중인 웹 컨테이너에 대한 정보를 읽어오는 메서드를 이용하여 웹 컨테이너에 대한 정보를 출력한다. 빈 칸에 해당하는 메서드를 채우시오. page contentType = "text/html; charset=euc-kr" %> <html> <head><title>서버 정보 출력</title></head> <body> 서버정보: <%= application.getServerInfo() %> <br> 서블릿 규약 메이저 버전: <%= %> <br> 서블릿 규약 마이너 버전: <%= %> </body> </html>

43 아래의 표는 request 기본 객체가 제공하는 헤어 읽기 메서드에 대한 설명이다. 틀린 것을 고르시오.
40 30초 60초 아래의 표는 request 기본 객체가 제공하는 헤어 읽기 메서드에 대한 설명이다. 틀린 것을 고르시오. 문제 번호 메서드 설명 1 getHeader(String name) 지정한 이름의 헤더 값 2 getHeaders(String name) 지정한 이름의 헤더 목록을 Enumeration 객체로 반환 3 getHeaderNames() 헤더의 이름 집합을 Enumeration 객체로 반환 4 getIntHeader(String name) 지정한 헤더의 값을 문자 값 읽음 5 getDateHeader(String name) 지정한 헤더의 값을 시간 값으로 읽음

44 시험 종료 수고했습니다. 답안을 제출하세요.


Download ppt "중 간 고 사 (웹프로그래밍) 2012. 4. 20."

Similar presentations


Ads by Google