Servlet Tutorial Power Point

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Servlet Tutorial Power Point as PDF for free.

More details

  • Words: 692
  • Pages: 18
An Example Servlet Putting it all together

Oct 17, 2008

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

It starts with an HTML form...

The HTML page, 1 Beer Selection

Beer Selection Page

...the form (on the next slide)...

The HTML page, 2
Select beer characteristics:

Color: <select name="color" size="1">



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

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...

web.xml 2 -- actual work <servlet> <servlet-name>Ch3 Beer <servlet-class> com.example.web.BeerSelect <servlet-mapping> <servlet-name>Ch3 Beer /SelectBeer.do

BeerSelect.java 1 package com.example.web; import import import import

javax.servlet.*; javax.servlet.http.*; java.io.*; java.util.*;

import com.example.model.BeerExpert; // notice this public class BeerSelect extends HttpServlet { ... doPost method goes here. .. }

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); }

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);

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

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; } }

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

result.jsp <%@ page import="java.util.*" %>

Beer Recommendations JSP

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

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

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

The End


Related Documents