TIL(2023.09.26)

JAKE·2023년 9월 26일

TIL

목록 보기
38/48
post-thumbnail

🏃‍♂️What I learned

1. Servlet

웹 서비스를 위한 자바 클래스(자바로 HTML) 구성 -> 동적 서비스

정적 서비스 : html, css, js (고정된 결과만 보여줌)
동적 서비스 : 요청할 때보내는 값에 따라 결과가 달라짐

  • 둘의 서버가 다름
    정적(웹서버) : ex) 아파치, NginX
    동적(WAS Web Application Server, Servlet Container) : ex) 톰캣

2. 서버 제출 방식

- form 태그 : 내부에 작성된 input 값을 지정된 경로로 제출
- action : 제출할 경로
- method : 제출 방법 (GET(보안에 취약) / POST)
  1. GET
    - url 주소 끝에 파라미터로 포함되어 전송(query string)
    : url 끝에 "?"를 붙이고 그다음 변수명1=값1&변수명2=값2 ...

    [장점]

    • 단순함
    • 캐싱 가능(caching, 저장)
      -> 주소 저장 (북마크, 즐겨찾기, 주소 공유)

      [단점]
    • 글자수 제한
    • 보안에 취약(비밀번호 주소에 보임)
  2. POST

    - get방식과는 다르게 전달되는 값을'BODY(HTTP BODY)'에 담아서 전달

    json타입
    {
    "name1" : "value1"
    "name2" : "value2"
    "name3" : "value3"
    }

    [장점]
    - 길이 제한이 없음
    - 데이터를 숨겨서 전달(보안성 향상)

    [단점]
    - caching 불가 (북마크 하면 원하는 페이지를 볼 수 없음)
    - 서버에서 추가적인 문자 인코딩 처리 필요


3. JSP(Java Server Page)

- 자바 코드가 들어가 있는 HTML 코드
  • Servlet
    "웹 서비스 기능을 해주는 자바 클래스"를 말하는 것으로
    자바 소스코드 속에 HTML 코드가 들어가는 형태
    -> HTML 문서를 작성하는데 복잡하고 번거롭다는 단점이 있음.

  • JSP
    복잡한 Serlvet을 좀 더 간단히 사용할 수 있음.
    Servlet과 반대로 HTML소스코드 속에
    자바 소스코드(<% %> 또는 <%= %>)가 들어가는 형태.
    컴파일을 통해 클래스 파일로 변환되어 웹 서버(WAS)에서 실행됨.

동작 순서
1. 개발자 요청이 서블릿 컨테이너로 전달 ->
2. 컨테이너는 (HTTPRequest, HTTPResponse 객체 생성 후) dopost() 혹은 doget() 메소드를 호출 ->
3. HTML문서 부분을 JSP로 분리 ->
4. JSP 로직 수행 후 컨테이너로 Response 전달 ->
5. JSP 수행 결과와 Servlet이 결합하여 .class 파일 생성

0개의 댓글