1 / 25

Java support for WWW

Java support for WWW. Babak Esfandiari (sources: Qusay Mahmoud, Roger Impey, textbook). Java support…. The URL class Applets Servlets and JSPs…. The URL class. A facility to retrieve objects from the network Decodes the object based on its extension

cole-rose
Download Presentation

Java support for WWW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java support for WWW Babak Esfandiari (sources: Qusay Mahmoud, Roger Impey, textbook)

  2. Java support… • The URL class • Applets • Servlets and JSPs…

  3. The URL class • A facility to retrieve objects from the network • Decodes the object based on its extension • For example, a .gif file will generate an Image object • Can be extended to any object type that you want • The objects must obviously be addressable by a URL • So far, support for “http:” and “file:” • Can be extended to support “ftp:” and others

  4. URL class example URL url = new URL(http://java.sun.com/index.html); InputStream in = url.openStream(); … Or: URL url = new URL(http://java.sun.com/duke.gif); Image im = (Image) url.getContent(); • An HTTP connection is made • See full URL doc

  5. Java Applets • Client-side • See code sample in course web site

  6. Servlets • What is a servlet? • Servlets vs. CGI scripts • How do they work? • Example

  7. What is a Servlet? • A server-side technology • Designed to overcome some limitations of existing technologies (e.g. CGI is stateless) • Characteristics: • A light-weight task that can be executed as a thread • A servlet can remain in memory (a CGI script terminates when it finished) • Advantages: • A servlet can service multiple client requests • Can handle multiple clients without reloading/reinitialization

  8. Servlets…. • Servlets are written in Java • Can be used to: • Generate dynamic contents • Talk to databases • Work with cookies • Session management

  9. How do they work? HTTP Receive Request Engine Create Thread Servlet Gen Response Send Response

  10. Servlet Framework • The package: javax.servlet • At the top level there are three interfaces: • ServletConfig, Servlet, Serializable • The servlet interface: init() service() destroy() getServiceConfig() getServiceInfo()

  11. The GenericServlet • It is an abstract class that implements Servlet public abstract GenericServlet implements Servlet, ServletConfig, Serializable { void init() abstract void service() void destroy() ServletConfig getServletConfig() String getServiceInfo() void log() }

  12. The HttpServlet • It is an abstract class that extends the GenericServlet abstract class • It provides a convenient framework for handling the HTTP protocol • These two classes (GenericServlet and HttpServlet) ease the task of writing servlets • In the simplest case, you need to provide implementation for service()

  13. Life cycle of a servlet • Servlet is loaded into memory by server: init() • Servlet processes client requests: service() • Servlet is remove by server: destroy() • service() is responsible for handling incoming client requests • public void service(ServiceRequest request, ServletResponse response) throws ServletException, IOException • Delegates HTTP requests: doGet() & doPost()

  14. Retrieving Parameters • Use: • public String getParameter(String name) • public String[] getParameterValues(String name) • So if you have a parameter name “username” in a form then to retrieve the value use: • String name = request.getParameter(“username”);

  15. Example: • Consider the following form: <form action="RequestParamExample" method=POST> First Name:<input type=text size=20 name=firstname> <br> Last Name:<input type=text size=20 name=lastname> <br> <input type=submit> </form>

  16. Example…. • In a browser, this would look like: • When “Submit Query” is clicked we have the output: • First Name := Qusay • Last Name := Mahmoud

  17. Example • The servlet: public class RequestParams extends HttpServlet { public doPost(HttpServletRequest re, HttpServletResponse response) { PrintWriter out = response.getWriter(); out.println("<html><body><head><title>test</title></head"); out.println("<body>"); String firstName = req.getParameter("firstname"); String lastName = req.getParameter("lastname"); out.println("First Name := " + firstName + "<br>"); out.println("Last Name := " + lastName); out.println("</body></html>"); } }

  18. Servlets for WAP • It is possible to use Servlets to generate WML PrintWriter out = response.getWriter(); out.println("<?xml version=\"1.0\"?>"); out.println("<!DOCTYPE wml …etc"); out.println("<wml>"); out.println("<card title=\"MobileDate\">"); out.println(" <p align=\"center\">"); out.println("Date and Time Service<br/>"); out.println("Date is: "+ new java.util.Date()); …etc

  19. What else? • Programming cookies and keeping track of sessions is easy with Servlets….APIs provided for this • Explore Cookies and Session Management on your own! • Something to think about: handheld devices do not support cookies, so how do you keep track of sessions??

  20. JSP • Server-side technology • Enables you to embed Java code within an HTML document • JSP documents have the extension .jsp • When an HTTP request is received, the compilation engine converts the JSP document into a Java Servlet then the servlet will be loaded • Java code is embedded between <% and %>

  21. Example // file: hello.jsp <html><head><title>example</title></head> <body> <% String visitor = request.getParameter(“user”); if (visitor == null) visitor = “there”; %> Hello, <%= visitor %>! </body> </html>

  22. Example • Request parameters are passed into JSP pages using normal HTTP parameter mechanisms (using GET and POST) • Therefore, for the hello.jsp: • If invoked with: http://host…/hello.jsp it will print “Hello, World!” • If invoked with: http://host…/hello.jsp?user=Mary, it will print: “Hello, Mary!”

  23. JSP for WAP <?xml version…> <!DOCTYPE…etc> <%response.setContentTyp("text/vnd.wap.wml") %> <wml> <card title="MobileDate" Date and Time Service<br/> Date is: <%= new java.util.Date() %> </card> </wml> Or you can use the PAGE directive…

  24. What else? • Additional characters may appear after the initial <%, such as !, =, or @ to further prescribe the meaning of the tag • <%! Double radius = 3.5; %> • <%= 2 * Math.PI * radius %> • <%@ include file=“notice.html” %> • It is possible to create re-usable components with JSP using Java Beans • Explore on your own!

  25. HTTP Servers • If you don’t have access to an HTTP server, I’d recommend that you install Jakarta-Tomcat for your personal use ….so you explore Servlets and JSP further…. • http://jakarta.apache.org/tomcat

More Related