Web&Servlets&Jsp.pptx
- Количество слайдов: 37
Java Lecture #__ Web&Servlets&JSP fundamentals Denis Talochkin, Voronezh, 2012
What does your web server do? • browser lets a user request a resource • the web server gets the request, finds the resource, and returns something to the user • doesn’t matter what type of resource (image, sound, html. . . ) —the client asks for the thing (resource) and the server sends it back. • “ 404 Not Found” error—the response you get when the server can’t find what it thinks you asked for 2
What does a web client do? 3
Clients and servers know HTML and HTTP • HTML tells the browser how to display the content to the user • HTTP is the protocol clients and servers use on the web to communicate • the server uses HTTP to send HTML to the client 4
HTTP request The HTTP protocol has several methods, but the ones you’ll use most often are GET and POST. 5
HTML is part of the HTTP response An HTTP response can contain HTML. HTTP adds header information to the top of whatever content is in the response (in other words, the thing coming back from the server). An HTML browser uses that header info to help process the HTML page. Think of the HTML content as data pasted inside an HTTP response. 6
Anatomy of an HTTP GET request 7
Anatomy of an HTTP POST request 8
Anatomy of an HTTP response 9
Post or Get? § § § The total amount of characters in a GET is really limited (depending on the server). The data you send with the GET is appended to the URL up in the browser bar. The user can’t bookmark a form submission if you use POST instead of GET. 10
Exercise For each description, circle either POST or GET depending on which HTTP method you’d choose for implementing that functionality. If you think it could be either, circle both. But be prepared to defend your answers. . . 11
URL - Uniform Resource Locators 12
Two things the web server alone won’t do Dynamic content Saving data on the server § To process that form data, either to save it to a file or database or even just to use it to generate the response page, you need another app. 13
The non-Java term for a web server helper app is “ CGI” program 14
Servlets and CGI both play the role of a helper app in the web server 15
Bullet points § § § § HTTP stands for Hypertext Transfer Protocol, and is the network protocol used on the Web. It runs on top of TCP/IP. HTTP uses a request/response model—the client makes an HTTP request, and the web server gives back an HTTP response that the browser then figures out how to handle (depending on the content type of the response). If the response from the server is an HTML page, the HTML is added to the HTTP response. An HTTP request includes the request URL (the resource the client is trying to access), the HTTP method (GET, POST, etc. ), and (optionally) form parameter data (also called the “query string”). An HTTP response includes a status code, the content-type (also known as MIME type), and the actual content of the response (HTML, image, etc. ) A GET request appends form data to the end of the URL. A POST request includes form data in the body of the request. A MIME type tells the browser what kind of data the browser is about to receive so that the browser will know what to do with it (render the HTML, display the graphic, play the music, etc. ) 16
Bullet points § § § URL stands for Uniform Resource Locator. Every resource on the web has its own unique address in this format. It starts with a protocol, followed by the server name, an optional port number, and usually a specific path and resource name. It can also include an optional query string, if the URL is for a GET request. Web servers are good at serving static HTML pages, but if you need dynamically-generated data in the page (the current time, for example), you need some kind of helper app that can work with the server. The non. Java term for these helper apps (most often written in Perl) is CGI (which stands for Common Gateway Interface). Putting HTML inside a println() statement is ugly and error-prone, but JSPs solve that problem by letting you put Java into an HTML page rather than putting HTML into Java code. 17
Servlets Demystified (write, deploy, run) 1. Build this directory tree (somewhere not under the application server). 2. Write a servlet. 3. Create a deployment descriptor (DD) named web. xml, put it in the etc directory 18
Servlets Demystified (write, deploy, run) (1) 4. Deploy the application 19
Task 1. 2. 3. 4. Create a servlet, responding with “Hello …!” message. Where the “…” should be replaced by the user name from request parameter. Add response headers. Try to send other content to the client (not a html). Try to set the incorrect MIME type in a response. 20
The Model-View-Controller (MVC) Design Pattern 21
Servlet lifecycle 22
API 23
Task 1. 2. Write an application to demonstrate the servlet lifecycle. “How many instances of the same servlet are in the container? ” Give an answer and demonstrate it within an application. 24
Attributes are not parameters! 25
The Three Scopes: Context, Request, and Session 26
Access to scopes in a servlet 27
A request dispatch does the work on the server side 28
Servlet redirect makes the browser do the work 29
The eight listeners 30
Filters and Filer Chains 31
How to Implement a Filter 1. Write class that implements javax. servlet. Filter interface. 2. Define your filter and it’s mapping in DD. 32
Task Write an application according to the following customer requirements. 1. It necessary to create a chat application (without the registration of new users; all users are registered and stored in a file). 2. Users should be authenticated before the chat usage. 3. Application should use MVC design pattern. 4. Model bean containing user information should be initialized during the application startup. 5. Http. Session should be used to “remember” the user. 33
Being a JSP A JSP becomes a servlet. A servlet that you don’t create. The Container looks at your JSP, translates it into Java source code, and compiles it into a full-fl edged Java servlet class. But you’ve got to know what happens when the code you write in the JSP is turned into Java code. For those who don’t believe: jboss-as-7. 1. 1. Finalstandalonetmpworkjboss. webdefault-host<YOUR_ 34
JSP Elements 35
Task / Exercise 1. § § 2. § § Create an “Online Auction” application according to the following customer requirements: user can be a buyer or seller (not booth at the same time) all users are predefined in a storage (e. g. text/xml file, DBMS…) unauthorized users can not access application resources except static resources (images, html files…) once a user has logged in, she has an access to all resources Design specification requirements: all user requests within an application should be written to the log files current user information should be stored in a session context should be used MVC design pattern all kinds of scriptlets should be avoided 36
Bibliography § § google. com Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam (SCWCD) 37
Web&Servlets&Jsp.pptx