[ 퀴즈로정리합시다 ]_ 정답 _1 장 1. 1 JSP 해설 : JSP는웹애플리케이션을지원하는 Java 지원기술입니다. JSP = HTML + JSP 태그 ( 스크립트릿 ) 웹서버는클라이언트의요청을받으면해당처리를하여클라이언트에결과페이지를응답해줄수있도록구성된서버또는그서버가설치된컴퓨터를의미합니다. 웹애플리케이션서버는웹서버만으로는데이터베이스와연동되어처리되어야하는동적인데이터들을처리해낼수없기때문에 DBMS와웹서버사이에서제어를해주는프로그램을말합니다. BEA사의웹로직 (WebLogic), IBM의웹스파이어 (WebSphere), SUN사의 iplanet, Oracle 9iAS, 티맥스의제우스 (jeus) 주소입력란에서직접요청을하는경우 form 태그의 method 속성값을 get으로주거나생략할경우 <a> 태그에의해서하이퍼링크가걸린경우 서블릿은자바클래스내부에서자바코드가기본이되고출력스트림을통해 HTML 코드를문자열형태로기술하여클라이언트에전송하고 JSP는 HTML 코드가기본이되고스크립트릿안에자바코드를기술합니다. 6. 인코딩은문자셋을컴퓨터가이해할수있는바이트와의매핑규칙을말합니다. 예를들면 ASCII Code에서 ABC 등은문자셋이고 A는코드 65, B는코드 66 등바이트순서와매핑한것이인코딩입니다. 따라서문자셋을어떻게매핑하느냐에따라하나의문자셋이다양한인코딩을가질수있습니다. 컴퓨터는영미권에서만들어졌기때문에영어를표현하는경우는아무런문제가없지만다른문자를사용하는나라에서자국의언어로표현하려면문제가되는경우가있습니다. 그 - 1 -
렇기때문에한글을표현하는인코딩을적용하여문서를만들어야합니다. 한글인코딩은 MS99( 윈도 OS에서기본으로사용 ), UTF-8 등이있습니다. 10.0.1 8. server.xml 9. 1 _ 장 1. init(), doget() 혹은 dopost(), destroy() 우선객체가생성되면서 init() 메소드가단한번호출됩니다. init() 메소드에서는주로초기화작업을합니다. 그후에는클라이언트의요청이있을때 doget() 혹은 dopost() 메소드가실행됩니다. 여러클라이언트가동시에요청을하더라도스레드가생성되므로동시에 doget() 혹은 dopost() 메소드가실행되기때문에수행속도가빠릅니다. 서블릿이더이상서비스를하지않을경우 destroy() 메소드가호출되는데예를들면서블릿컨테이너가종료 ( 톰캣을재가동 ) 되거나서블릿내용이변경되어재컴파일해서클래스파일이바뀌는경우입니다. 클라이언트에게전송할메시지중한글깨짐을방지하기위한방법 response.setcontenttype("text/html; charset=utf-8"); 혹은 response.setcharacterencoding("utf-8"); 입력폼에서입력된한글을깨지지않도록하는방법 get 방식일경우, 서버설정파일인 server.xml 파일에서첫번째등장하는 <Connector> 태그를찾아서 URIEncoding 속성을추가해야합니다. post 방식일경우, request.setcharacterencoding("utf-8"); - -
개발자가서블릿이름을바꾸더라도사용자는동일한 URL로접근할수있도록하기위함입니다. 정답 : 3 해설 : Servlet의멤버변수는 Servlet의객체생성시메모리영역을할당하므로한번할당된 Servlet의멤버변수는 Servlet 객체가메모리에서해제될때까지유효합니다. 요청시마다할당되는것이아닙니다. 정답 : 3 해설 : Servlet은 PHP나 ASP와달리스레드 (Thread) 를근간으로하므로, 요청이올때마다새로운프로세스를생성하지않습니다. 이런특징으로인해서버의자원을보다효율적으로운영할수있어성능향상을이룰있는것입니다. 6. 정답 : 1 해설 : Javascript는웹애플리케이션의클라이언트측자바기술입니다. HTML의정적인페이지에동적인기능을부여하는기술입니다. 정답 : 3 해설 : HTML의통신규약인 HTTP를이용하여사용자요청을처리합니다. 규약중 Get 방식의사용자요청을처리하기위한 Servlet 메소드는 doget() 메소드입니다. 8. 정답 : 해설 : Apache 웹서버의환경설정파일은 httpd.conf 입니다. server.xml은 Tomcat 서버의환경설정파일이며 logj.xml은 LogJ 툴의환경설정파일입니다. build.xml은 Ant 툴의환경설정파일입니다. 9. 정답 : 해설 : 여러 jsp 에서사용되는공통된 javascript는.js 확장자로묶어서관리하는것이효 - 3 -
과적입니다. 10. 정답 : 1 - X, - O, 3 - X, - O 11. 정답 : 1 정답 : 1 value, maxlength 1 정답 : 1 <select>, multiple, 3 <option>, selected 1 정답 : select, textarea 1 정답 : http://www.test.com/test.jsp?userid=pinksung&pwd=13&page=1 16. 1 1 1 action, method 18. 19. 0. 정답 : 해설 : JSP는요청시마다 Servlet으로변환되는것이아니며 JSP가변환되어생성된 Servlet은 JSP가수정될때까지한번변환된 Servlet이계속사용됩니다. 1. 정답 : 해설 : doget() 메소드의매개변수사양은 doget(httpservletrequest, HttpServletResponse) 이다. - -
정답 : 해설 : 공백은 + 문자로전달된다. _3 장 1. JSP는 Java Server Page의약어이고, 인터넷을사용하는사용자에게정보를제공하기위해서는 HTML 태그를사용하여웹브라우저내에정보를표시하는데 JSP에서는이러한 HTML 태그를사용할수있어웹애플리케이션의프레젠테이션역할을합니다. JSP는 JSP 에서만사용가능한다양한태그 ( 예를들면스크립트릿과같은것 ) 를이용하여쉽게웹프로그래밍을할수있도록합니다. 1 브라우저에서 JSP 페이지 ( mycount.jsp ) 를웹서버에게요청합니다. 웹서버는 JSP에대한요청을서블릿컨테이너에게넘깁니다. 그러면웹컨테이너는해당 JSP를찾아서서블릿파일 (mycount_jsp.java) 을생성합니다. 3 서블릿파일은컴파일되어서블릿클래스파일 (mycount_jsp.class) 을생성합니다. 컴파일된서블릿클래스파일을웹서버로보냅니다. 5 사용자는서블릿의출력결과인 HTML 형태로응답결과를보게됩니다. 정답 : 1 해설 : exception 이라는내장객체변수를사용하기위해서는 page 지시문의 iserrorpage - 5 -
속성의값을 true 로설정하여야합니다. 정답 : Number 1 Number Number 3 6. 정답 : 3 해설 : 1은 JSP의지시자 (directive) 태그의 extends 속성에대한설명입니다. 는 session 속성에대한설명입니다. 은 contenttype 속성에대한설명입니다. JSP에서사용될지역변수선언은수행문태그로구현하여야합니다. 정답 : 해설 : import 속성은두번이상정의될수있습니다. 8. 정답 : 3 해설 : 선언문의내용은 Servlet의멤버가되므로 _jspservice() 메서드안에들어가지않는다. 9. 정답 : 1 - <%!, - %>, 3 - <%= multiply(10,5) %> 10. 11. 1 1 1 3 1 1-6 -
1 정답 : 해설 : JSP는요청시마다 Servlet 으로변환되는것이아니며 JSP가변환되어생성된 Servlet은 JSP가수정될때까지한번변환될 Servlet이계속사용됩니다 16. 정답 : 1 - O, - O, 3 - X, - O, 5) - O, 6) - X _ 장 1. 태그의종류 설명 <jsp:forward> 다른사이트로이동할때사용한다. 페이지의흐름을제어할때사용한다. <jsp:include> 정적혹은동적인자원을현재페이지의내용에포함시킨다. 페이지를모듈화할때사용한다. <jsp:param> <jsp:forward>, <jsp:include>, <jsp:plugin> 과같이사용되어전달인자를추가할때사용한다. <jsp:usebean> 빈 (Bean) 을생성하고사용하기위한환경을정의하는액션태그이다. <jsp:setproperty> 액션은빈에서속성값을할당한다. <jsp:getproperty> 액션은빈에서속성값을얻어올때사용한다. request 웹서비스를위한클라이언트와웹서버사이의요청에관련된정보는 request 객체에저장되어관리됩니다. response 클라이언트에대한응답처리를하는객체인 response는실행결과를브라우저로되돌려줄때사용하는내장객체입니다. out 서버에서클라이언트로열려있는출력스트림을의미합니다. page 하나의 JSP 페이지를처리할때해당영역을지시할경우사용합니다. - 7 -
config 서블릿관련환경설정과관련된객체입니다. session 세션과관련된속성과메소드를재공해주는객체입니다. application 하나의웹애플리케이션을관리하고웹애플리케이션안에서의자원을공유합니다. pagecontext 외부환경정보를제공하는객체입니다. exception 예외처리를위한객체입니다. 내장객체 패키지 클래스 request javax.servlet.http HttpServletRequest response javax.servlet.http HttpServletResponse application javax.servlet ServletContext out javax.servlet.jsp JspWriter 1 request 6. 정답 : 해설 : page는 java.lang.object 형을참조하는내장객체변수이다. 정답 : 1 - X, - O, 3 - X, - O, 5) - O, 6) - X 8. 해설 : 요청을다른자원으로완전히넘기고자할때사용되는액션태그는 <jsp:forward> 입니다. - 8 -
9. HttpRequest, HttpResponse, HttpSession, ServletContext 10. 3 11. 3 1 1 정답 : 1 request.getparameter("id"), request.getparameter("pw"), 3 request.getparameter("desc") 1 정답 : 1 request.getparameter("edu"); request.getparameter("na"); 3 request.getparametervalues("like"); likes.length 5 <%=likes[i]%> 1 정답 : sendredirect() 16. _5 장 1. 쿠키를사용하는가장주된이유는간단한정보를클라이언트에저장함으로써서버의부하를크게줄일수있습니다. 쿠키는웹브라우저 ( 클라이언트 ) 의정보를웹브라우저 ( 클라이언트 ) 에저장하기때문입니다. 쿠키의문제점은쿠키는웹브라우저가거쳐간웹사이트및개인의정보가기록되기때문에개인의사생활을침해할소지가있고보안문제를유발하기때문에웹브라우저자체에쿠키거부기능이있습니다. 쿠키거부기능이브라우저에설정되어있으면쿠키본래의목적인브라우저와의연결을지속시키는기능을수행할수없게됩니다. 이것이쿠키의가장 - 9 -
치명적인단점입니다. 비교함수 쿠키 세션 사용클래스및인터페이스 class interface javax.servlet.http.cookie javax.servlet.http.httpsession 관련내장객체 response, request session 저장값유형 문자열 (String) 만 Object 정보크기 총 1.M로제한 제한없음 보안 취약함 강력함 만료시점 쿠키저장시설정, 설정하지않으클라이언트로그아웃, 면브라우저종료시설정한기간동안반응없을때 HTTP 프로토콜은웹브라우저 ( 클라이언트 ) 의요청에대한응답을하고나면해당클라이언트와의연결을지속하지않습니다. 그래서이전작업이나현재작업중인것에대한정보를가지고있지않습니다. 이런부분을해결하기위해서세션을활용하면웹서버에웹브라우저의정보를저장해서이후에계속되는웹브라우저의요청시해당웹브라우저의정보와서버에저장되어있는각각의웹브라우저에대한정보를비교해서동일한웹브라우저로부터온요청을판단할수있습니다. 로그인된사용자나, 장바구니등의서비스를제공하기위해서지속적인상태관리가필요한데상태관리를위해서세션을이용합니다. 해설 Cookie는저장하고자하는정보를브라우저로보내고, 이를브라우저가받아서사용자 PC의특정영역에저장합니다. 3 해설 Cookie는클라이언트의고유한정보를브라우저가받아서 PC의특정영역에저장하게됩니다. 6. Cookie 해설 Cookie는클라이언트의고유한정보를브라우저가받아서 PC의특정영역에저장하게됩니다. Session은클라이언트의고유한정보를서버의메모리에저장하게됩니다. - 10 -
해설 HttpServletRequest는 Cookie를추출할때 HttpServletResponse는 Cookie를설정할때사용합니다. Cookie에대해서는 Cookie 객체가사용됩니다. ServletContext는 Cookie 기술과관련이없습니다. 8. 3 setattribute() 해설 HttpSession 객체에일정시간동안유지하려는정보를등록합니다. 9. 1 getsession() 해설 getsession() 는 HttpSession 객체를리턴하는기능으로 HttpServletRequest 에존재한다. 10. 11. 3 1 1 1 response.addcookie _6 장 1. 정보덩어리로데이터저장소라고정의할수있습니다. 프로그램에서사용되는정보가여러개라면이를변수에저장하고필요할때마다개별적으로접근해서사용하기보다는자바빈을사용하면필요한정보를객체를구성하는멤버로기술해두고한꺼번에데이터를접근해서사용할수있습니다. - 11 -
member.getname(); member.setname(" 전수빈 ); 해설 : <jsp:include> 태그는다른프로그램 (JSP, Servlet) 의수행결과를포함하는기능의태그이다. 해설 : scope 속성은아래와같은적용범위를가집니다. page < request < session < application ServletContext는웹어플리케이션들이공통적으로관리하고참조할수있는정보를제공합니다. 6. 1 해설 : name 속성은 <jsp:setproperty>, <jsp:getproperty> 사용시에접근하고자하는 JavaBeans 객체의 id 명을지정하는용도로사용된다. 3 해설 : application은서버가기동되어있는동안유효한 JavaBeans 객체를생성하며 page는 JSP 가수행되는동안유효한 JavaBeans 객체를생성합니다. 그리고 session은생성된 HttpSession 객체가유지되는동안유효한 JavaBeans 객체를생성합니다. 8. 1 해설 : <jsp:usebean> 액션태그를사용하는두개의 JSP 간에, 생성되는 JavaBeans 객체를공유하려면반드시 id 속성의값도동일해야합니다. _7 장 1. 표현언어는값 ( 데이터 ) 을웹페이지에표시 ( 표현 ) 하는데사용되는태그이다. - 1 -
JSTL 태그라이브러리는 JSP는스크립트릿과자바코드등여러코드들이섞여서복잡한구조로되어있는데, 간결하고이해하기쉽게코딩을하기위해추가한태그를말한다. 보다간단하고이해하기쉽게 JSP 페이지를작성할수있다. ${paramvalues.season[0]} ${list[3]}, ${list[index+]} 6. sung yoonjung 3 <c:foreach> 8. <select name="season"> <c:foreach items="${list }" var="item"> <option value="${item}"> ${item} </option> </c:foreach> </select> _8 장 1. DBMS는 DataBase Management System의약어로오라클이나 MS SQL Server와같은데이터베이스관리시스템을말한다. JDBC는 Java Database Connectivity의약어로자바프로그램에서데이터베이스에일관된방식으로접근할수있도록 API를제공하는클래스의집합을말합니다. - 13 -
1) JDBC 드라이버로드 ) 데이터베이스와연결 3) SQL 문실행 ) 데이터베이스와연결을끊는다. 1) DriverManager ) Connection 3) Statement ) ResultSet Connection : 데이터베이스와연결과관련된인터페이스 Statement : 질의, 갱신실행과관련된인터페이스 ResultSet 결과물을가져오는인터페이스 6. JDBC 드라이버에대한이해를돕기위해서프린터기를예를들어보겠습니다. 여러분이프린터를구입했다고합시다. 이프린터를사용하려면드라이버를설치해야합니다. 드라이버는컴퓨터와프린터사이의의사소통을위한프로그램입니다. 우리가사용하려는 JDBC 드라이버도자바와오라클이라는데이터베이스사이의의사소통을위한프로그램으로이를자바에환경설정해야만오라클을자바에서사용할수있게됩니다. PreparedStatement는 Statemenet 객체로쿼리문을작성할경우복잡해지는쿼리문을보다간단하게작성할수있도록하기위해서제공되는객체이다. 8. - 1 -
9. 10. 정답 : JDBC(Java DataBase Connectivity) 11. 1 "oracle.jdbc.driver.oracledriver" url 3 uid pwd 5 pstmt=conn.preparestatement(sql); 6 pstmt.setstring(1, id); 7 pstmt.setstring(, passwd); 8 pstmt.setstring(3, name); 9 pstmt.executeupdate(); 10 conn.close(); 1 해설 : javax.sql 패키지는 JDBC의확장 API로서버측의커넥션풀링, 분산트랜잭션처리등을위한 DataSource /ConnectionPool/RowSet 등과관련된 API가추가되어있습니다. JDK 1.버전부터는기본적으로포함되어있으나, 이전버전에는없으므로별도로다운받아서설치해야합니다. 1 1 해설 : Java DataBase 프로그램을작성할때데이터베이스와연결을담당하는것은 JDBC 드라이버입니다. JDBC 드라이버는데이터베이스업체에서제공되고있습니다. 1 정답없음 1 16. - 15 -
1 _9 장 1. dbcp 3 1 <Resource name="jdbc/myoracle" auth="container" type="javax.sql.datasource" driverclassname="oracle.jdbc.oracledriver" url="jdbc:oracle:thin:@10.0.1:151:orcl" username="hr" password="hr" maxactive="0" maxidle="10" maxwait="-1" /> 5-1 List<BoardVO> getboardlist() 5- void insertboard(boardvo) 6. 접속인원이많은웹페이지에서데이터베이스의효율성과속도를높이기위해서사용합니다. Context initcontext = new InitialContext(); Context envcontext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/mydb"); Connection conn = ds.getconnection(); _10 장 - 16 -
1. 1 "post" "multipart/form-data" 3 "file" com.oreilly.servlet.multipartrequest getparameternames() _11 장 1. 모델 (Model) 뷰 (View) 컨트롤러 (Controller) - 17 -