Download presentation
Presentation is loading. Please wait.
Published byMerry Carroll Modified over 6 years ago
1
CS3220 Web and Internet Programming Generating HTTP Responses
Chengyu Sun California State University, Los Angeles
2
HTTP Response As Output
Browser Application Server HTTP request HTTP response input output program
3
HTTP Response Example HTTP/1.1 200 OK
Content-Type: text/html;charset=ISO Content-Length: 168 Date: Sun, 03 Oct :26:57 GMT Server: Apache-Coyote/1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Servlet Life Cycle</title></head> <body> n is 299 and m is 440 </body> </html>
4
HTTP Response Status line Protocol Status code Header [Message body]
5
Common Status Codes 200 (OK) 401 (Unauthorized) 403 (Forbidden)
404 (Not Found) 500 (Internal Server Error)
6
Status Codes 100 – 199: Informational. Client should respond with further action 200 – 299: Request is successful 300 – 399: Files have moved 400 – 499: Error by the client 500 – 599: Error by the server
7
Redirect Codes 301 (Moved Permanently) 302 (Found) 303 (See Other)
GET 302 (Found) a.k.a. (Moved Temporarily) 303 (See Other) GET and POST 307 (Temporary Redirect) GET but not POST
8
<error-page> in web.xml
Showing customized error pages for common errors, e.g. 404 Page Not Found Example: <error-page> <error-code>404</error-code> <location>/WEB-INF/404.html</location> </error-page> <error-code>403</error-code> <location>/WEB-INF/403.html</location>
9
Header Fields Request Response Accept Accept-Charset Accept-Encoding
Accept-Language Connection Content-Length Cookies Response Content-Type Content-Encoding Content-Language Connection Content-Length Set-Cookie
10
More Response Header Fields
Location for redirect Refresh “Push” Incremental display Content-Disposition (RFC2183) RFC2616, Section 14
11
HttpServletResponse
12
Header Methods in HttpServletResponse
addHeader(), setHeader() addIntHeader(), setIntHeader() addDateHeader(), setDateHeader() containsHeader()
13
More HttpServletResponse Methods
setContentType( String type ) sendRedirect( String location ) Set status code to 302 getWriter() For text responses, e.g. HTML pages getOutputStream() For binary responses, e.g. images
14
Example: Add Revisited
Redirect the user back to the input form if the parameters are missing or invalid sendRedirect() does not terminate the execution of doGet() or doPost()
15
Example: Countdown Automatically refreshes the display every second
The Refresh header
16
File Upload and Download in Web Applications
Pictures on online albums and social networking sites Attachments in web forum posts and web s Resumes on job search sites Student homework submissions in learning management systems … …
17
File Upload – The Form <form action="FileUploadHandler"
method="post" enctype="multipart/form-data"> First file: <input type="file" name="file1" /> <br /> Second file: <input type="file" name="file2" /> <br /> <input type="submit" name="upload" value="Upload" /> </form>
18
File Upload – The Request
POST / HTTP/1.1 Host: cs.calstatela.edu:4040 […] Cookie: SITESERVER=ID=289f7e a2d7d1e6e44f931195 Content-Type: multipart/form-data; boundary= Content-Length: 509 Content-Disposition: form-data; name="file1"; filename="test.txt" Content-Type: text/plain this is a test file. Content-Disposition: form-data; name="file2"; filename="test2.txt.gz" Content-Type: application/x-gzip ?????????UC
19
Apache commons-fileupload
Parse an HTTP request and retrieve the uploaded files Requires Apache commons-io
20
Paths $PROJECT/WEB-INF/lib for additional jar files in a webapp
$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core is where webapp is deployed locally getServletContext().getRealPath(“/path_within_webapp") to get the absolute file system path to the file or folder
21
Important Classes FileItem in commons-fileupload - File in java.io -
22
Example: Download Download an image file from the server File I/O
Content type Binary response Content-Length and Content-Disposition header
23
Summary HTTP response format
Status code ranges and some common status codes Generate non-HTML responses Use of headers Writer vs. OutputStream
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.