Download presentation
Presentation is loading. Please wait.
Published byMadilyn Yandell Modified over 10 years ago
1
1 Servlets Based on Notes by Dave Hollinger & Ethan Cerami Also, the Online Java Tutorial by Sun
2
2 Netprog 2002 - Servlets What is a Servlet? A Servlet is a Java program that extends the capabilities of servers.A Servlet is a Java program that extends the capabilities of servers. Inherently multi-threaded.Inherently multi-threaded. –Each request launches a new thread. Input from client is automatically parsed into a Request variable.Input from client is automatically parsed into a Request variable.
3
3 Netprog 2002 - Servlets Servlet Life Cycle Servlet Instantiation: Loading the servlet class and creating a new instance Servlet Initialization: Initialize the servlet using the init() method Servlet processing: Handling 0 or more client requests using the service() method Servlet Death: Destroying the servlet using the destroy() method
4
4 Netprog 2002 - Servlets Servlet-Enabled:ServerClient Form:Client Http Response Lookup Static Page or Launch Process/Thread to Create Output On first access launch the servlet program. Launch separate thread to service each request. Launch Thread for Client Launch Servlet Http Request Lookup Http Response
5
5 Netprog 2002 - Servlets Writing Servlets Install a web server capable of launching and managing servlet programs.Install a web server capable of launching and managing servlet programs. Install the javax.servlet package to enable programmers to write servlets.Install the javax.servlet package to enable programmers to write servlets. Ensure CLASSPATH is changed to correctly reference the javax.servlet package.Ensure CLASSPATH is changed to correctly reference the javax.servlet package. Define a servlet by subclassing the HttpServlet class and adding any necessary code to the doGet() and/or doPost() and if necessary the init() functions.Define a servlet by subclassing the HttpServlet class and adding any necessary code to the doGet() and/or doPost() and if necessary the init() functions.
6
6 Netprog 2002 - Servlets Handler Functions Each HTTP Request type has a separate handler function.Each HTTP Request type has a separate handler function. –GET -> doGet(HttpServletRequest, HttpServletResponse) –POST -> doPost(HttpServletRequest, HttpServletResponse) –PUT -> doPut (HttpServletRequest, HttpServletResponse) –DELETE -> doDelete (HttpServletRequest, HttpServletResponse) –TRACE -> doTrace (HttpServletRequest, HttpServletResponse) –OPTIONS -> doOptions (HttpServletRequest, HttpServletResponse)
7
7 Netprog 2002 - Servlets A Servlet Template import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletTemplate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Use "request" to read incoming HTTP headers // (e.g. cookies) and HTML form data (e.g. data the user // entered and submitted). // Use "response" to specify the HTTP response status // code and headers (e.g. the content type, cookies). PrintWriter out = response.getWriter(); // Use "out" to send content to browser }
8
8 Netprog 2002 - Servlets Important Steps Import the Servlet API: import javax.servlet.*; import javax.servlet.http.*; Extend the HTTPServlet class Full servlet API available at: http://www.java.sun.com/products/servlet/2.2/j avadoc/index.html You need to overrride at least one of the request handlers! Get an output stream to send the response back to the client All output is channeled to the browser.
9
9 Netprog 2002 - Servlets doGet and doPost The handler methods each take two parameters: HTTPServletRequest : encapsulates all information regarding the browser request. Form data, client host name, HTTP request headers. HTTPServletResponse : encapsulate all information regarding the servlet response. HTTP Return status, outgoing cookies, HTML response. If you want the same servlet to handle both GET and POST, you can have doGet call doPost or vice versa. Public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {doPost(req,res);}
10
10 Netprog 2002 - Servlets Hello World Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(" \n" + " Hello WWW \n" + " \n" + " Hello WWW \n" + " "); }
11
11 Netprog 2002 - Servlets getParameter() Use getParameter() to retrieve parameters from a form by name.Use getParameter() to retrieve parameters from a form by name. String sdiam = request.getParameter("diameter"); Named Field values HTML FORM In a Servlet
12
12 Netprog 2002 - Servlets getParameter() cont’d getParameter() can return three things:getParameter() can return three things: –String: corresponds to the parameter. –Empty String: parameter exists, but no value provided. –null: Parameter does not exist.
13
13 Netprog 2002 - Servlets getParameterValues() Used to retrieve multiple form parameters with the same name.Used to retrieve multiple form parameters with the same name. For example, a series of checkboxes all have the same name, and you want to determine which ones have been selected.For example, a series of checkboxes all have the same name, and you want to determine which ones have been selected. Returns an array of Strings.Returns an array of Strings.
14
14 Netprog 2002 - Servlets getParameterNames() Returns an Enumeration object.Returns an Enumeration object. By cycling through the enumeration object, you can obtain the names of all parameters submitted to the servlet.By cycling through the enumeration object, you can obtain the names of all parameters submitted to the servlet. Note that the Servlet API does not specify the order in which parameter names appear.Note that the Servlet API does not specify the order in which parameter names appear.
15
15 Netprog 2002 - Servlets Circle Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class circle extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println( " Circle Info \n"); try{ String sdiam = request.getParameter("diameter"); double diam = Double.parseDouble(sdiam); out.println(" Diam: " + diam + " Area: " + diam/2.0 * diam/2.0 * 3.14159 + " Perimeter: " + 2.0 * diam/2.0 * 3.14159); } catch ( NumberFormatException e ){ out.println("Please enter a valid number"); } out.println(" "); } Attach a PrintWriter to Response Object Specify HTML output. Subclass HttpServlet.
16
16 Netprog 2002 - Servlets Cookies and Servlets The HttpServletRequest class includes the “getCookies()” function.The HttpServletRequest class includes the “getCookies()” function. –This returns an array of cookies, or null if there aren’t any. Cookies can then be accessed using three methods.Cookies can then be accessed using three methods. –String getName() –String getValue() –String getVersion()
17
17 Netprog 2002 - Servlets Cookies & Servlets cont’d Cookies can be created using HttpServletResponse.addCookie() and the constructor new Cookie(String name, String value);Cookies can be created using HttpServletResponse.addCookie() and the constructor new Cookie(String name, String value); –Expiration can be set using setMaxAge(int seconds)
18
18 Netprog 2002 - Servlets Sessions & Servlets Servlets also support simple transparent sessionsServlets also support simple transparent sessions –Interface HttpSession –Get one by using HttpServletRequest.getSession() You can store & retrieve values in the sessionYou can store & retrieve values in the session –putValue(String name, String value) –String getValue(String name) –String[] getNames()
19
19 Netprog 2002 - Servlets Sessions & Servlets cont’d Various other information is storedVarious other information is stored –long getCreationTime() –String getId() –long getLastAccessedTime() Also can set timeout before session destructionAlso can set timeout before session destruction –int getMaxInactiveInterval() –setMaxInactiveInterval(int seconds)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.