Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS3220 Web and Internet Programming Generating HTTP Responses

Similar presentations


Presentation on theme: "CS3220 Web and Internet Programming Generating HTTP Responses"— Presentation transcript:

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


Download ppt "CS3220 Web and Internet Programming Generating HTTP Responses"

Similar presentations


Ads by Google