일상/일기장

TIL 22.01.16

jmaster 2022. 1. 16. 23:34

JSP

RequestDispatcher

현재 request에 담긴 정보를 저장하고 있다가 그 다음 페이지 그 다음 페이지에도 해당 정보를 볼 수 있게 저장하는 기능

메소드는 2가지(include, forward)가 있다.

sendReDirect vs RequestDispatcher

sendReDirect: 페이지를 이동 시키긴 하지만 바인딩 하지 않으므로 데이터는 가져가지 않는다.

RequestDispactcher : 바인딩을 하여 데이터까지 해당 주소로 넘겨버린다.

include vs forward

공통점: 요청 전달 반식은 동일하다

ex): <jsp:forward page=”경로”/> : Forward 스크립트

<jsp:forward page=”경로”/> : Include 스크립트

차이점 : 제어권에서 차이가 난다.

include: 중간에 포함된다는 뜻

include 구문을 만나면 해당 스트림을 그대로 유지한채 include 되는 URL의 데이터를 그 뒤에 이어 쓴다. include 문 종료 후에 해당 스트림을 그대로 유지한다.

forword: URL로 제어권을 넘긴다.

forward 된 페이지로 넘어간다.

Web vs WAS

Web

→ 인터넷을 기반으로 한 정보를 공유 검색할 수 있게하는 서비스

→URL(주소), HTTP(통신 규칙) HTML(내용)

Server

→클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

Web Server

→인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터

방식

클라이언트(브라우저)

: 웹서버에게 주소(url)을 가지고 통신규칙(http)에 맞게 요청하면 알맞은 내용(html)을 응답 받음

서버(웹서버)

: 클라이언트의 요청을 기다리고, 웹 요청(http)에 대한 데이터를 만들어서 응답, 이때 데이터는 웹에서 처리할 수 있는 html, css 이미지 등 정적인 데이터로 한정

WAS(Web Application Server): 웨에서 실행되는 응 용프로그램

→뤱 앱플리케이션과 서버 환경을 만들어 동작시키는 기능 제공하는 소프트웨어 프레임워크

→웹 애플리케이션을 실행시켜 핑요한 기능을 수행하고 그 결과를 웹 서버에게 전달.

→php, jsp, asp 같은 언어들을 사용해 동적인 페이지를 생성할 수 있는 서버

→프로그램 실행 환경과 데이터베이스 접속 기능 제공

→비지니스 로직(유저의 눈에 보이지는 않지만, 유저가 바라는 결과물을 올바르게 도출할 수 있게 짜여진 코드 로직)수행 가능

→웹서버 + 웹 컨테이너

  • 컨테이너 : jsp, servlet을 실행시킬 수 있는 소프트웨어

→자바계열에선 웹 애플리케이션 컨테이너라 부름

  • 웹 애플리케이션 컨테이너 : 웹 애플리케이션이 배포되는 공간

Web Server VS WAS : 상황에 따라 변하는 정보를 제공할 수 있는가

 

Web Server: 정적인 컨테츠만 반환

WAS : 애플리케이션을 돌리고 DB를 연결하고 동작을 수행시키고 난후 그 결과를 반환

HTTP 상태 코드

→ 1XX(정보) :요청을 받았으며 프로세스를 계속할 때 사용

→2XX(성공) : 요청을 성공적으로 받을 때 사용

→3XX(리다이렉션) : 리다이렉션이 완료됐고 이 요청을 끝내기 위해 클라이언트는 이후 어떤 조취를 취해야 한다.

→4XX(클라이언트 오류) : 클라이언트(브라우저)에서 요청시 오류(문법 오류 등..) 있을때 사용

ex) 404 : 존재하지 않는 페이지에 대해 요구했을 때 나타나는 에러

400 : 잘못된 문장으로 요청을 했을때 나타나는 에러

403 : 사용자의 접근 권한이 없는 페이지에 접근하려고 했을 때 나타나는 오류

408 : 서버 요청의 대기 시간이 길어지고 초과됐을 때 나타난다.

→5XX(서버 오류) : 서버에서 오류가 있을때

ex) 500 : 서버 내부의 오류가 있음을 알려준다

503 : 유지보수를 위해 서버가 중단되거나 과부하가 걸리면 발생한다.

508 : 서버 요청 처리시 무한 루프가 존재할 때 나타난다

520 : 알수 없는 오류가 발생할 때 나타난다.

스크립팅 요소(Scripting Element)

1.스크립틀릿(scriptlet) : Java 명령을 작성하는 영역(_jspService 메소드의 명령)

ex)<% Java Statement %>

2.선언문(Declaration) : 필드 또는 메소드(요청 처리와 응답)를 선언하는 영역(서블릿 클래스의 선언문)

ex)<%! 필드 또는 메소드 선언 %>

3.표현식(Expression) : Java에서 사용하는 값을 출력하는 영역(_jspService 메소드의 명령)

ex)<%={변수명|연산식|메소드호출}%>

 

지시어(Directive)

1.page Directive : JSP 문서(웹프로글램)에 필요한 정보를 제공하도록 지시

<%@page contentType=mimeType” pageEncoding=”encoding” ...%>

2.include Directive : JSP문서에 외부 파일의 코드를 포함하도록 지시

<%@include file=”URL” %J

3.taglib Directive : JSP 문서에 태그 라이브러리 파일의 JAVA 태그를 포함하도록 지시

<%@tablib prefix=”namespace” url=”tldId”%>