Latest web development tutorials

JSP 클라이언트 요청

브라우저가 페이지를 요청할 때 HTTP 헤더 정보의 일부로서이 정보를 전송할 수 있으므로 일련의 정보가 웹 서버를 직접 판독 할 수없는 전송합니다. 당신은 더 많은 정보를 얻기 위해 HTTP 프로토콜을 확인할 수 있습니다.

다음 표는 종종이 정보를 볼 수 있습니다 네트워크 프로그래밍 후 브라우저 헤더의 중요한 내용 중 일부를 나열합니다 :

정보 기술
수락 브라우저 또는 처리 할 수있는 다른 클라이언트의 MIME 유형을 지정합니다. 이 값은 일반적으로 이미지 / PNG 또는 이미지 / JPEG입니다
동의-캐릭터 세트 브라우저를 사용하는 문자 집합을 지정합니다. 예를 들면, ISO-8859-1
수락 - 인코딩 인코딩 유형을 지정합니다. 이 값은 일반적으로 gzip을하거나 압축된다
수락 - 언어 클라이언트의 언어를 지정, 서블릿은 서블릿이이 언어의 단어를 지원하는 경우, 헌법의 현재 언어로 결과 세트를 반환하는 우선 순위를 부여합니다. 예를 들어 엉, 엉 - 우리, RU 등
권한 부여 암호로 보호 된 웹 페이지를 다른 사용자 액세스를 확인
연결 그것은 클라이언트가 HTTP 영구 연결을 처리 할 수 ​​있는지 여부를 나타냅니다. 영구적 인 접속 클라이언트를 허용하거나 브라우저 단일 요청으로 여러 파일을 가져온다. 연결 유지는 지속적인 연결을 가능하게 나타냅니다
콘텐츠 길이 만 POST 요청 데이터 POST 바이트의 수
쿠키 이전에 서버에 브라우저의 쿠키로 전송 돌려줍니다
주인 호스트 이름 및 포트 번호의 원래 URL 지적
경우 수정 한 이후 페이지가 지정된 날짜 클라이언트에서 수정 된 경우에만 표시는이 웹 사이트를 필요로한다. 서버가 더 업데이트 된 리소스가 없다고 클라이언트 304 야드 보낸다
만약-수정되지 않은-이후 수정-때문에 경우-반대로 만 문서가 지정된 날짜 이후에 수정되지 않았으며, 작업이 성공적으로 될 것입니다
리퍼러 참고로 표시된 페이지의 URL. 사용자가 페이지 1의 경우 예를 들어,이 페이지로의 링크가 다음 URL 페이지 1 브라우저에 포함되는 페이지는 헤더 요청이
사용자 에이전트 이것은 클라이언트가 전송 또는 다른 브라우저 요청을 구별하는 데 사용되는 브라우저의 종류가 서로 다른 콘텐츠를 반환

HttpServletRequest의 클래스

나오는 javax.servlet.http.HttpServletRequest 요청 객체는 클래스의 인스턴스이다. 클라이언트가 페이지를 요청할 때마다, JSP 엔진은 요청을 나타내는 새로운 객체를 생성한다.

요청 개체 등등 폼 데이터, 쿠키, HTTP 방법 및 포함하는 HTTP 헤더 정보를 얻는 방법의 시리즈를 제공한다.

다음은 JSP 프로그래밍 방법에 몇 가지 일반적인 가져 오기 HTTP 헤더를 소개합니다. 자세한 내용은 테이블 아래를 참조하십시오 :

아니오. 방법 설명
(1) 쿠키 [] 대해 getCookies ()

클라이언트의 쿠키의 배열을 돌려줍니다
열거 대해 getAttributeNames ()

요청 개체 이름의 속성 컬렉션을 반환
3 열거 getHeaderNames ()

HTTP 헤더의 모든 이름의 컬렉션을 반환
4 열거 대해 getParameterNames ()

모든 요청 파라미터들의 집합을 리턴
(5) HttpSession에 대해 getSession ()

반환하지 않으면를 작성, 해당 세션 객체를 요청
6 HttpSession에 대해 getSession (부울 작성)

반환 매개 변수없이 경우 해당 세션 객체를 요청하고 사실 생성, 새로운 세션 객체를 반환
(7) 로케일로 getLocale ()

이 페이지 로케일 객체는 응답에 제공 될 수를 돌려줍니다
8 개체 대해 getAttribute (문자열 이름)

속성 값 이름의 이름을 반환하고, 어떤 경우는 null가없는 경우.
9 ServletInputStream의는 getInputStream ()

입력 스트림 요청을 반환
(10) 문자열 대해 getAuthType ()

이러한 "BASIC"또는 "SSL"경우는 null 어떤 보호 조치 JSP와 서블릿을 보호하기 위해서 사용되는 인증 방식의 이름을 돌려줍니다
(11) 문자열로 getCharacterEncoding ()

요청 문자 인코딩 세트의 이름을 돌려줍니다
(12) 캐릭터는, getContentType ()

알 수없는 경우 MIME의 주요 요구의 유형을 돌려줍니다
(13) 문자열 대해 getContextPath ()

요청 URI에 지정된 컨텍스트 경로를 반환
(14) 문자열 getHeader (캐릭터 이름)

메시지 헤더에 지정된 이름을 돌려줍니다
(15) 문자열 getMethod 메소드 ()

이러한 GET,, POST 또는 PUT과 같은 HTTP 요청 방법을 돌려줍니다
(16) 문자열의 getParameter (문자열 이름)

하지가있는 경우 요청 매개 변수 이름 지정, 또는 null를 돌려줍니다
(17) 문자열 대해 getPathInfo ()

이 요청과 관련된 모든 추가 경로의 URL을 반환
(18) 문자열주는 getProtocol ()

이 요구에 의해 사용되는 이름과 프로토콜의 버전을 반환
(19) 문자열 대해 getQueryString ()

이는 질의 스트링 요청 URL에 포함 된 반환
(20) 문자열 getRemoteAddr ()

클라이언트의 IP 주소를 반환
(21) 문자열 getRemoteHost ()

클라이언트의 이름을 돌려줍니다
(22) 문자열 대해 getRemoteUser ()

사용자가 인증되지 않는 경우, 사용자 로그인 인증을 통해 클라이언트에 반환 또는 null
(23) 문자열 대해 getRequestURI ()

요청 URI를 돌려줍니다
(24) 문자열 getRequestedSessionId ()

지정된 세션 ID 요청을 반환
(25) 문자열 대해 getServletPath ()

위로 서블릿 경로 요청
(26) 문자열 []에 대해 getParameterValues (문자열 이름)

하지가 존재하는 경우 매개 변수는 모든 값의 이름, 또는 null를 지정 돌려줍니다
(27) 부울 대해 isSecure ()

요청은 HTTPS로, 채널을 암호화할지 어떨지를 돌려줍니다
(28) INT 대해 getContentLength ()

요청 본문에 포함 된 바이트 수를 돌려줍니다 알 수없는 경우
(29) INT 대해 getIntHeader (문자열 이름)

리턴 값은 요청 헤더의 이름을 지정
(30) INT 대해 getServerPort ()

서버 포트 번호를 돌려줍니다

HTTP 헤더 예

이 예에서, 우리는 HTTP 헤더를 읽어 getHeaderNames HttpServletRequest의 클래스 () 메소드를 사용합니다. 이 방법은 현재 HTTP 요청 헤더 정보의리스트를 돌려줍니다.

열거 객체를 획득 한 후, 표준 방법은 열거 객체를 통과 할, hasMoreElements () 메소드는 각 매개 변수의 이름을 얻기 위해 nextElement () 메소드를 사용을 중지시기를 결정합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>
<h2>HTTP 头部请求实例</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Header Name</th><th>Header Value(s)</th>
</tr>
<%
   Enumeration headerNames = request.getHeaderNames();
   while(headerNames.hasMoreElements()) {
      String paramName = (String)headerNames.nextElement();
      out.print("<tr><td>" + paramName + "</td>\n");
      String paramValue = request.getHeader(paramName);
      out.println("<td> " + paramValue + "</td></tr>\n");
   }
%>
</table>
</body>
</html>

액세스 main.jsp는 다음과 같은 결과를 얻을 것이다 :

당신은 위의 코드에서 HttpServletRequest의 클래스의 다른 방법을 시도 할 수 있습니다.