Java Servlets

23
1 Java Servlets • Dynamic Web Pages (Program Files) • Servlets versus Java Server Pages • Implementing Servlets • Example: F15 Warranty Registration • Tomcat Configuration for Servlet Processing • Starting and Stopping Tomcat Service

description

Java Servlets. Dynamic Web Pages (Program Files) Servlets versus Java Server Pages Implementing Servlets Example: F15 Warranty Registration Tomcat Configuration for Servlet Processing Starting and Stopping Tomcat Service. 1. 1. Dynamic Web Pages. - PowerPoint PPT Presentation

Transcript of Java Servlets

Page 1: Java Servlets

111

Java Servlets

• Dynamic Web Pages (Program Files)

• Servlets versus Java Server Pages

• Implementing Servlets

• Example: F15 Warranty Registration

• Tomcat Configuration for Servlet Processing

• Starting and Stopping Tomcat Service

Page 2: Java Servlets

222

Dynamic Web Pages• The URL points to an “executable program” file

instead of to a “static” HTML document file

• The program generates response based on input request parameters and data stored on the server

• It writes response in HTML format to stdout

• These programs can be scripts PERL, PHP, etc or compiled C CGI programs

• They can also be Java Programs, e.g. Servlets

• Servlets can be auto-generated from JSP pages

Page 3: Java Servlets

33

Servlets versus Java Server Pages

• A servlet is a .java source file with code that reads user submitted parameters and writes HTML formatted text back to the user

• It can also access or update files on the server

• Much like any Java program:– It is compiled to a .class file– Data is displayed to user based on java statements

Page 4: Java Servlets

44

Servlets versus Java Server Pages

• A Java Server Page is a “markup document” with snippets of Java code included to control processing/generation of response to the user

• It can also access or update files on the server• Much like any HTML page:

– It is not compiled by the developer (a servlet is generated and compiled behind the scenes)

– Data is displayed to user based on markup text

Page 5: Java Servlets

55

Servlets versus Java Server Pages• There are advantages and disadvantages for using a

servlet or a Java Server Page (JSP)• Primarily consider the ratio of code to markup:

– The more code the greater the case for a servlet– The more markup the greater the case for a JSP

• The code sections of a JSP may become difficult to debug because the compiler works on the generated ".java" source file - not directly on the JSP

• For a page with simple server-side functions, such as altering output based on a few request parameters, a JSP can be much simpler to build than a servlet

Page 6: Java Servlets

66

Java Servlets

• Import javax.servlet.* and javax.servlet.http.*

• Class extends httpServlet (An abstract class)

• No need to implement a constructor method

• Use methods init and destroy – like Applets

• Implement methods doPost and/or doGet

• Compile your servlet source code as usual

• Save class file in myapp/WEB-INF/classes6

Page 7: Java Servlets

777

Java Servlets• GET method

– If your form has METHOD="Get" in its FORM tag, implement the doGet method

• POST method– If your form has METHOD="Post" in its FORM tag,

implement the doPost method

• For flexibility, implement both methods– Have one method call the other passing the received

arguments so you don’t need to write the code twice

Page 8: Java Servlets

888

Java Servlets Example• F15.html sends either Get or Post request• To localhost/myapp/F15 (a Servlet)• Tomcat servlet container invokes either the

doGet method or doPost method depending on the type of request received

• doGet/doPost obtains the input data via calls to the request object’s getParameter method

• Generates HTML response via response object’s methods and PrintWriter object obtained from response.getWriter method

Page 9: Java Servlets

9

F15 Class

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.*;

public class F15 extends HttpServlet

{

9

Page 10: Java Servlets

10

F15 doGet Method

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

{

this.doPost(request, response);

}

10

Page 11: Java Servlets

11

F15 doPost Method

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

{

// get the input data from the form

String name = request.getParameter("Name");

String title = request.getParameter("Title");

String model = request.getParameter("Model");

. . .

11

Page 12: Java Servlets

12

F15 doPost Method

// start the usual stuff for the response

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// PrintWriter is the same class as System.out

String docType =

“<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0” +

“Transitional//EN\”>\n”;

out.println(docType + “<HTML>\n” +

“<HEAD><TITLE>F15 Response</TITLE></HEAD>” +

“ \n<BODY>”);12

Page 13: Java Servlets

13

F15 doPost Method

// now compose our response based on the form input data

out.println("To: " + name + "<br><br>" + title);

out.println("<p>We at MakDonut-Duglass wish you the ” +

“best of luck using your F15 " + model + " model to " +

. . .

// and end with the usual stuff for the response

out.println("</BODY></HTML>");

}

}

13

Page 14: Java Servlets

14

Tomcat File Directory Structure• Path to Tomcat in Program Files

C:\Program Files\Apache Software Foundation\Tomcat 6.0

• Top Level Subdirectories of Interest\conf – contains configuration files in xml format

\webapps – contains ROOT and “myapp” sub-directories for the top level pages of web applications

\work – contains source code and class files for servlets generated from JSP pages (many levels below)

\logs – contains log files with error messages or output from any debug write statements you use in your code

Page 15: Java Servlets

15

Tomcat Configuration

• Tomcat has overall configuration files in:– Tomcat 6.0\conf folder

• server.xml• tomcat-users.xml• context.xml• web.xml

• Tomcat has configuration files for individual web applications in:– Tomcat 6.0\webapps\myapp\WEB-INF

• web.xml

Page 16: Java Servlets

16

Tomcat Configuration (server.xml)

• Contains configuration for port number on which the service will be offered<Connector port=“80”

protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8443” />

• Default file came set up with port 8080

Page 17: Java Servlets

17

Tomcat Configuration (tomcat-users.xml)

• User account names, passwords and privileges<tomcat-users>

  <role rolename=“manager”/>  <role rolename=“admin”/>  <user username=“admin”

password=“********”

roles=“admin,manager”/>

</tomcat-users>

Page 18: Java Servlets

18

Tomcat Configuration (context.xml)

• Context Useful for Development Activity<Context reloadable="true" privileged="true">

• Reloadable = Enables monitoring of servlet class files for reloading without server restart

• Privileged = Allows Use of Invoker Servlet– Allows access to servlets without a definition and

a mapping in the web.xml configuration file(s)

• Both normally set to false for production

Page 19: Java Servlets

19

Tomcat Configuration (web.xml)• In folder conf/web.xml• Invoker Servlet Definition / Initialization

  <servlet>    <servlet-name>jsp</servlet-name>    <servlet-class>org.apache.jasper.servlet.JspServlet

</servlet-class>    <init-param>       <param-name>fork</param-name>       <param-value>false</param-value>    </init-param>    <init-param>       <param-name>xpoweredBy</param-name>       <param-value>false</param-value>    </init-param>    <load-on-startup>3</load-on-startup>

</servlet>

Page 20: Java Servlets

20

Tomcat Configuration (web.xml)

• In folder conf/web.xml• Invoker Servlet Mapping to URL

<servlet-mapping>    <servlet-name>invoker</servlet-name>    <url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

Page 21: Java Servlets

21

Tomcat Configuration (web.xml)

• In folder myapp/WEB-INF/web.xml• F15 Servlet Definition / Initialization

<servlet>

<servlet-name>F15</servlet-name>

<servlet-class>F15</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>2</param-value>

</init-param>

</servlet>

Page 22: Java Servlets

22

Tomcat Configuration (web.xml)

• In folder myapp/WEB-INF/web.xml• F15 Servlet Mapping to URL

<servlet-mapping

<servlet-name>F15</servlet-name>

<url-pattern>/F15</url-pattern>

</servlet-mapping>

Page 23: Java Servlets

23

Configure Tomcat Service

Can use buttons to start and stop the Tomcat Service