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

좋은 웹페이지 즐겨찾기