IT 면접족보/자바 면접족보

자바 수업 정리 -HTML | doGet(),doPost(),Context Path(25 일차)

낙산암 2020. 12. 30. 16:23

1. html 이란 무엇인가?

  • 웹페이지를 만들기 위한 언어(웹 문서를 기술하는 언어)로 웹브라우저 위에서 동작하는 언어다.

  • Hyper Text Markup Language의 약자

    HT - HyperText 문서와 문서가 링크로 연결되어 있다. M - Markup 태그로 이루어져 있다. (웹문서를 표현하기 위해 태그들로 구성되어 있다.) L - Language 언어

  • html 파일의 확장자명으로 html 혹은 htm을 사용한다.

  • w3c가 html의 국제 표준화 기구이다.

    https://www.w3.org/

  • 웹의 기원

2. CSS란 무엇인가?

  • Cascading Style Sheets의 약자
  • HTML문서를 디자인적으로 보기 좋게 만들어 정보 전달을 효율적으로 하기 위해 만들어진 것
  • HTML은 정보를 가지고 있고, CSS는 화면상의 레이아웃등을 컨트롤 한다.

3.아래의 태그에 대하여 설명하시오.

<del>

  • Defines text that has been deleted from a document

    이렇게 보이게 만들 때 쓰는 태그

<ins>

  • Defines a text that has been inserted into a document

    이렇게 보이게 하는 태그

<span>

  • Defines a section in a document

<span>태그는 <div>태그처럼 특별한 기능을 갖고있지 않고, CSS와 함께 쓰인다.

4. block 태그와 non block 태그에 대하여 설명하시오.

 

display 에는 두가지 값이 있다. block-level elements & inline(non block) elements

block tag (= block-level element)

  • block-level element는 항상 새로운 라인에서시작하고, 한 라인을 완전하게 차지한다.
  • 브라우저는 보통 블록 레벨 요소로 지정한 line을 전부 차지하고 강제 줄바꿈(개행) 시킨다.
  • 대표적으로 우리가 배운것 중에는 <h1>~<h6>, <li>, <ol>, <ul>, <p>, <table>, <div> 등이 있다.

non block tag (= inline element)

  • 인라인 요소는 컨텐츠의 흐름을 끊지 않고, 태그에 할당된 공간만 차지한다.

  • 한줄을 차지하지 않고 요소 공간만 차지하며, 줄바꿈(개행)을 강제하지 않는다.

  • 인라인 요소는 데이터와 다른 인라인 요소만 포함할 수 있고, 다른 블록 요소는 포함할 수 없다.

  • 대표적으로 우리가 배운 것 중에는 <a>, <b>, <br>, <del>, <i>, <img>, <ins>, <mark>, <sup>, <span>등이 있다.

block tag <div> vs inline tag <span> ← 대표적 예시

5. get 방식과 post 방식에 대하여 설명하시오. (필수!) ⭐️

get방식:

post방식

  • get방식과 달리 긴 내용(데이터)을 url에 노출하지 않고 바디 영역(html 바디 아님) 안에 숨겨서 들어간다.(보안이 필요한 상황에 적합)
  • 전송 길이에 제한이 없음 → 비교적 많은 양의 민감한 데이터를 보내야 할 때 사용 (양식을 작성한 후 데이터를 보내거나 로그인 ID, 암호를 보낼 때) → 데이터를 보내면서 요청을 하면 다음과 같이 주소로 연결됨(아래 예시에서 설정한 것처럼) → http//localhost:8282/java_hello3/hw

6. 컨텍스트 패스(Context Path)란 무엇인가?

  • WAS(Web Application Server)에서 웹 어플리케이션을 구분하기 위한 path

  • JSP에서 contacst는 project를 의미 (contacst = project) (다른 분야에서는 contacst가 전혀 다른 의미로 사용되기 때문에 주의!)

이클립스에서 프로젝트를 생성하면, 자동으로 서버 폴더에 있는 server.xml에 추가된다. (톰캣이 컨택스트로 관리) 그리고 서버를 중단시키면 내용이 사라진다. 서버가 돌아가고 있기 때문에 server.xml에서 아래의 내용이 확인 가능 한것! (서버 폴더는 함부로 건들지 말자!)

 

7. 아래의 객체에 대하여 설명하시오.

HttpServletRequest request, HttpServletResponse response 두 파라미터는 서버가 실행되면 반드시 객체가 생성되어 넘어온다.

객체는 WAS(Tomcat)가 생성한다.

  • 클라이언트(웹브라우저)가 요청을 하면 응답을 받기 위해서는 서버는 클라이언트의 주소를 알고 있어야한다. 그러기 위해 웹 브라우저는 http protocol에 맞게 수많은 정보를 서버에 전송한다.
  • 서버는 그 정보를 받아서 가지고 있고(Request 객체) 응답을 보내기 위해서 객체로 만들어 저장한다.
  • 응답을 보내는 내용을 Response 객체에 담는다.
  • 이렇게 만들어진 객체를 프로그래머에게 넘겨 줌 (함수 사용)

공통점

  1. 둘 다 javax.servlet.http 패키지의 인터페이스이다.
  2. ServletRequest 및 ServletResponse 인터페이스에서 파생된다.
  3. 두 객체 모두 생성되어 컨테이너별로 Servlet의 service () 메서드에 암시 적으로 전달된다.

HttpServletRequest

  • HttpServletRequest 의 역할은 사용자 이름 및 암호와 같이 웹 클라이언트가 보낸 데이터 를 수신하는 것 → request 정보를 서블릿에게 전달하기 위한 목적으로 사용

  • 클라이언트가 서버에 데이터를 요청할 때, 요청에 대한 기능과 속성을 가지고 있는 객체

    클라이언트의 IP 주소, 사용 된 프로토콜 클라이언트 등과 같은 다른 클라이언트 정보를 검색 하는 많은 getXXX () 메서드 가 제공되며 브라우저의 이름, 버전 등과 같은 클라이언트의 브라우저에 대해 알 수있는 메서드도 포함된다.

  • 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)