Web Dev/JSP

JSP 마무리 :: 질문으로 정리해보자

HJPlumtree 2022. 11. 27. 19:56

JSP에서 기억하 싶은 내용

 

 

Q. JSP 기술 특징

  • JSP 페이지에 대한 요청 처리는 서버에서 수행
  • JSP 페이지는 서블릿 클래스로 변환된다
  • JSP는 플랫폼에 독립적인 웹 응용 개발 기술이다

 

 

Q. Eclipse로 개발한 동적 웹 프로젝트를,

WAR 파일로 만들어서 톰캣에 배포할 때 어디에 배포하나?

=> 톰캣설치폴더/webapps

 

 

Q. Eclipse 이용한 프로젝트 '배포'가 의미하는 것?

=> 개발한 웹 프로젝트를 웹 컨테이너에 내보내기

 

Q. 이런 메시지는 요청/응답 메시지의 어디에 포함될까?

HTTP/1.1 200 OK

=> 응답 메시지의 시작 라인

 

 

Q. 클라이언트 요청 처리 위해,

톰캣이 doGet() or doPost() 메서드에 전달해 주는 인자는?

=> request와 response 객체

 

 

Q. '확인' 버튼 눌렀을 때 발생하는 요청을 서블릿으로 이용하고자 한다.

HelloServelt 클래스에서 반드시 구현해야 하는 메소드는?

<form action="HelloServelt" method="post">
  <input type="text" name="name">
  <input type="submit" value="확인">
</form>

=> doPost()

 

 

Q. 클라이언트에서 받은 요청 헤더 중 "User-Agent" 값 읽기 위한 방법은?

String value = request.getHeader("User-Agent")

 

 

Q. 다음 코드에 대한 설명은?

<%@ page contentType="text/html; charset=euc-kr" %>

=> 응답 문서의 MIME 타입과 문자 인코딩을 지정

 

 

Q. 메서드 선언을 위한 코드는?

=> <%! 메서드 %>

 

 

Q. 커스텀 메서드 "sum"으로 합을 출력하는 문법은?

=> <%= sum(100) %>

 

 

Q. web.xml 파일에는 웹 앱에 사용되는 각종 설정 정보를 저장한다

다음 같은 초기화 파라미터를 설정할 수 있는데, 필요한 내장객체는?

<content-param>
  <description>개발자 이름</description>
  <param-name>devName</param-name>
  <param-value>Santa</param-value>
</content-param>

=> application 내장 객체

 

 

Q. getBufferSize(), flush(), isAutoFlush(), clear(), print()를 제공하는 내장 객체는?

=> out

 

 

Q. 최초 서버에 생성된 쿠키는 클라이언트로 전송된다.

무슨 내장객체가 어디에 담아서 전송하나?

=> response 내장객체가 응답 헤더(header)에 추가

 

 

Q. 로그인 처리에 필요한 작업은?

=> session 객체에 사용자 확인을 위한 속성 추가

 

 

Q. 로그아웃 처리시 세션을 무효시키는 코드는?

=> <% session.invalidate() %>

 

 

Q. 두 페이지 간의 자바빈 객체를 공유하기 위한 영역(scope)은?

=> request

 

 

Q. JSTL 코어 라이브러리 사용하기 위한 문법은?

=> <%@ taglib prefix="c" url="http://java.sun.com/jsp/jstl/core" %>

 

 

Q. 태그가 위치한 부분에

해당 페이지의 실행 결과를 포함시키지 위한 방법은?

<jsp:include page="yohoho.jsp" %>

 

 

Q. <jsp:foward ... /> 액션의 처리의 특징

  • 현재 페이지 실행 종료되고 새로운 페이지로 이동된다
  • 포워딩 일어나기 전에 버퍼의 내용이 지워진다
  • 포워딩 전에 결과가 전송된 적 있으면 예외가 발생한다

 

 

Q. 세션의 유효시간에 관한 설명

  • web.xml 설정 파일에서 <session-timeout> 태그를 이용하면,
    유효시간 기본값을 분단위로 설정할 수 있다
  • session.setMaxInactiveInterval() 메서드 사용해서,
    유효시간을 초 단위로 설정할 수 있다
  • 유효시간을 음수로 하면 세션은 무제한 유지된다

 

 

Q. "member" 객체가 가진 "name" 속성의 값을 출력하기 위한 코드는?

=> ${member.name}

 

 

Q. ${requestScope.name}을 대체할 수 있는 코드는?

=> <%= request.getAttribute("name") %>

 

 

Q. 표현 언어에 대한 특징

  • 스크립트릿, 표현식, 선언부에서 표현 언어를 사용할 수 없다
  • 기본 사용 형식은 ${ 수식 }
  • 표현 언어 사용하면 JSP 페이지에서 스크립트 사용을 줄일 수 있다 
  • 표현식을 대신해 사용된다
  • 표현 언어의 내장객체와 JSP 내장객체는 다르다
  • 스크립트 요소 내부에서 사용한다

 

 

Q. 표현 언어 수식에서 Java 메소드 사용하려면 TLD 파일 작성해야한다.

이 .tld 파일의 특징은?

  • 태그 라이브러리에 포함된 태그 정보를 기술한 XML 형식의 파일
  • 자바 메서드의 정보를 <function> 태그 안에 기술
  • <uri> 태그를 사용해서 .tld 파일의 축약 이름을 정할 수 있다

 

 

Q. MVC 패턴의 처리과정

  1. Browser에서 시작
  2. Controller(서블릿)
  3. Model(자바빈)
  4. DB
  5. Model(자바빈)
  6. Controller(서블릿)
  7. View(JSP)
  8. 다시 Brower로 보내준다 

 

 

Q. 사용자가 보낸 "name" 파라미터를 읽기 위한 메소드는?

=> request.getParameter("name")

 

 

Q. 서블릿에 저장했던 "result" 속성을 읽고 출력하기 위한 코드는?

=> <%= request.getAttribute("result") %>

 

 

Q. SQL 구문을 실행하기 위한 코드는?

=>

pstmt = con.prepareStatement(query)
ResultSet rs = pstmt.excuteQuery()

 

 

Q. MySQL과 연동하는 JDBC 프로그래밍 작업은?

=> MySQL 사이트에서 Connector/J를 다운받아 설치