1 / 27

Introduction to JAVA

Introduction to JAVA. CMSC 331. Introduction. Present the syntax of Java Introduce the Java API Demonstrate how to build stand-alone Java programs Java applets, which run within browsers e.g. Netscape Java servlets, which run with a web server

bmiser
Download Presentation

Introduction to JAVA

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. Introduction to JAVA CMSC 331

  2. Introduction • Present the syntax of Java • Introduce the Java API • Demonstrate how to build • stand-alone Java programs • Java applets, which run within browsers e.g. Netscape • Java servlets, which run with a web server • Example programs tested using Java on Windows and/or Unix

  3. Why Java? • It’s the current “hot” language • It’s almost entirely object-oriented • It has a vast library of predefined objects • It’s platform independent (except for J++) • this makes it great for Web programming • It’s designed to support Internet applications • It’s secure • It isn’t C++

  4. Important Features of Java • Java is a simple language (compared to C++). • Java is a completely object-oriented language. • Java programs can be multi-threaded . • Java programs automatically recycle memory . • Java is a distributed and secure language. • Java is robust (potential errors are often caught). • To make Java portable, so that they run on a variety of hardware, programs are translated into byte code which is executing by a Java Virtual Machine.

  5. Historical notes • ~1991, a group at Sun led by James Gosling and Patrick Naughton designed a language (code-named “Green”) for use in consumer devices such as intelligent TV “set-top” boxes and microwaves. • The design choices reflected the expectation of its use for small, distributed, and necessarily robust programs on a variety of hardware. • No customer was ever found for this technology. • ~1993, Green was renamed “Oak” (after a tree outside Gosling’s office) and was used to develop the HotJava browser, which had one unique property: it could dynamically download programs (“applets”) from the Web and run them. • “Oak” was already taken as a name for a computer language, so Gosling thought of the name Java in a coffee shop.

  6. What is OOP? • Object-oriented programming technology can be summarized by three key concepts: • Objects that provide encapsulation of procedures and data • Messages that support polymorphism across objects • Classes that implement inheritance within class hierarchies • More on this later!

  7. Applets, Servlets and applications • An applet is a program designed to be embedded in a Web page and run in a web browser • Applets run in a sandbox with numerous restrictions; for example, they can’t read files • A servlet is a program which runs in a web server and typically generates a web page. • Dynamically generated web pages are important and Java servlets are an alternative to using Basic (ASP), Python, specialized languages (PHP), and vendor specific solutions (e.g., Oracle) • An application is a conventional program • Java isn't a baby language anymore!

  8. Building Standalone JAVA Programs (on UNIX) • Prepare the file myProgram.java using any editor • Invoke the compiler: javac myProgram.java • This creates myProgram.class • Run the java interpreter: java myProgram

  9. Java Virtual Machine • The .class files generated by the compiler are not executable binaries • so Java combines compilation and interpretation • Instead, they contain “byte-codes” to be executed by the Java Virtual Machine • other languages have done this, e.g. UCSD Pascal, Prolog • This approach provides platform independence, and greater security

  10. HelloWorld Application public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } • Note that String is built in • println is a member function for the System.out class • Every standalone Java application must have a main method like public static void main(String[] args) { }

  11. HelloWorld Application => cd java => ls HelloWorld.java => more HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } => javac HelloWorld.java => java HelloWorld Hello World! =>

  12. Java Applets • The JAVA virtual machine may be executed under the auspices of some other program, e.g. a Web browser or server. • Bytecodes can be loaded off the Web, and then executed locally. • There are classes in Java to support this

  13. Another simple Java program public class Fibonacci { public static void main(String args[ ]) { int first = 1; int second = 1; int next = 2; System.out.print(first + " "); System.out.print(second + " "); while (next < 5000) { next = first + second; System.out.print(next + " "); first = second; second = next; } System.out.println( ); } }

  14. Still another simple program /** * This program computes and prints the factorial of a number pass as an argument on the command line. Usage: java Factorial <n> */ public class Factorial { // Define a class public static void main(String[] args) { // The program starts here if (!(args.length==1)) { // Right number of args? System.out.println("Usage: java Factorial <integer>"); } else { int input = Integer.parseInt(args[0]); // Get the user's input System.out.println(factorial(input)); // Call facorial method, print result } } // The main() method ends here public static double factorial(int x) { // This method computes x! if (x<0) return 0.0; // if input's bad, return 0 double fact = 1.0; // Begin with an initial value while(x>1) { // Loop until x equals 1 fact = fact*x; // multiply by x each time x = x-1; // and then decrement x } // Jump back to the star of loop return fact; // Return the result } // factorial() ends here } // The class ends here

  15. Building Applets • Prepare the file myProgram.java, and compile itto create myProgram.class • Two ways to run applet program: • Invoke an Applet Viewer (e.g. appletviewer) on windows or unix and specify the html file • Using a browser (e.g., IE or Netscape), open an HTML file such as myProgram.html • Browser invokes the Java Virtual Machine

  16. HelloWorld.java import java.applet.*; public class HelloWorld extends Applet { public void init() { System.out.println("Hello, world!"); } }

  17. hello.html <title>Hello, World</title> <h1>Hello, World</h1> <applet code="HelloWorld.class“ width=100 height=140> </applet>

  18. Running the Applet [3:43pm] linuxserver1 => pwd /home/faculty4/finin/www/java [3:43pm] linuxserver1 => ls HelloWorld.java hello.html [3:43pm] linuxserver1 => javac HelloWorld.java [3:43pm] linuxserver1 => ls HelloWorld.class HelloWorld.java hello.html

  19. But that’s not right! • The “Hello, World” was displayed by the HTML H1 tag… • What’s going on? • Applets do their output in a much more complicated way, using graphics. • When an applet is loaded, by default, the paint method is called

  20. Here’s a working version import java.applet.*; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; public class HelloWorldApplet extends Applet { public void init() { System.out.println("Hello, world!"); } Font f = new Font("TimesRoman", Font.BOLD, 12); public void paint(Graphics g) { g.setFont(f); g.setColor(Color.red); g.drawString("Hello Again!", 1, 10); } }

  21. Java Servlets • Most interesting web applications provide services, which requires invoking programs. • More and more of the web consists of pages that are not statically created by human editors, but dynamically generated when needed by programs. • How do we invoke these programs and what programming languages should we use? • CGI: Common Gateway Interface • Web servers with built in support for servlets written in Python, Lisp, Tcl, Prolog, Java, Visual Basic, Perl, etc. • ASP (Active Server Pages) is a scripting environment for Microsoft Internet Information Server in which you can combine HTML, scripts and reusable ActiveX server components to create dynamic web pages. • ASP begat PHP, JSP, … • Java turns out to be an excellent language for servlets

  22. A Servlet’s Job • Read any data sent by the user • From HTML form, applet, or custom HTTP client • Look up HTTP request information • Browser capabilities, cookies, requesting host, etc. • Generate the results • JDBC, RMI, direct computation, legacy app, etc. • Format the results inside a document • HTML, Excel, etc. • Set HTTP response parameters • MIME type, cookies, compression, etc. • Send the document to the client

  23. Why Build Web Pages Dynamically? • The Web page is based on data submitted by the user • E.g., results page from search engines and order-confirmation pages at on-line stores • The Web page is derived from data that changes frequently • E.g., a weather report or news headlines page • The Web page uses information from databases or other server-side sources • E.g., an e-commerce site could use a servlet to build a Web page that lists the current price and availability of each item that is for sale.

  24. The Advantages of Servlets Over “Traditional” CGI • Efficient • Threads instead of OS processes, one servlet copy, persistence • Convenient • Lots of high-level utilities • Powerful • Sharing data, pooling, persistence • Portable • Run on virtually all operating systems and servers • Secure • No shell escapes, no buffer overflows • Inexpensive

  25. Simple 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 (query data) // 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 }

  26. HelloWorld Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); } }

  27. Summary • Java is an object-oriented programming language. • Java features make it ideally suited for writing network-oriented programs. • Java class definitions and the programs associated with classes are compiled into byte code, facilitating portability. • Java class definitions and the programs associated with them can be loaded dynamically via a network. • Java programs can be multithreaded, thereby enabling them to perform many tasks simultaneously. • Java does automatic memory management, relieving you of tedious programming and frustrating debugging, thereby increasing your productivity. • Java has syntactical similarities with C and C++.

More Related