Hoon222y

[JSP & Servlet] 사전문제 & 2장 본문

코딩/교육

[JSP & Servlet] 사전문제 & 2장

hoon222y 2019. 1. 15. 08:02

* 사전평가

1. 다음과 같은 Request Contents가 있을 경우 서버측의 메서드로 적절한 것을 고르시오.

<form action="controller?action=login">
<input type="text" name="userid" vale="아이디">
<input type="password" name="userp" value="비밀번호>
<input type="submit" value="Login">
</form>
1) doGet(HttpServletRequest request, HttpServletResponse reponse)
2) doPost(HttpServletRequest request, HttpServletResponse reponse)
3) doPut(HttpServletRequest request, HttpServletResponse reponse)
4) service(HttpServletRequest request, HttpServletResponse reponse)

2. 다음과 같은 Form에서 전송된 Parameter "userid"를 JSP에서 읽고자 할 때 알맞은 것을 고르시오.

<form action="controller?action=order method="get">
<input type="text" name="userid" vale="주문자아이디">
<input type="submit" value="Order">
</form>
1) request.getInitParameterValues();
2) request.getInitParameter("userid");
3) request.getParameterValues();
4) request.getParameterValues("userid");

3. 다음은 Servlet Content의 DB Reference 자원을 공유하기 위한 init parameter 설정에 대한
DeployMent Descriptor의 부분이다. 빈칸 1,2 위치에 올바른 순서의 엘리먼트를 고르시오.

<web-app>
</*code here-1*/>
</*code here-2*/>jdbc.oracle</*code here-2*/>
<param-value>/WEB-INF/dbserver.properties</param-value>
</*code here-1*/>
</web-app>
1) init-param, param-name
2) init-param, resource-name
3) content-param, pram-name (이거 왜 pram임? 시험지 오타인듯)
4) content-param, resource-name

4 .다음은 MVC Pattern에 대한 설명이다. 틀린 것을 고르시오.

1) HTTP Request 로부터 들어온 데이터를 Model 에서 확인한다.
2) Model은 Business Service(Logic)와 Domain Object 로 구성하며, Database를 Access한다.
3) View는 Dynamic Contents를 작성하기 위해서 Model로부터 테이터를 참조한다.
4) Controller는 사용자의 행위를 받아들이고 Business Service(Logic)과 사용자의 응답을 위한 다음 View를 선택한다.

5. 다음과 같은 Deployment Descriptor 설정에서 서블릿에 대한 잘못된 URL을 고르시오. 단, Web Context의 이름은 "CMS"라고 간주한다.
<servlet-mapping>
<servlet-naming>FrontServlet</servlet-naming>
</servlet-mapping>

1) <a href="httpL//localhost:8080/CMS/servlet/front">FrontServlet</a>
2) <a href="/CMS/front">FrontServlet</a>
3) <form action="http//localhost:8080/CMS/front" name="front"></form>
4) <img onClick="location.href='front'" alt="FrontServlet">

6. Web Server 구동 시에 Web Context의 초기화 및 Web Server 종료 시에 자원해제 등의 Business Logic 수행을 위한 ServletContextListener를 구현한 클래스에서 반드시 구현해야 하는 메서드로 올바른 것은?

1) contextInitialized(ContextEvent event), contextDestroyed(ContextEvent event)
2) contextInitialized(ContextListener event), contextDestroyed(ContextListener event)
3) contextInitialized(ServletContextEvent event), contextDestroyed(ServletContextEvent event)
4) contextInitialized(ServletContextListener event), contextDestroyed(ServletContextListener event)

7. 서블릿의 Single-Thread 모델에 대한 설명 중 옳지 않은 것을 고르시오.

1) 공유지원에는 ServletContext 등이 해당된다.
2) Single-Thread 모델은 공유 자원 접근과 관련된 문제를 완벽하게 해결해준다.
3) SingleThreadModel 인터페이스는 메서드를 가지고 있지 않다.
4) Single-Thread 모델을 사용하는 서블릿은 SingleThreadModel 인터페이스를 구현한다.

8. 다음과 같은 JSP 페이지에 대한 설명으로 가장 올바르지 않은 것을 고르시오.
<%@ taglib uri="http://java.sum.com/jsp/core" prefix="c" %>
<!————————————————————————————————————————————————————— 코드 생략 —————————————————————————————————————————————————————>
<c:forEach var="vo" items="${requestScope.list}">
<tr align=center> … 코드 생략 … </tr>
</c:forEach>

1) forEach는 count 및 여러 개의 값을 처리하기 위한 반복처리 태그이다.
2) items의 값은 여러 개의 값을 가지고 있는 객체다.
3) var의 값은 반복 처리되는 index 값을 하나씩 증가시켜서 갖는다.
4) ${reqeustScope.list}는 request 영역에 list로 저장된 데이터를 의미한다.

9. JSP 페이지에서 request 영역에 저장된 공지데이터(Notice)를 추출하여 공지제목 getTitle()을 출력하려 한다. 다음 중 처리가 올바르지 않은 것을 고르시오.
work.model.Notice dto=…; //코드 생략
request.setAttribute("notice",dto);

1) ${requestScope.notice.title}
2) <jsp:useBean id = "notice" class ="work.mode.Notice"/>
<%=notice.getTitle() %>
3)<% Notice notice = (Notice)request.getAttribute("notice");
out.println(notice.getTitle());
%>
4)<% Notice notice = (Notice)request.getAttribute("notice");%>
<%=notice.getTitle()%>

10. Session 객체를 즉시 제거(release) 시키기 위해 올바른 것을 모두 고르시오. (다중 선택)

1) session.invalidate();
2) session.setTimeOut();
3) session.setMaxInactiveInterval(0);
4) session.setMaxInactiveInteval(-1);
—————————————————————————————————————————————————————
* Chap01 웹 프로그래밍에 대한 이해

* 네트워크
컴퓨터와 컴퓨터를 연결해주는 망

* TCP/IP
컴퓨터 간에 통신할 수 있도록 만든 프로토콜의 하나

* IP주소
TCP/IP로 연결된 네트워크에서 각각의 컴퓨터를 구분하려고 사용하는 주소
IP주소는 숫자로 구성되어 있고 '123.123.123.123'과 같이 네 개로 구분된 10진수 사용함

* 도메인 네임 시스템 DNS
인터넷에 연결된 컴퓨터 구분을 위해 사용하는 IP주소 대신 알기 쉬운 이름 형태로 컴퓨터를 구분하기 위한 인터넷 서비스/시스템 중 하나
호스트(컴퓨터) 이름(www) + 도메인 이름(naver.com) 형태로 구성됨
PC에서 통신사 DNS 서버에 요청 -> 통신사 DNS 서버가 네이버 도메인에 있는 DNS 서버에 요청 -> 차례대로 IP주소 반환 -> DNS 캐시로 백업해서 갖고 있음

* 웹
월드 와이드 웹을 줄여서 웹이라고 함. 대표적인 인터넷 서비스 중 하나

* 웹 서버와 HTTP
서버 : 네트워크에서 서비스를 제공하는 컴퓨터
클라이언트 : 서비스를 이용하는 컴퓨터
HTTP : 웹 서비스에 사용되는 통신 규격
클라이언트로부터 요청을 받는 서버는 데이터와 서비스를 갖고 있음

* 웹 서버 소프트웨어
서버에서 웹 서비스를 제공하는 소프트웨어. Apache가 가장 많이 쓰임

* 클라이언트 소프트웨어
웹 서비스를 이용하기 위한 클라이언트 소프트웨어 -> 웹 브라우저

* 웹 컨텐츠
서버가 브라우저에게 제공하는 모든 데이터. Static 웹 컨텐츠는 새로고침해도 바뀌지 않음. Dynamic 웹 컨텐츠는 새로고침하면 매번 내용이 바뀜. 최근에는 거의 대부분이 Dynamic 웹 컨텐츠임 (게시판)

브라우저는 URL을 이용해 웹 서버에 웹 컨텐츠를 요청
URL은 hostname(서버 주소)과 pathname(서버에 있는 웹 컨텐츠)을 반드시 포함해야 함
hostname을 알고 있으면 서버를 찾아갈 수 있음

웹 서버가 클라이언트의 요청을 받으면 스토리지에 해당 웹 컨텐츠가 있는지 확인하고, 있는 경우 가공하지 않고 그대로 컨텐츠를 보냄(static 웹 컨텐츠)

웹 서버는 요청을 성공적으로 처리하든 오류가 발생하든 무조건 응답을 제공해야 함
잘못된 요청이 들어와서 찾지 못하는 경우 404 not found 오류가 발생

자바스크립트는 클라이언트 측에서 자바스크립트 엔진을 갖고 동작하므로 서버 측에서 실행되는 작업은 해결할 수 없음
일반적인 웹 서버는 동적인 요청을 해결할 방법이 없음
웹 서버는 요청이 들어오면 이 요청이 정적인 웹 컨텐츠에 대한 요청인지, 동적인 웹 컨텐츠에 대한 요청인지 식별

웹 어플리케이션 서버(WAS)를 백 단에 추가해서 forwarding 시킴
WAS에는 tomcat, IIS 등이 있음
WAS도 storage 갖고 있음. 웹 서버의 storage에는 정적 웹 컨텐츠가 들어 있음
PHP, ASP, JSP는 동적 웹 컨텐츠를 생성하기 위한 기술
동적 웹 컨텐츠란 클라이언트가 요청한 시점에 제공할 웹 컨텐츠를 동적으로 새롭게 생성하거나 기존의 컨텐츠를 변경해 새롭게 재구성한 웹 컨텐츠. html, css, image, video 등
클라리언트의 요청을 처리한 결과로 동적으로 재구성(대표적으로 html 문서 재구성)

자바스크립트 : 클라이언트사이드 웹 프로그래밍 언어
PHP, ASP, JSP : 서버사이드 웹 프로그래밍 언어. 상황에 맞게 동적인 웹 컨텐츠 만듬

어떤 서버사이드 기술을 사용하는가에 따라 WAS 종류 결정
ASP를 서비스해주는 WAS는 IIS(MS)
PHP를 서비스해주는 WAS는 따로 존재하지 않고 Apache 서버에 PHP 엔진 올림
PHP를 사용하면 storage에는 PHP 문서들이 저장됨
JSP를 서비스해주는 WAS 중 대표적인 WAS는 tomcat
JSP WAS를 사용하면 storage에는 JSP 문서들이 저장됨
JSP 문서는 기본적으로 HTML 문서인데 그 안에 자바 코드가 삽입되어 있음

* 웹 프로그램
별도의 설치 없이 서버에 접속하는 것만으로 필요한 기능/서비스 이용 가능
프로그램은 서버에서 실행되고 실행 결과만 컴퓨터의 브라우저를 통해 보여짐
웹 프로그램은 서버와 클라이언트 협력에 의해 구현됨

* 클라이언트 기술
클라이언트 기술 : HTML, 자바스크립트, CSS
기본적으로 브라우저에 의해 처리되는 요소
화면 구성, 스타일, 동적 이벤트처리 등 사용자 상호작용 담당

* 서버 기술
서버 기술 : 서블릿, JSP, ASP, PHP
HTML 파일은 파일 내용을 수정하기 전까지는 내용이 변하지 않는 정적인 구조
사용자 요청에 따라 다른 정보를 제공하거나 데이터베이스를 통한 서비스를 위해서는 별도의 프로그램 기술이 필요

* 동적인 웹 컨텐츠
자바스크립트는 소스 코드 자체를 변경할 수 없음
클라이언트 측에서 요청할 때 마다 동적으로 시간을 출력

* hello.jsp
<%@ page contentType="text/html; charset=UTF-8"
import="java.util.*"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Hello World</h1>
<hr />
<h2><%=new Date().toString() %></h2>
</body>
</html>

*/

Comments