Download presentation
Presentation is loading. Please wait.
1
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 1 Lecture 10 Object Oriented Programming in Java Advanced Topics Servlets
2
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 2 Today’s Lecture Trail: Servlets Lesson:overview,Cient Interaction, LifeCycle,... http://web2.java.sun.com/docs/books/tutorial/servlets/index.html Additional Link http://developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/introduction.ht ml
3
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 3 Servlet Architecture Client Browser Web server with servlet engine HTTP Servlet 1: send http request 2: call servlet with request info 5: send HTTP response 4: return information from servlet engine 3: perform logic
4
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 4 1: send HTTP request Handled by regular html tags examples: –simple http://localhost:8080/servlet/snoop –with parameters http://localhost:8080/servlet/snoop?username=alain –from a form post
5
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 5 2: call servlet with request info Handled by the web server transparent to the developer
6
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 6 3: perform logic Handled by a custom java class which inherits from the Servlet class
7
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 7 4: return response from servlet engine Handled by the web server transparent to the developer
8
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 8 5: final step The browser renders the html page which is returned In this class we will only deal with HTML, but others types could be returned by servlets –I.e.: audio, images,...
9
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 9 Overall Servlet API base class is HttpServlet APIs to: –initialize servlets –receive http requests –retrieve information on the request –send a response to the browser –maintain session across multiple invocations (remember that HTTP is session-less)
10
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 10 Base Class: HttpServlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { … } Example from HelloWorldServlet:
11
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 11 Initialization of Servlet Example from PhoneServlet.java public class PhoneServlet extends HttpServlet { private Hashtable phones = new Hashtable(); private String dataFilePath = "phonelist"; // Public Methods public void init(ServletConfig conf) throws ServletException { super.init(conf); String param = getInitParameter("phonelist"); if (param != null) { dataFilePath = param; }... readFromFile(); }
12
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 12 HTTP GET and POST Example from PhoneServlet: public class PhoneServlet extends HttpServlet { public void init(ServletConfig conf) throws ServletException {... } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {... } public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {... } doGet is called when we have HTTP GET doPost is called when we have HTTP POST
13
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 13 Inside doGet and doPost Three usual steps: –read request data such as input parameters –set response headers length, type –write the response data
14
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 14 Get Request Data and Parameters Example from PhoneServlet public void doPost (HttpServletRequest req, HttpServletResponse res)throws IOException {... String name, number, opcode; name = req.getParameter("name"); number = req.getParameter("number"); opcode = req.getParameter("opcode");... }
15
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 15 Set Response Headers Example from PhoneServlet: public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); ServletOutputStream out = res.getOutputStream(); String title = "Phones";... out.println(" Phone Servlet Output "); out.println(" "); out.println(" Phone Records "); out.println(" ");... )
16
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 16 Create response Example from PhoneServlet: public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); ServletOutputStream out = res.getOutputStream(); String title = "Phones";... out.println(" Phone Servlet Output "); out.println(" "); out.println(" Phone Records "); out.println(" ");... )
17
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 17 HTTP protocol is session-less –between two requests the web server does not remember the caller protocol is as follows: –browser connects to HTTP server –browser makes a request for a web resource –web server looks for the resource –web server forwards the resource to the browser –web server disconnects the browser
18
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 18 Sessions with Servlets The servlet engine fills-in the gap and provides a way to keep a session across multiple requests to a web server Mechanism is handled by the servlet engine “on demand” by the servlets The base class is HttpSession
19
June 1, 2000 Object Oriented Programming in Java (95-707) Advanced Topics 19 HttpSession Example from SessionServlet.java public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true);... //Here's the meat Integer ival = (Integer) session.getValue("sessiontest.counter"); if (ival==null) ival = new Integer(1); else ival = new Integer(ival.intValue() + 1); session.putValue("sessiontest.counter", ival);... )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.