SlideShare a Scribd company logo
Cis 274   intro
I
       •Servlets

 II
       •Java Server Pages (JSP)

III
       •Preparing the Dev. Enviornment

IV
       •Web-App Folders and Hierarchy

 V
       •Writing the First Servlet

VII
       •Compiling

VIII
       •Deploying a Sample Servlet (Packaged & Unpackaged)

VI
       •Writing the First JSP
   A servlet is a Java programming language class used to extend the
    capabilities of servers that host applications accessed via a request-
    response programming model

   A servlet is like any other java class

   Although servlets can respond to any type of request, they are
    commonly used to extend the applications hosted by Web servers
   Use regular HTML for most of page

   Mark dynamic content with special tags

   A JSP technically gets converted to a servlet but it looks more like
    PHP files where you embed the java into HTML.

   The character sequences <% and %> enclose Java expressions, which
    are evaluated at run time

                        <%= new java.util.Date() %>
Cis 274   intro
   Java Development Kit (JDK)
    ◦ http://www.oracle.com/technetwork/java/javase/downloads/index.html


   Apache Tomcat webserver
    ◦ http://tomcat.apache.org/download-70.cgi


   Set JAVA_HOME Environmental Variable
    ◦   Right click on “Computer” (Win 7), and click on “Properties”
    ◦   Click on “Advanced System Settings” on top right corner
    ◦   On the new window opened click on “Environment Variables”
    ◦   In the “System Variables” section, the upper part of the window, click on “New…”
           Variable name: JAVA_HOME
           Variable value: Path to the jdk directory (in my case C:Program FilesJavajdk1.6.0_21)
    ◦ Click on “OK”
   Set CATALINA_HOME Environmental Variable
    ◦   Right click on “Computer” (Win 7), and click on “Properties”
    ◦   Click on “Advanced System Settings” on top right corner
    ◦   On the new window opened click on “Environment Variables”
    ◦   In the “System Variables” section, the upper part of the window, click on “New…”
           Variable name: CATALINA_HOME
           Variable value: Path to the apache-tomcat directory (in my case D:Serversapache-tomcat-
            7.0.12-windows-x86apache-tomcat-7.0.12)
    ◦ Click on “OK”


    Note: You might need to restart your computer after adding environmental variables to
                                make changes to take effect
   In your browser type: localhost:8080
    ◦ If tomcat’s page is opened then the webserver installation was successful




   Check JAVA_HOME variable:
    ◦ in command prompt type: echo %JAVA_HOME%
    ◦ Check to see the variable value and if it is set correctly
   All the content should be placed under tomcat’s “webapps” directory
• $CATALINA_HOMEwebappshelloservlet": This directory is known as context root for the web context
  "helloservlet". It contains the resources that are visible by the clients, such as HTML, CSS, Scripts and
  images. These resources will be delivered to the clients as it is. You could create sub-directories such as
  images, css and scripts, to further categories the resources accessible by clients.


• "$CATALINA_HOMEwebappshelloservletWEB-INF": This is a hidden directory that is used by the server.
  It is NOT accessible by the clients directly (for security reason). This is where you keep your application-
  specific configuration files such as "web.xml" (which we will elaborate later). It's sub-directories contain
  program classes, source files, and libraries.


• "$CATALINA_HOMEwebappshelloservletWEB-INFsrc": Keep the Java program source files. It is
  optional but a good practice to separate the source files and classes to facilitate deployment.


• "$CATALINA_HOMEwebappshelloservletWEB-INFclasses": Keep the Java classes (compiled from the
  source codes). Classes defined in packages must be kept according to the package directory structure.


• "$CATALINA_HOMEwebappshelloservletWEB-INFlib": keep the libraries (JAR-files), which are provided
  by other packages, available to this webapp only.
<HTML>
<HEAD>
<TITLE>Introductions</TITLE>
</HEAD>
<BODY>
<FORM METHOD=GET ACTION="/servlet/Hello">
If you don't mind me asking, what is your name?
<INPUT TYPE=TEXT NAME="name"><P>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Hello extends HttpServlet {

    public void doGet(HttpServletRequest req, HttpServletResponse res)
                      throws ServletException, IOException {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();

        String name = req.getParameter("name");
        out.println("<HTML>");
        out.println("<HEAD><TITLE>Hello, " + name + "</TITLE></HEAD>");
        out.println("<BODY>");
        out.println("Hello, " + name);
        out.println("</BODY></HTML>");
    }

    public String getServletInfo() {
      return "A servlet that knows the name of the person to whom it's" +
           "saying hello";
    }
}
   The web.xml file
    defines each
    servlet and JSP      <?xml version="1.0" encoding="ISO-8859-1"?>
    page within a Web
    Application.         <!DOCTYPE web-app
                           PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
                           "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
   The file goes into
    the WEB-INF          <web-app>
    directory              <servlet>
                             <servlet-name>
                               hi
                             </servlet-name>
                             <servlet-class>
                               HelloWorld
                             </servlet-class>
                           </servlet>
                           <servlet-mapping>
                             <servlet-name>
                               hi
                             </servlet-name>
                             <url-pattern>
                               /hello.html
                             </url-pattern>
                           </servlet-mapping>
                         </web-app>
   Compile the packages:
    "C:Program FilesJavajdk1.6.0_17binjavac" <Package Name>*.java -d .


   If external (outside the current working directory) classes and
    libraries are used, we will need to explicitly define the CLASSPATH to
    list all the directories which contain used classes and libraries
    set CLASSPATH=C:libjarsclassifier.jar ;C:UserProfilingjarsprofiles.jar


   -d (directory)
    ◦ Set the destination directory for class files. The destination directory must
      already exist.
    ◦ If a class is part of a package, javac puts the class file in a subdirectory
      reflecting the package name, creating directories as needed.

   -classpath
    ◦ Set the user class path, overriding the user class path in the CLASSPATH environment
      variable.
    ◦ If neither CLASSPATH or -classpath is specified, the user class path consists of the
      current directory
                 java -classpath C:javaMyClasses utility.myapp.Cool
   What does the following command do?




    Javac –classpath .;..classes;”D:Serversapache-
    tomcat-6.0.26-windows-x86apache-tomcat-
    6.0.26libservlet-api.jar” src*.java –d ./test
Cis 274   intro
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SimpleCounter extends HttpServlet {

    int count = 0;

    public void doGet(HttpServletRequest req, HttpServletResponse res)
                         throws ServletException, IOException {
      res.setContentType("text/plain");
      PrintWriter out = res.getWriter();
      count++;
      out.println("Since loading, this servlet has been accessed " +
              count + " times.");
    }
}
JSP
HTML
                                      <HTML>
<HTML>
                                      <BODY>
<BODY>
Hello, world                          Hello! The time is now <%= new java.util.Date() %>
</BODY>                               </BODY>
</HTML>                               </HTML>




                  Same as HTML, but just save it with .jsp extension
AUA – CoE
Apr.11, Spring 2012
1. Hashtable is synchronized, whereas HashMap is not.
    1. This makes HashMap better for non-threaded applications, as
       unsynchronized Objects typically perform better than synchronized ones.


2. Hashtable does not allow null keys or values. HashMap allows one null key and
   any number of null values.

More Related Content

DOC
PDF
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorial
PPT
Mavenppt
PPTX
Jsp and jstl
PPT
PPTX
DataBase Connectivity
PPTX
Resthub lyonjug
PPTX
Resthub framework presentation
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorial
Mavenppt
Jsp and jstl
DataBase Connectivity
Resthub lyonjug
Resthub framework presentation

What's hot (20)

PPT
Maven in Mule
PDF
Spring mvc
PDF
Tomcat + other things
PDF
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
PPT
JAVA Servlets
PPT
Knowledge Sharing : Java Servlet
PDF
[Strukelj] Why will Java 7.0 be so cool
PPTX
Mule esb
PDF
Lecture 2: Servlets
PPTX
jsp MySQL database connectivity
PPT
Maven
PPT
ODP
Running ms sql stored procedures in mule
PPTX
Java/Servlet/JSP/JDBC
PPTX
Javax.servlet,http packages
PPTX
PDF
Lecture 5 JSTL, custom tags, maven
PPT
Data Access with JDBC
PPTX
Servletarchitecture,lifecycle,get,post
PPTX
SBT by Aform Research, Saulius Valatka
Maven in Mule
Spring mvc
Tomcat + other things
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
JAVA Servlets
Knowledge Sharing : Java Servlet
[Strukelj] Why will Java 7.0 be so cool
Mule esb
Lecture 2: Servlets
jsp MySQL database connectivity
Maven
Running ms sql stored procedures in mule
Java/Servlet/JSP/JDBC
Javax.servlet,http packages
Lecture 5 JSTL, custom tags, maven
Data Access with JDBC
Servletarchitecture,lifecycle,get,post
SBT by Aform Research, Saulius Valatka
Ad

Viewers also liked (6)

PPTX
Ayb School Presentation
PPT
PPT
2006 Philippine eLearning Society National Conference
PDF
Learn How SMBs Are Cutting IT Costs By Over 50%
PPT
Tect presentation classroom_based_technology_v2010-12-1
PPT
Tetc 2010 preso
Ayb School Presentation
2006 Philippine eLearning Society National Conference
Learn How SMBs Are Cutting IT Costs By Over 50%
Tect presentation classroom_based_technology_v2010-12-1
Tetc 2010 preso
Ad

Similar to Cis 274 intro (20)

DOCX
Html servlet example
DOC
Java Servlets & JSP
PPT
Introduction to Java Servlets and JSP (1).ppt
PPT
Java Servlets
PPTX
Jsp and Servlets
PDF
Java servlet technology
PPTX
Web container and Apache Tomcat
PPT
Lect06 tomcat1
PPT
Tomcat server
PPTX
18CSC311J Web Design and Development UNIT-3
PPT
Web Applications and Deployment
PPTX
Chapter 3 servlet & jsp
PPTX
Advance Java Topics (J2EE)
PDF
01 web-apps
PDF
01 web-apps
PDF
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
PPTX
AJppt.pptx
PDF
JavaOne India 2011 - Servlets 3.0
Html servlet example
Java Servlets & JSP
Introduction to Java Servlets and JSP (1).ppt
Java Servlets
Jsp and Servlets
Java servlet technology
Web container and Apache Tomcat
Lect06 tomcat1
Tomcat server
18CSC311J Web Design and Development UNIT-3
Web Applications and Deployment
Chapter 3 servlet & jsp
Advance Java Topics (J2EE)
01 web-apps
01 web-apps
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
AJppt.pptx
JavaOne India 2011 - Servlets 3.0

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
The Rise and Fall of 3GPP – Time for a Sabbatical?
Network Security Unit 5.pdf for BCA BBA.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
Group 1 Presentation -Planning and Decision Making .pptx
Assigned Numbers - 2025 - Bluetooth® Document
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
cuic standard and advanced reporting.pdf
1. Introduction to Computer Programming.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Cis 274 intro

  • 2. I •Servlets II •Java Server Pages (JSP) III •Preparing the Dev. Enviornment IV •Web-App Folders and Hierarchy V •Writing the First Servlet VII •Compiling VIII •Deploying a Sample Servlet (Packaged & Unpackaged) VI •Writing the First JSP
  • 3. A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request- response programming model  A servlet is like any other java class  Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers
  • 4. Use regular HTML for most of page  Mark dynamic content with special tags  A JSP technically gets converted to a servlet but it looks more like PHP files where you embed the java into HTML.  The character sequences <% and %> enclose Java expressions, which are evaluated at run time <%= new java.util.Date() %>
  • 6. Java Development Kit (JDK) ◦ http://www.oracle.com/technetwork/java/javase/downloads/index.html  Apache Tomcat webserver ◦ http://tomcat.apache.org/download-70.cgi  Set JAVA_HOME Environmental Variable ◦ Right click on “Computer” (Win 7), and click on “Properties” ◦ Click on “Advanced System Settings” on top right corner ◦ On the new window opened click on “Environment Variables” ◦ In the “System Variables” section, the upper part of the window, click on “New…”  Variable name: JAVA_HOME  Variable value: Path to the jdk directory (in my case C:Program FilesJavajdk1.6.0_21) ◦ Click on “OK”
  • 7. Set CATALINA_HOME Environmental Variable ◦ Right click on “Computer” (Win 7), and click on “Properties” ◦ Click on “Advanced System Settings” on top right corner ◦ On the new window opened click on “Environment Variables” ◦ In the “System Variables” section, the upper part of the window, click on “New…”  Variable name: CATALINA_HOME  Variable value: Path to the apache-tomcat directory (in my case D:Serversapache-tomcat- 7.0.12-windows-x86apache-tomcat-7.0.12) ◦ Click on “OK” Note: You might need to restart your computer after adding environmental variables to make changes to take effect
  • 8. In your browser type: localhost:8080 ◦ If tomcat’s page is opened then the webserver installation was successful  Check JAVA_HOME variable: ◦ in command prompt type: echo %JAVA_HOME% ◦ Check to see the variable value and if it is set correctly
  • 9. All the content should be placed under tomcat’s “webapps” directory
  • 10. • $CATALINA_HOMEwebappshelloservlet": This directory is known as context root for the web context "helloservlet". It contains the resources that are visible by the clients, such as HTML, CSS, Scripts and images. These resources will be delivered to the clients as it is. You could create sub-directories such as images, css and scripts, to further categories the resources accessible by clients. • "$CATALINA_HOMEwebappshelloservletWEB-INF": This is a hidden directory that is used by the server. It is NOT accessible by the clients directly (for security reason). This is where you keep your application- specific configuration files such as "web.xml" (which we will elaborate later). It's sub-directories contain program classes, source files, and libraries. • "$CATALINA_HOMEwebappshelloservletWEB-INFsrc": Keep the Java program source files. It is optional but a good practice to separate the source files and classes to facilitate deployment. • "$CATALINA_HOMEwebappshelloservletWEB-INFclasses": Keep the Java classes (compiled from the source codes). Classes defined in packages must be kept according to the package directory structure. • "$CATALINA_HOMEwebappshelloservletWEB-INFlib": keep the libraries (JAR-files), which are provided by other packages, available to this webapp only.
  • 11. <HTML> <HEAD> <TITLE>Introductions</TITLE> </HEAD> <BODY> <FORM METHOD=GET ACTION="/servlet/Hello"> If you don't mind me asking, what is your name? <INPUT TYPE=TEXT NAME="name"><P> <INPUT TYPE=SUBMIT> </FORM> </BODY> </HTML>
  • 12. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String name = req.getParameter("name"); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello, " + name + "</TITLE></HEAD>"); out.println("<BODY>"); out.println("Hello, " + name); out.println("</BODY></HTML>"); } public String getServletInfo() { return "A servlet that knows the name of the person to whom it's" + "saying hello"; } }
  • 13. The web.xml file defines each servlet and JSP <?xml version="1.0" encoding="ISO-8859-1"?> page within a Web Application. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">  The file goes into the WEB-INF <web-app> directory <servlet> <servlet-name> hi </servlet-name> <servlet-class> HelloWorld </servlet-class> </servlet> <servlet-mapping> <servlet-name> hi </servlet-name> <url-pattern> /hello.html </url-pattern> </servlet-mapping> </web-app>
  • 14. Compile the packages: "C:Program FilesJavajdk1.6.0_17binjavac" <Package Name>*.java -d .  If external (outside the current working directory) classes and libraries are used, we will need to explicitly define the CLASSPATH to list all the directories which contain used classes and libraries set CLASSPATH=C:libjarsclassifier.jar ;C:UserProfilingjarsprofiles.jar  -d (directory) ◦ Set the destination directory for class files. The destination directory must already exist. ◦ If a class is part of a package, javac puts the class file in a subdirectory reflecting the package name, creating directories as needed.  -classpath ◦ Set the user class path, overriding the user class path in the CLASSPATH environment variable. ◦ If neither CLASSPATH or -classpath is specified, the user class path consists of the current directory java -classpath C:javaMyClasses utility.myapp.Cool
  • 15. What does the following command do? Javac –classpath .;..classes;”D:Serversapache- tomcat-6.0.26-windows-x86apache-tomcat- 6.0.26libservlet-api.jar” src*.java –d ./test
  • 17. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SimpleCounter extends HttpServlet { int count = 0; public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter out = res.getWriter(); count++; out.println("Since loading, this servlet has been accessed " + count + " times."); } }
  • 18. JSP HTML <HTML> <HTML> <BODY> <BODY> Hello, world Hello! The time is now <%= new java.util.Date() %> </BODY> </BODY> </HTML> </HTML>  Same as HTML, but just save it with .jsp extension
  • 19. AUA – CoE Apr.11, Spring 2012
  • 20. 1. Hashtable is synchronized, whereas HashMap is not. 1. This makes HashMap better for non-threaded applications, as unsynchronized Objects typically perform better than synchronized ones. 2. Hashtable does not allow null keys or values. HashMap allows one null key and any number of null values.