세부 서블릿 API(HttpServlet, HttpServletRequest, HttpServletResponse)

시리즈 기사 디렉토리

Servlet의 작동 원리 - Crazy_xieyi의 블로그 - CSDN 블로그

Servlet 프로젝트(Maven)를 만드는 방법은 무엇입니까? _crazy_xieyi의 블로그 - CSDN 블로그

Tomcat 다운로드, 설치 및 use_crazy_xieyi 블로그 소개 - CSDN 블로그


기사 디렉토리


1. Http서블릿

Servlet 코드 작성할 때 첫 번째 단계는 클래스를 만들고 HttpServlet에서 상속 하고 일부 메서드를 재정의하는 것입니다.

메서드 이름 통화 타이밍
HttpServlet 인스턴스화 후 한 번 호출됨
파괴
HttpServlet 인스턴스가 더 이상 사용되지 않을 때 한 번 호출됩니다.
서비스
HTTP 요청이 수신 될 때 호출됨
도겟
GET 요청이 수신 될 때 호출됨 ( 서비스 메소드 에 의해 호출됨 )
두포스트
POST 요청이 수신 될 때 호출됨 ( 서비스 메소드 에 의해 호출됨 )
doPut/doDelete/doOptions/...
다른 요청이 수신될 때 호출됨 ( 서비스 메소드 에 의해 호출됨 )

실제로 개발할 때 주로 doXXX 메서드 를 다시 작성하고 init/destory/service 를 거의 다시 작성하지 않습니다 . 참고 : HttpServlet 의 인스턴스는 HTTP 요청이 수신 될 때마다 인스턴스를 다시 생성하는 대신 프로그램이 시작될 때 한 번만 생성됩니다 .

그렇다면 서블릿의 수명 주기는 무엇입니까? 

서블릿은 인스턴스화 후 init 메소드를 한 번 호출하고, 서블릿은 요청을 받을 때마다 서비스를 한 번 호출하고, 서블릿은 소멸 전에 destroy를 한 번 호출합니다.

2. HttpServlet요청

Tomcat Socket API 를 통해 HTTP 요청 ( 문자열 ) 을 읽고 HTTP 프로토콜 의 형식에 따라 문자열을 다음으로 파싱할
HttpServletRequest 객체.
방법 설명하다
문자열 getProtocol()
요청된 프로토콜의 이름과 버전을 반환합니다.
문자열 getMethod()
요청된 HTTP 메서드 의 이름을 반환합니다( 예: GET , POST 또는 PUT ).
문자열 getRequestURI()
프로토콜 이름 에서 HTTP 요청 쿼리 문자열의 첫 번째 줄까지의 요청 URL 부분을 반환합니다.
문자열 getContextPath()
요청의 컨텍스트를 나타내는 요청 URI 의 일부 를 반환합니다.
문자열 getQueryString()
경로 뒤에 있는 요청 URL 에 포함된 쿼리 문자열을 반환합니다.
열거
getParameterNames()
이 요청에 포함된 매개변수의 이름을 포함하는 String 객체 의 열거를 반환합니다.
문자열 getParameter(문자열
이름)
요청 매개변수의 값을 문자열로 반환하거나 매개변수가 존재하지 않는 경우 null을 반환합니다.
끈[]
getParameterValues(문자열
이름)
주어진 모든 요청 매개변수의 값을 포함하는 String 객체의 배열을 반환하거나 매개변수가 존재하지 않는 경우 null을 반환합니다.
열거
getHeaderNames()
요청에 포함된 모든 헤더를 포함하는 열거형을 반환합니다.
문자열 getHeader(문자열
이름)
지정된 요청 헤더의 값을 문자열로 반환
getCharacterEncoding()
요청 본문에 사용된 문자 인코딩의 이름을 반환합니다.
문자열 getContentType()
요청 본문 의 MIME 유형을 반환하거나 유형을 알 수 없는 경우 null 을 반환합니다.
int getContentLength()
제공된 입력 스트림과 함께 요청 본문의 길이를 바이트 단위로 반환하거나 길이를 알 수 없는 경우 -1을 반환합니다 .
입력스트림
getInputStream()
요청의 본문 내용 을 읽는 데 사용되며 InputStream 객체 를 반환합니다 .
이러한 방법을 통해 요청에 있는 정보의 다양한 측면을 얻을 수 있으며,
요청 객체는 서버에서 수신한 내용 이므로 수정해서는 안 됩니다 . 따라서 위의 방법은 " 쓰기 " 가 아닌 " 읽기 " 방법 일 뿐입니다.
방법.

3. HttpServletResponse

Servlet 에서 doXXX 메소드의 목적 은 요청 따라 해당 값을 계산 한 다음 응답 데이터를 다음으로 설정하는 것입니다.
HttpServletResponse 개체에서. 그런 다음 Tomcat 은 HttpServletResponse 개체 를 HTTP 프로토콜 형식 에 따라 문자열로 변환하고 Socket을 통해 브라우저에 다시 씁니다 .
방법 설명하다
무효 setStatus(int sc)
이 응답에 대한 상태 코드 설정
void setHeader(문자열 이름,
문자열 값)
주어진 이름과 값 으로 헤더 를 설정합니다. 이름 이 이미 존재하는 경우 이전 값을 덮어씁니다.
무효 addHeader(문자열
이름, 문자열 값)
주어진 이름과 값 으로 헤더 를 추가합니다. name 이 이미 존재하는 경우 이전 값을 덮어쓰지 않고 새 키-값 쌍을 병렬로 추가합니다.
무효 setContentType(문자열
유형)
클라이언트에 보낸 응답의 콘텐츠 유형을 설정합니다.
무효의
setCharacterEncoding(문자열
문자 집합)
클라이언트에 전송된 응답 의 문자 인코딩( MIME charset) 을 설정합니다(예: UTF-8).
무효 sendRedirect(문자열
위치)
지정된 리디렉션 위치 URL 을 사용 하여 클라이언트에 임시 리디렉션 응답을 보냅니다.
PrintWriter getWriter()
본문 에 텍스트 형식 데이터 를 쓰는 데 사용
출력스트림
getOutputStream()
이진 형식 데이터 를 본문 에 쓰는 데 사용됩니다 .
참고 : 응답객체는 서버가 브라우저에 반환하고자 하는 내용 이며 여기서 중요한 정보는 프로그래머가 설정 하므로 위의 방법
메소드는 모두 " write " 메소드입니다. 상태 코드 / 응답 헤더 에 대한 설정은 getWriter/getOutputStream 앞에 위치해야 합니다 . 그렇지 않으면 설정이 유효하지 않을 수 있습니다.


おすすめ

転載: blog.csdn.net/crazy_xieyi/article/details/127017849