0% found this document useful (0 votes)
16 views

Server-Side Web Programming: The Request and Response Objects

refreshes the page every 60 seconds

Uploaded by

Hop Huynh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Server-Side Web Programming: The Request and Response Objects

refreshes the page every 60 seconds

Uploaded by

Hop Huynh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Server-side

Web Programming
Lecture 15:
The Request and Response
Objects
Http Requests and Responses
• request object
– Properties of browser
– IP address and host name of referring machine
• request.getRemoteAddr()
• request.getHost()
• Not particularly useful for identification (too easy to fake)

• response object
– Can be used to tell browser more than just html page to display
– Format to display response page, etc.
Http Requests and Responses
Requests
• Contains information about browser that submitted request
• Main components:
– Referrer: Page from which request was submitted
– Accept: Preferred order of MIME types accepted by browser
– Accept-Encoding: Types of compression understood by
browser
• gzip, etc.
– Accept-Language: Language codes for accepted languages
• “en”, “en-us”, etc.
– User-Agent: Browser type
• Long string containing identifiers specific to browser
– “MSIE”, etc.
MIME Types
• Multipurpose Internet
Mail Extensions:
Formats for transmitting
data via email / internet
– Text formats
– Image formats
– Application formats
(programs browser can
run to display page)
– Audio and video
multimedia formats

• Can use */* to indicate


that accept anything
(usually last resort)
Accessing Request Properties
• Can get these properties using
request.getHeader(headername)
• Example:
String browser =
request.getHeader(“Accept-Encoding”);
might return “gzip, deflate” for example

• Main use: Customizing response to abilities of browser


– Only send information over if form browser can handle!

• Can use request.getHeaderNames() to get list of all property


names sent over from browser
Accessing Request Properties
Accessing Request Properties
Using Request Properties
• Example: Sending custom image types
– Send .png image if supported
– Send .jpg image otherwise

String imagetypes = request.getHeader(“Accept”);


boolean acceptsPng = imagetypes.contains(“PNG”);
if (acceptsPng) {
// insert link to .png image
}
else {
// insert link to .jpg image
Search method
} for strings
Using Request Properties
• Example: Customizing response to browser type
– Will contain the string “MSIE” if Internet Explorer used

String browser = request.getHeader(“User-Agent”);


boolean isIE = browser.contains(“MSIE”);
if (isIE) {
// forward to IE specific page
}
else {
// forward to general response page
}
Response Properties
• Can set properties of response

• Useful type to set: Content type


– Form in which browser should display information sent
– Default: text/html (standard html format)
– Should first examine request to make sure that form is supported!
Setting Content Type
• Syntax: response.setContentType(“MIME type”);

• Example: forcing browser to display response as Excel spreadsheet

– response.setContentType(“application/vnd.ms-excel”);

– Send response back in simple format:


• Cells in same row separated by tab ‘\t’
• Move to next row with return ‘\n’
– Write that string to response object using PrintWriter (like old style
response page)

– Much more efficient than sending an entire spreadsheet as file!


Setting Content Type
Controlling Caching
• For efficiency, most browsers cache pages received from server
– Stored in local memory
• Next time user requests page, check to see whether in cache before
downloading again
• Problem for pages that change regularly
– Stock price pages, etc.

• Can force browser to remove page after certain interval of time


– Browser will then download current version of page
• Syntax:
response.setHeader("cache-control", "no-cache");
Forcing Page Refresh
• Can force browser to refresh page after certain interval of time
– Gamecasts, etc.

• Syntax:
response.setIntHeader(“refresh”, time in seconds);

Time after which browser


refreshes page

• Example:
response.setIntHeader(“refresh”, 60);

You might also like