HTTP 프로토콜 및 Request 요청 객체
3202 단어 JavaEE
HTTP 프로토콜 Request 요청 객체
http 프로토콜
개술
협의: 구속된 대상이 모두 준수해야 하는 규칙을 규정하였다.
http 프로토콜: 인터넷에서 가장 광범위하게 사용되는 브라우저와 서버 간의 프로토콜(계약)
이 계약은 브라우저가 서버에 접근할 때 따라야 할 내용과 서버 응답 브라우저가 따라야 할 내용을 규정하고 있다
역할
브라우저가 서버에 접근하면 어떤 내용을 전달해야 하고 이 내용을 전달할 때의 형식을 강제로 규정하였다
서버 응답 브라우저가 어떤 내용과 이 내용에 응답할 때의 형식을 강제로 규정한다
계약에 명시된 내용(캡처 도구)
요청 내용: 브라우저가 서버에 보낸 데이터(오늘)
응답 내용: 서버가 브라우저에 응답하는 데이터(내일)
요청 내용
요청 내용:
( ) (key:value) ( )
참고 요청 컨텐트의 경우
get 요청체가 없는 모든 폼의 데이터를 요청 줄에 제출합니다 (주소 표시줄)
post 요청체가 제출된 모든 폼 데이터는 요청체에 있습니다. (주소 표시줄에 없습니다.)
면접문제 get 제출과post 제출의 차이는?
get
post
get post
어떤 상황에서 액세스 서버가 get 제출입니까?어떤 상황에서 서버에 접근할 때post 제출합니까?
method post post , get
http 요청 프로토콜의 구성 내용
요청 행
POST /day_02/sd1 HTTP/1.1
요청 헤더
:
:Referer User-Agent
Referer:
User-Agent:
요청체
post
질문: 요청행 요청 헤더 요청체의 데이터는 최종적으로 서버 서버에 전달되어야 합니다. 어떻게 이 데이터를 얻습니까?
request , request api
Request 요청 객체
개술
request 대상은 브라우저 측의 요청을 대표합니다. 브라우저 측이 HTTP 프로토콜을 통해 서버에 접근할 때 HTTP 요청의 모든
정보는 모두 이 대상에 봉인되어 있으며 개발자는 이 대상의api를 통해 고객이 브라우저를 통해 전달한 데이터를 얻을 수 있다
역할
역할: 모든 페이지 데이터를 봉인하는 데 사용 (요청 줄 요청 헤더 요청체)
1.
2.
3.
1. 요청행 데이터를 가져오는api개술(요청방식으로 접근하는 자원 프로토콜 버전)
1.( )String getMethod()
2.( )String getRequestURI()
3.( )StringBuffer getRequestURL() URL
4.( )String getProtocol()
5.( )int getLocalPort()
6.( )String getRemoteAddr() ip
Localhost:ipv6
127.0.0.1:ipv4
7.( )String getContextPath() :/day_02
2. 요청 헤더 데이터의api 개요 가져오기(키 값이 키/value에 대한 데이터)
1.getHeader(String key) key value
:Referer ( null: )
:User-Agent
2.( )Enumeration getHeaderNames()
3. 요청체 데이터 가져오기api 개요(모든 브라우저가 제출한 폼 데이터)
1.String getParameter("name ")
2.String[] getParameterValues("name ")
3.Map getParameterMap()
:key: name
, get post
:request.setCharacterEncoding("utf-8");
4.request 요청 대상의 기타 역할
용기 데이터 액세스로 삭제하는 방법: (request는 역 대상이라고도 부른다)
1.void setAttribute(String name, Object o)
2.Object getAttribute(String name)
3.void removeAttribute(String name)
주의: Request 이 세 가지 방법도 여러 servlet 간의 데이터 전달을 할 수 있습니까?
질문: 브라우저가 두 개의 다른 servlet에 접근했을 때 우리가 원하는 데이터 효과를 얻을 수 없음을 발견합니다
원인: 요청한 번에 리퀘스트 대상을 만들고 응답은 삭제합니다. 같은 리퀘스트 대상을 사용하려면 리퀘스트 전송을 배워야 합니다.
해결:요청을 사용하여 전달
전송 요청: 한 servlet에서 다른 servlet에 접근할 수 있습니다
request.getRequestDispatcher("/servlet ").forward(request,response);
BeanUtils 키트 사용
수요: 개발 과정에서 우리는 맵의 데이터를 대상 속성에 전달하는 수요가 자주 발생한다. 만약에 자신이 전환 실현을 하면 너무 번거롭다. 우리는 제3자의 도구 패키지를 빌려 실현할 수 있고 조작이 간단하고 편리하다.
BeanUtis 키트 사용
1 commons-beanutils-1.8.3 commons-logging-1.1.1
2 api BeanUtils.populate( ,map);
: map(key) ( )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【intra-mart】Java 클래스 파일 등이 Import 할 수 없게되었을 때의 대처법오늘은, intra-mart로 Java의 클래스 파일등이 Import 할 수 없게 되었을 때의 대처법을 기재합니다. JavaEE 개발을 할 때 자신도 같은 상황이 되었습니다. 비망을 위해 기사로하고 있습니다. 【전제...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.