JSP 클라이언트 요청

서블릿 엔진의 동작을 제어하기 위해 XML 구문의 구성을 사용하는 JSP 작업입니다. 클라이언트 요청, 서버 응답, HTTP 상태 코드와 같은 다양한 JSP Action 요소에 대해 자세히 알아봅니다.

JSP 클라이언트 요청

  • 웹 페이지가 요청되면 HTTP 헤더에 있는 정보를 웹 서버에 보냅니다.
  • HTTPServletRequest 객체를 사용하여 이 정보를 사용할 수 있습니다.
  • 브라우저에서 보낸 정보는 HTTP 요청의 요청 헤더에 저장됩니다.
  • 우리는 요청 객체에 정보를 보내기 위해 다른 헤더를 사용하고 있습니다.

JSP의 헤더

JSP의 다양한 헤더는 아래에 설명되어 있습니다.

헤더 기술설명 예시
수락 브라우저나 다른 클라이언트가 처리할 수 있는 MIME 유형을 지정합니다. 이미지/png 또는 이미지/jpeg
수락 문자 집합 정보를 표시하기 위해 브라우저에서 사용하는 문자 세트를 사용합니다. ISO-8859-1
수락 - 인코딩 브라우저가 처리하는 인코딩 유형을 지정합니다. Gzip 또는 압축
허용 언어 클라이언트가 지정한 언어를 지정합니다. 엔,엔_us
권한 부여 비밀번호로 보호된 웹 페이지에 액세스하려고 할 때 클라이언트가 사용하는 헤더  
연결 클라이언트가 지속적인 HTTP 연결을 처리할 수 있는지 여부를 나타냅니다(브라우저는 여러 파일을 검색할 수 있음). 살아 유지
콘텐츠 길이 게시물 요청에 적용됩니다. 게시 데이터의 크기를 바이트 단위로 제공합니다.  
쿠키 쿠키를 서버에 반환합니다(이전에 브라우저로 전송된 쿠키).  
주인 원래 URL의 호스트와 포트를 지정합니다.  
이후 수정된 경우 변경되거나 수정된 ​​경우 페이지만 필요함을 나타냅니다.  
이후 수정되지 않은 경우 변경되거나 수정되지 않은 경우에만 페이지가 필요함을 나타냅니다.  
참조 참조 URL 페이지의 URL을 나타냅니다.  
사용자 에이전트 요청하는 브라우저 또는 클라이언트를 식별합니다.  

JSP의 HTTP 헤더 메소드

다음 방법은 JSP 페이지에서 HTTP 헤더를 읽는 데 사용됩니다.

  1. 쿠키[] getCookies() – 클라이언트가 보낸 쿠키 객체가 포함된 배열을 반환합니다.
  2. 열거 getAttributeNames() – 요청에 대한 속성 이름의 열거를 포함합니다.
  3. 열거형 getHeaderNames() – 헤더 이름의 열거를 포함합니다.
  4. 열거 getParameterNames() – 요청에서 매개변수 이름을 가져오는 열거형을 포함합니다.
  5. HttpSessiongetSession() – 요청과 관련된 현재 세션을 반환하거나 세션이 없으면 새 세션을 생성합니다.
  6. 로케일 getLocale() – 클라이언트가 콘텐츠를 수락할 기본 로캘을 반환합니다. 응답에 할당되었습니다. 기본적으로 값은 서버의 기본 로캘이 됩니다.
  7. 객체 getAttribute(문자열 이름) – 명명된 속성의 값을 객체로 반환합니다.
  8. ServletInputStreamgetInputStream() - 요청 본문을 이진 데이터로 검색합니다.
  9. 문자열 getAuthType() – 서블릿을 보호하기 위한 인증 체계의 이름을 반환합니다.
  10. 문자열 getCharacterEncoding() – 요청 본문에 사용된 문자 인코딩의 이름을 반환합니다.
  11. 문자열 getContentType() – 요청 본문의 MIME 유형을 반환합니다.
  12. 문자열 getContextPath() – 요청 URI의 일부를 반환합니다. URI의 컨텍스트 경로를 나타냅니다.
  13. String getHeader(문자열 이름) – 요청 헤더를 문자열로 반환합니다.
  14. 문자열 getMethod() – GET, POST와 같은 HTTP 메소드의 이름을 반환합니다.
  15. String getParameter(문자열 이름) – 요청의 매개변수를 문자열로 반환합니다.
  16. 문자열 getPathInfo() – URL과 관련된 경로 정보를 반환합니다.
  17. 문자열 getQueryString() – 요청 URL과 연결된 쿼리 문자열을 반환합니다.
  18. 문자열 getServletPath() – JSP를 호출하는 요청의 URL 부분을 반환합니다.
  19. String[] getParameterValues(문자열 이름) – 요청 매개변수의 값을 포함하는 문자열 객체의 배열을 반환합니다.

예:

아래 예에서는 요청 객체를 사용하여 다양한 방법을 사용하고 있습니다.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Client Request Guru JSP</title>
</head>
<body>
<h2>Client Request Guru JSP</h2>

<table border="1">
<tr>
<th>guru header</th><th>guru header Value(s)</th>
</tr>
<%
	HttpSession gurusession = request.getSession(); 
	out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>");
	Locale gurulocale = request.getLocale ();
	out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>");
	String path = request.getPathInfo(); 
	out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>"); 
	String lpath = request.get();
	out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>"); 
	String servername = request.getServerName(); 
	out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>");
	int portname = request.getServerPort(); 
	out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>");
	Enumeration hnames = request.getHeaderNames();
	while(hnames.hasMoreElements()) { 
		String paramName = (String)hnames.nextElement();
		out.print ("<tr><td>" + paramName + "</td>" );
		
		String paramValue = request.getHeader(paramName);
		out.println("<td> " + paramValue + "</td></tr>");
	}

%>

코드 설명:

코드 라인 17: 요청 객체를 사용하여 특정 세션의 세션 객체를 얻고 해당 세션의 객체 값을 얻습니다.

코드 라인 19: 요청 객체를 사용하여 해당 JSP에 대한 특정 세션 i.een_US 로케일의 로케일을 가져옵니다.

코드 라인 21: 요청 객체를 사용하여 해당 JSP에 대한 경로 정보를 얻습니다. 이 경우 언급된 URL에 대한 경로가 없으므로 null입니다.

코드 라인 23: 요청 객체를 사용하여 컨텍스트 경로, 즉 루트 경로를 얻습니다.

코드 라인 25: 요청 개체를 사용하여 서버 이름을 가져옵니다.

코드 라인 27: 요청 객체를 사용하여 서버 포트를 얻습니다.

코드 라인 29-35: 요청 객체를 사용하여 열거형으로 나오는 헤더 이름을 얻으므로 헤더 이름의 모든 헤더 값을 얻습니다.

여기서 우리는 모든 헤더 값을 쿠키, 호스트, 연결, 언어 허용, 인코딩 허용.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

JSP 클라이언트 요청

산출:

세션 이름, 로캘 이름, 경로 이름, 서버 이름, 포트 이름, 호스트, 컨텍스트 경로 및 해당 헤더 값과 같은 일련의 값을 가져옵니다. JSP.

JSP 서버 응답

  • 요청이 처리되면 웹 서버에서 응답이 생성됩니다. 이는 상태 줄, 응답 헤더, 빈 줄 및 문서로 구성됩니다.
  • 응답 객체인 HTTPServletResponseclass의 객체입니다.
  • 상태 줄은 HTML 버전입니다.

JSP의 응답 헤더

JSP의 응답 헤더는 다음과 같습니다.

헤더 기술설명
허용 서버가 요청하는 GET, POST와 같은 요청 방법을 지정합니다.
캐시 제어 응답 문서를 캐시할 수 있습니다. 공개, 비공개 및 캐시가 없을 수 있습니다. 캐시 없음은 문서가 캐시되지 않도록 지정합니다.
연결 브라우저가 saveHTTPConnections를 사용해야 하는지 여부를 지시합니다. 닫기 값은 브라우저가 HTTPConnections에서 영구 연결을 사용해서는 안 됨을 나타내고 "keep-alive"는 영구 연결을 사용함을 의미합니다.
내용 처리 사용자에게 응답을 디스크에 저장할지 여부를 묻습니다.
콘텐츠 인코딩 전송 중에 페이지를 인코딩해야 합니다.
콘텐츠 길이 응답의 바이트 수
콘텐츠 형식 응답의 MIME 유형을 지정합니다.
만료 콘텐츠가 오래된 것으로 간주되어 캐시되어서는 안되는 시점을 지정합니다.
마지막으로 수정 문서가 마지막으로 수정된 시간을 나타냅니다.
위치 상태 코드가 300인 모든 응답에 포함되어야 합니다.
새로 고침 업데이트된 페이지를 찾는 방법을 지정합니다.
재시도 후 503 응답과 함께 클라이언트에게 요청을 얼마나 빨리 반복할 수 있는지 알려주는 데 사용할 수 있습니다.
세트 쿠키 페이지와 관련된 쿠키를 지정합니다

JSP의 HTTP 응답 헤더 메소드

다음은 응답 객체를 사용하는 JSP의 메서드입니다.

  1. 문자열 encodeRedirectURL(문자열 URL) - RedirectURL 메소드로 URL을 인코딩합니다.
  2. 문자열 encodeURL(문자열 URL) - 세션 ID를 포함하여 URL을 인코딩합니다.
  3. 부울 containHeader(문자열 이름) – JSP에 헤더가 포함되어 있는지 여부.
  4. 부울 isCommited() – 응답이 커밋되었는지 여부.
  5. Void addCookie(Cookie cookie) – 응답에 쿠키를 추가합니다.
  6. Void addDateHeader(문자열 이름, 문자열 값) – 응답 헤더 날짜 이름 및 값을 추가합니다.
  7. Void addHeader(문자열 이름, 문자열 값) – 이름과 값이 포함된 응답 헤더를 추가합니다.
  8. Void addIntHeader(문자열 이름, int 값) – 이름과 정수 값이 포함된 응답 헤더를 추가합니다.
  9. 보이드 플러시Buffer() – 버퍼에 있는 컨텐츠를 강제로 클라이언트에 출력합니다.
  10. 무효 재설정() – 버퍼에 있는 데이터를 지웁니다.
  11. 무효 재설정Buffer - 상태 코드를 지우지 않고 응답의 콘텐츠 버퍼를 지웁니다.
  12. 무효 sendError(intsc,Stringmsg) – 상태 코드를 사용하여 클라이언트에 오류 응답을 보냅니다.
  13. 무효 sendRedirect(문자열 위치) – 클라이언트에 임시 리디렉션 응답을 보냅니다.
  14. 보이드 세트Buffer크기(정수 크기) - 본문의 버퍼 크기를 설정합니다
  15. 무효 setCharacterEncoding(String charset) - 문자 인코딩을 설정합니다
  16. Void setContentType(문자열 유형) – 응답의 콘텐츠 유형을 설정합니다.
  17. 무효 setContentLength(intlen) - 응답의 내용 길이를 설정합니다.
  18. 무효 setLocale(Locale lcl) - 응답의 로캘 유형을 설정합니다.
  19. 무효 setStatus(intsc) - 응답의 상태 코드를 설정합니다.

예:

이 예제에서는 getLocale, flushbuffer, getWriter, get ContentType, setIntHeader 등 다양한 메서드를 다루고 있습니다.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action Response</title>
</head>
<body>
<center>
<h2>Guru Response</h2>
<%
Locale lcl = response.getLocale();
out.println("Locale is : " + lcl + "\n");
response.flushBuffer();
PrintWriter output = response.getWriter();
output.println("This is from writer object");
String type = response.getContentType();
out.println("The content type : " + type + "\n");
	// Set refresh,autoload time as 5 seconds
	response.setIntHeader("Refresh", 5);
	//Get current time
	Date dt = new Date();
	out.println("Today's date is : " +dt.toString() + "\n");
%>
</center>
</body>
</html>

코드 설명:

코드 라인 13: 응답 객체를 사용하여 이 JSP 세션의 로케일 객체를 얻습니다.

코드 라인 15: 응답 객체를 사용하여 flushbuffer를 사용하여 버퍼 콘텐츠를 클라이언트로 강제로 보냅니다.

코드 라인 16: 응답 객체를 사용하여 출력 스트림에서 출력을 얻는 작성자 객체를 얻습니다.

코드 라인18: 응답 객체를 사용하여 콘텐츠 유형, 즉 응답 객체의 MIME 유형을 얻습니다.

코드 라인 21: 응답 객체를 사용하면 두 번째 매개변수로 5를 설정하여 5초마다 자동으로 로드하는데 사용됩니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

JSP 서버 응답

출력:

  • 여기서는 getWriter의 작성기 개체에서 출력을 얻습니다. 이는 개체를 제공하고 출력 스트림에 출력할 수 있습니다.
  • 로케일을 en_us로, 콘텐츠 유형을 text/html로 가져옵니다.
  • ISO 8859로 문자셋을 얻습니다.
  • 오늘 날짜를 현재 날짜로 합니다.

JSP HTTP 상태 코드

  • 요청이 처리되면 응답이 생성됩니다. 응답 상태 줄은 HTTP 버전, 상태 코드 및 관련 메시지로 구성됩니다.
  • 메시지는 상태 코드 및 HTTP 버전과 직접 연결되며 서버에 의해 결정됩니다.
  • JSP에서는 기본적으로 200이 상태 코드로 설정되어 있으므로 명시적으로 설정할 필요가 없습니다.
  • response.setStatus() 메소드로 설정할 수 있습니다.

코드는 다음 5가지 범주로 분류됩니다.

  • 100-199 – 여기서 클라이언트는 어떤 작업으로 응답해야 함을 나타냅니다.
  • 200-299 – 요청이 성공했음을 나타냅니다.
  • 300-399 – 이동된 파일에 사용되며 일반적으로 새 주소를 나타내는 위치 헤더를 포함합니다.
  • 400-499 – 클라이언트의 오류를 나타냅니다.
  • 500-599 – 서버에 의한 오류를 나타냅니다.

일반적인 상태 코드 중 일부는 다음과 같습니다.

  • 200 - 모든 것이 정상임을 나타냅니다.
  • 301 – 영구적으로 이동했습니다.
  • 304 – 마지막 변경 이후 수정되지 않음
  • 400 잘못된 요청
  • 404 - 찾을 수 없음
  • 405 – 메소드를 찾을 수 없음
  • 500 - 내부 서버 오류
  • 503 – 서비스를 이용할 수 없음
  • 505 – HTTP 버전이 지원되지 않습니다.

JSP의 HTTP 상태 코드 메소드

JSP의 상태 코드 메소드 중 일부는 다음과 같습니다.

  1. 공개 무효 setStatus(intstatusCode): JSP 페이지에서 설정하려는 상태 코드를 설정합니다. 이렇게 하면 설정된 상태 코드의 메시지가 표시됩니다.
  2. 공개 무효 sendRedirect(문자열 URL): 새 문서의 URL을 제공하는 위치 헤더와 함께 302 응답을 생성합니다.
  3. 공개 무효 sendError(intcode,Stringmsg): 짧은 메시지와 함께 상태 코드를 보내고 HTML 문서 내에 형식이 지정됩니다.

예:

이 예에서는 명시적으로 JSP 페이지에 오류를 보냅니다.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Status Code</title>
</head>
<body>
<% response.sendError(404,"Guru Page Not Found"); %>
</body>
</html>

코드 설명:

코드 라인 10: 응답 객체를 사용하여 두 개의 매개변수가 있는 페이지에 오류를 보냅니다.

  1. 상태 코드 – 위의 코드 중 하나일 수 있습니다. 이 경우에는 404로 설명했습니다.
  2. 메시지 – 오류를 표시하려는 특정 메시지일 수 있습니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

JSP HTTP 상태 코드

출력:

여기서는 코드에서 전송된 404라는 오류 코드를 얻었으며 출력에 "Guru 페이지를 찾을 수 없습니다" 메시지도 표시됩니다.

제품 개요

  • 이번 글에서는 요청을 가로채는 방법과 응답을 조작하는 방법에 대한 클라이언트 요청과 서버 응답에 대해 알아보았습니다.
  • JSP 작업 서블릿 엔진의 동작을 제어하기 위해 XML 구문의 구성을 사용합니다.
  • 웹 페이지가 요청되면 HTTP 헤더에 있는 정보를 웹 서버에 보냅니다.
  • 요청이 처리되면 웹 서버에서 응답이 생성됩니다. 이는 상태 줄, 응답 헤더, 빈 줄 및 문서로 구성됩니다.
  • 요청이 처리되면 응답이 생성됩니다. 응답 상태 줄은 HTTP 버전, 상태 코드 및 관련 메시지로 구성됩니다.