Presentation is loading. Please wait.

Presentation is loading. Please wait.

14-May-15 An Example Servlet Putting it all together.

Similar presentations


Presentation on theme: "14-May-15 An Example Servlet Putting it all together."— Presentation transcript:

1 14-May-15 An Example Servlet Putting it all together

2 Credits This is the first example in Head First Servlets & JSP by Brian Basham, Kathy Sierra, and Bert Bates This is an excellent book, and goes into considerably more detail than we will in this course

3 It starts with an HTML form...

4 The HTML page, 1 Beer Selection Beer Selection Page...the form (on the next slide)...

5 The HTML page, 2 Select beer characteristics: Color: light amber brown dark

6 The deployment descriptor The request goes to the server, with the action The name "SelectBeer.do" is not the name of an actual file anywhere; it is a name given to the user Partly, this is for security; you don’t want the user to have access to the actual file without going through your form The extension.do is just a convention used by this particular book; no extension is necessary It is up to the deployment descriptor to find the correct servlet to answer this request The deployment descriptor must be named web.xml

7 web.xml 1 -- boilerplate <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">...important stuff goes here...

8 web.xml 2 -- actual work Ch3 Beer com.example.web.BeerSelect Ch3 Beer /SelectBeer.do

9 BeerSelect.java 1 package com.example.web; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import com.example.model.BeerExpert; // notice this public class BeerSelect extends HttpServlet {... doPost method goes here... }

10 BeerSelect.java 2 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); }

11 MVC BeerSelect.java acts as the controller It delegates the actual work to a model, BeerExpert.java It delegates (forwards) the information to a JSP page that will provide the view RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response);

12 The model class BeerExpert is the model class; it computes results and adds them to the HttpServletRequest object Not the HttpServletResponse object; that’s the HTML output It returns, in the usual fashion, to the BeerSelect class, which will then forward it to the JSP

13 BeerExpert.java package com.example.model; import java.util.*; public class BeerExpert { public List getBrands(String color) { List brands = new ArrayList(); if (color.equals("amber")) { brands.add("Jack Amber"); brands.add("Red Moose"); } else { brands.add("Jail Pale Ale"); brands.add("Gout Stout"); } return brands; }

14 The JSP file The JSP file must have the extension.jsp It is basically HTML, plus a few JSP directives It receives the HttpServletRequest and the HttpServletResponse objects The HttpServletResponse object may have been partially written by the servlet (but it’s a bad idea) The resultant HTML page goes back to the user

15 result.jsp Beer Recommendations JSP <% List styles = (List)request.getAttribute("styles"); Iterator it = styles.iterator(); while (it.hasNext()) { out.print(" TRY: " + it.next()); } %>

16 Directory structure jakarta-tomcat-5.0.12/ | webapps/  this is http://m174pc4.cis.upenn.edu:8080/ | | beerV1/ | | | form.html | | | result.jsp | | | WEB-INF/ | | | | web.xml | | | | classes/ | | | | | com/ | | | | | | example/ | | | | | | | model/ | | | | | | | | BeerExpert.class | | | | | | | web/ | | | | | | | | BeerSelect.class | | | | lib/ | | yourLastName  when you ftp, this is where you are

17 Accessing the class server Tomcat should be running 24/7 on m174pc4.cis.upenn.edu To try it, point your browser to: http://m174pc4.cis.upenn.edu:8080/beerV1/form.html When you ftp to m174pc4, pwd will tell you that you are in a directory “ / ”, but you are really in a directory C:\Tomcat\webapps\yourLastName This is the top-level directory for your web applications You should be able to put an HTML file here, say, index.html, and access it with http://m174pc4.cis.upenn.edu:8080/yourLastName/index.html

18 The End


Download ppt "14-May-15 An Example Servlet Putting it all together."

Similar presentations


Ads by Google