response (2)

💻 Programming/JSP

[JSP] Response Object ( Server Response, Auto Refresh )

Web server가 HTTP request에 대한 응답을 브라우저에 보낼때 그 응답은 전형적으로 상태정보와 몇몇 응답 헤더들 그리고 빈 줄 그리고 문서로 이루어져 있다. 보통 아래처럼 응답이 구성된다.

HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... ( 빈 줄 ) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>

상태정보를 표시하는 첫번째 줄은 HTTP 버전 (위 예제에서는 HTTP/1.1 ), 상태코드 ( 위 예제에서는 200 ), 그리고 상태코드에 맞는 짧은 메시지 (위 예에서는 OK )로 구성됩니다.

아래 테이블의 내용은 HTTP 1.1 응답헤더의 유용한 정보들입니다.

 

HeaderDescription
AllowThis header specifies the request methods (GET, POST, etc.) that the server supports.
Cache-ControlThis header specifies the circumstances in which the response document can safely be cached. It can have values public, private or no-cache etc. Public means document is cacheable, Private means document is for a single user and can only be stored in private (nonshared) caches and no-cache means document should never be cached.
ConnectionThis header instructs the browser whether to use persistent in HTTP connections or not. A value of close instructs the browser not to use persistent HTTP connections and keep-alive means using persistent connections.
Content-DispositionThis header lets you request that the browser ask the user to save the response to disk in a file of the given name.
Content-EncodingThis header specifies the way in which the page was encoded during transmission.
Content-LanguageThis header signifies the language in which the document is written. For example en, en-us, ru, etc.
Content-LengthThis header indicates the number of bytes in the response. This information is needed only if the browser is using a persistent (keep-alive) HTTP connection.
Content-TypeThis header gives the MIME (Multipurpose Internet Mail Extension) type of the response document.
ExpiresThis header specifies the time at which the content should be considered out-of-date and thus no longer be cached.
Last-ModifiedThis header indicates when the document was last changed. The client can then cache the document and supply a date by an If-Modified-Since request header in later requests.
LocationThis header should be included with all responses that have a status code in the 300s. This notifies the browser of the document address. The browser automatically reconnects to this location and retrieves the new document.
RefreshThis header specifies how soon the browser should ask for an updated page. You can specify time in number of seconds after which a page would be refreshed.
Retry-AfterThis header can be used in conjunction with a 503 (Service Unavailable) response to tell the client how soon it can repeat its request.
Set-CookieThis header specifies a cookie associated with the page.


HttpServletResponse

 HttpServletResponse 객체에서 제공하는 메소드들은 아래와 같습니다.  

 

S.N.Method & Description
1String encodeRedirectURL(String url)
Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged.
2String encodeURL(String url)
Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged.
3boolean containsHeader(String name)
Returns a boolean indicating whether the named response header has already been set.
4boolean isCommitted()
Returns a boolean indicating if the response has been committed.
5void addCookie(Cookie cookie)
Adds the specified cookie to the response.
6void addDateHeader(String name, long date)
Adds a response header with the given name and date-value.
7void addHeader(String name, String value)
Adds a response header with the given name and value.
8void addIntHeader(String name, int value)
Adds a response header with the given name and integer value.
9void flushBuffer()
Forces any content in the buffer to be written to the client.
10void reset()
Clears any data that exists in the buffer as well as the status code and headers.
11void resetBuffer()
Clears the content of the underlying buffer in the response without clearing headers or status code.
12void sendError(int sc)
Sends an error response to the client using the specified status code and clearing the buffer.
13void sendError(int sc, String msg)
Sends an error response to the client using the specified status.
14void sendRedirect(String location)
Sends a temporary redirect response to the client using the specified redirect location URL.
15void setBufferSize(int size)
Sets the preferred buffer size for the body of the response.
16void setCharacterEncoding(String charset)
Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8.
17void setContentLength(int len)
Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length header.
18void setContentType(String type)
Sets the content type of the response being sent to the client, if the response has not been committed yet.
19void setDateHeader(String name, long date)
Sets a response header with the given name and date-value.
20void setHeader(String name, String value)
Sets a response header with the given name and value.
21void setIntHeader(String name, int value)
Sets a response header with the given name and integer value.
22void setLocale(Locale loc)
Sets the locale of the response, if the response has not been committed yet.
23void setStatus(int sc)
Sets the status code for this response.


HTTP Header Response 예제

아래 소스는 디지털 시계를 보여주기 위해서 Refresh헤더에 5초마다 새로고침하도록 setIntHeader() 메소드를 이용해서 값을 세팅하는 것을 보여주고 있습니다.

<%@ page import="java.io.*,java.util.*" %> <html> <head> <title>Auto Refresh Header Example</title> </head> <body> <center> <h2>Auto Refresh Header Example</h2> <% // Set refresh, autoload time as 5 seconds response.setIntHeader("Refresh", 5); // Get current time Calendar calendar = new GregorianCalendar(); String am_pm; int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); if(calendar.get(Calendar.AM_PM) == 0) am_pm = "AM"; else am_pm = "PM"; String CT = hour+":"+ minute +":"+ second +" "+ am_pm; out.println("Current Time is: " + CT + "\n"); %> </center> </body> </html>

main.jsp 에 위 소스를 넣고 웹브라우저에서 요청하면 아래처럼 5초마다 새로고침되는 디지털 시계를 보실 수 있으실거에요.  

Auto Refresh Header Example

Current Time is: 9:44:50 PM

 

 

 

 

Reference : http://www.tutorialspoint.com/jsp/jsp_server_response.htm 

 

'💻 Programming > JSP' 카테고리의 다른 글

[JSP] Filters ( 필터 사용하기 )  (0) 2019.02.15
[JSP] Form 데이타 처리  (0) 2019.02.15
[JSP] Request Object ( Client Request )  (0) 2019.02.15
[JSP] Implicit Objects ( 묵시적 객체들 )  (0) 2019.02.15
[JSP] Actions ( 액션 )  (0) 2019.02.15

💻 Programming/웹프로그래밍

AJAX란? - 서버로부터 응답받기

 

서버 응답

서버로부터 응답을 받기 위해서는 XMLHttpRequest객체의 responseText 또는 responseXML 속성을 사용합니다.

속성설명
responseText응답 데이터를 string으로 받습니다.
responseXML응답 데이터를 XML 로 받습니다.


responseText 속성

예제

document.getElementById("demo").innerHTML = xhttp.responseText;
실습하기 »

responseXML 속성

예제

 cd_catalog.xml 파일을 요청하고 응답으로 온 데이터 파싱하기

xmlDoc = xhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
  txt += x[i].childNodes[0].nodeValue + "<br>";
  }
document.getElementById("demo").innerHTML = txt;
실습하기 »


응답을 받는거는 했는데 그렇다면 응답이 왔는지는 어떻게 알 수 있나요? 

자, 그 부분에 대해서는 다음 포스팅에 있을 이벤트에 대해서 공부를 하고나면 아실 수 있습니다.

자, 다음 시간에는 AJAX에서 사용되는 이벤트에 대해서 알아보도록 하겠습니다.





'💻 Programming > 웹프로그래밍' 카테고리의 다른 글

AJAX란? - 데이터베이스  (0) 2016.06.12
AJAX란? - 이벤트 종류  (0) 2016.06.12
AJAX란? - 서버로 요청하기  (1) 2016.06.12
Ajax 란? - Ajax 시작하기  (1) 2016.06.12
[jQuery] 2. jQuery Basics ( 기본 )  (0) 2015.08.06