CHAPTER 0 An Overview of Computers and Programming Languages
public class MyFirstJavaProgram
{
public static main(String[] args)
{
System.out.println("My first java program.");
}
}
MyFirstJavaProgram.java --> MyFirstJavaProgram.class
CHAPTER 1 Basic Elements of JAVA
public class SimpleJavaProgram
{
public static main(String[] args)
{
System.out.println("My first java program");
System.out.println("La suma de 5 + 8 = " + 13 );
System.out.println("7 + 8 = " + (7 + 8));
}
}
Primitive Data types
Boolean
Floating-point
float -3.4E+38 @ 3.4E+38
double -1.7E+308 @ 1.7E+308
Integral
Integral Data types
char 2 bytes (16bits) 0 a 65536 ( 2^16 - 1)
byte 1 byte (8 bits) -128 a 127 ( -2^7 @ 2^7 -1 )
short 2 bytes (16 bits) -32768 a 32767 ( -2^15 @ 2^15 - 1)
int 4 bytes (32 bits) -2147483648 a 2147483647 (-2^31 @ 2^31 - 1)
long 8 bytes (64 bits)
casting
(int)(7.9) 7.9
(int)(3.3) 3.3
(double)(25) 25.0
(double)(5 + 3) 8.0
(double)(15) / 2 15.0 / 2
15.0 / 2.0 = 7.5
(double)(15 / 2) (double) (7) because 15/2 = 7
7.0
CLASS String
"The sum = " + 12 + 24
Named Constants, Variables, and Assigment Statements
Named Constants
[static] final datatype IDENTIFIER = value;
final specifies that the value stored in the identifier is fixed and cannot be changed
final double CENTIMETERS_PER_INCH = 2.54;
final int NO_OF_STUDENTS = 20;
final char BLANK = ' ';
int first = 13;
char ch = ' ';
double x = 12.23;
count++; ++count;
count--; --count;
Creating a Java Program
public class ClassName
{
classMembers;
}
public static void main(String[] args)
{
statment1
..
statemenn
}
public class MyProgram
{
static final int NUM_CONST = 12;
public static void main(String[] args)
{
int firstNum;
int secNum;
firstNum = 12;
thirtNum = firstNum + NUM_CONST;
CHAPTER 2 INPUT/OUTPUT
Input Read Statement
class Scanner
[static] Scanner console = new Scanner(System.in);
console.nextInt(); as integer
console.nextDouble(); as floating-point
console.next(); as string
console.nextLine(); as string, until EOL also reads /n, but not retained
//This programilustrates how to read strings and numeric data
import java.util.*;
public class Example2_3
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
String firstName;
String SecondName;
int age;
double weight;
System.out.println("Enter first name, last"
+"name, age, and weight, "
+"separated by spaces.");
firstName = console.next();
LastName = console.next();
age = console.nextInt();
weight = console.nextDouble();
System.out.println("NAme: " + firstName + " " + last Name);
System.out.println("age: " + age);
System.out.println("weight:" + weight);
}
}
reading a Single Character
ch = console.next().charAt(0);
}
}
}
}
\n newline \t tab \b Backspace \r return \\ Backslash \' single quotation \" double quotation
formating Output with printf
System.out.printf( formatString);
System.out.printf( formatString, argumentList);
System.out.printf("There are %.2f inches in %d centimeters.%n",centimeters / 2.54, centimeters);
%[argument_index$][flags][width][.precision]conversion
argument_index - is a (decimal) integer indicating the position of the argument in the argument list, fisrt is referenced as "1$", second "2$" etc...
flags - is a set of characters that modifies the output format, depends on conversion.
width - (decimal) integer indicating the minimum number of characters to be
written to the output device.
precision - (decimal) integer used to restrict the number of characters.
conversion - character indicating the format.
's' - general the result as string
'c' - character the result in a Unicode Character
'd' - integral " " formatted as a (decimal) integer.
'e' - floating point the result formatted as a decimal number in
computerized scientific notation
'f' - floating poing the result is formatted as a decimal number
'%' - percent the result in '%'
'n' - line separator platfrom-specific line separator
import java.util.*;
public class LabJava
{
static final int NUMBER = 12;
static Scanner console = new Scanner(System.in);
public static void main(String[] args){
int firstnum;
int secNum;
...
}
}
File Input/Output
Scanner console = new Scanner(System.in);
class FileReader in package java.io //to read a file
class PrintWriter in package java.io //to write to a file
Scanner inFile = new Scanner(new FileReader("texto.dat"));
file employeeData.txt with: Beto Martinez 45 120.43
import java.util.*;
import java.io.*;
Scanner inFile = new Scanner(new FileReader("employeeData.txt"));
String firstName;
String lastName;
double hoursWorked;
double payRate;
double wages;
firstName = inFile.next();
lastName = inFile.next();
hoursWorked = inFile.nextDouble();
payRate = inFile.nextDouble();
wages = hoursWorked * payRate;
inFile.close();
Storing (Writing) Output to a File
PrintWriter outFile = new PrintWriter("prog.out");
Parsing Numeric Strings
Integer.parseInt(strExpression);
Float.parseFloat(strExpression);
Double.parseDouble(strExpression);
Integer.parseInt("2343");
Integer.parseInt("-832");
Float.parseFloat("34.34");
Float.parseFloat("-532.34");
Double.parseDouble("34.3434342");
Double.parseDouble("-743.323443");
Using Dialog Boxes for Input/Output
package javax.swing;
class JOptionPane;
str = JOptionPane.showInputDialog("Dame tu nombre y presion OK");
JOptionPane.showMessageDialog(parentComponent,
messageStringExpression,
boxTitleString, messageType);
messageType: JOptionPane.ERROR_MESSAGE,
JOptionPane.INFORMATION_MESSAGE,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.QUESTION_MESSAGE,
JOptionPane.WARNING_MESSAGE
JOptionPane.showMessageDialog( null, "Hola Cabezones!", "Aqui el Titulo",
JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog( null, "Cantidad = $" + 500.43, "A Cobrar",
JOptionPane.PLAIN_MESSAGE);
import javax.swing.JOptionPane;
o
import javax.swing.*;
System.exit(0);
String Format Method
String.format(formatString, argumentList)
double x = 15.674;
double y = 235.73;
double z = 9525.9864;
int num = 83;
String str;
String.format("%.2f", x) "15.67"
String.format("%.3f", y) "235.730"
String.format("%.2f", z) "9525.99"
String.format("%7s", "Hello") " Hello"
String.format("%5d%7.2f", num, x) " 83 15.67"
String.format("The value of num = %5d", num) "The value of num = 83"
str = String.format("%.2f", z) "9525.99"
String.format("%.2f", x)
CHAPTER 3 Introduction to Objects and Classes
int x;
String str;
x = 45;
str = "Java Programming";
str = new String("Java Programmin");
system.gc(); //garbage collector
Modificadores de metodos
public, private, protected, static, abstract
import java.lang.Math.*
Math.pow(2,3)
import static java.lang.Math.*
pow(2,3)
import static java.lang.Math.*;
public class PredefinedMathMethods
{
public static void main(String[] args)
{
System.out.println("2 al cubo" + pow(2,3));
System.out.println("el mayor de 12.35 y 54.23 = " + max(12.35,54.23) );
System.out.println("el absouluto de -67 =" + abs(-67));
System.out.println("floor(43.23) = " + Math.floor(43.32));
System.out.println("floor(43.23) = " + floor(43.32));
System.out.println("sin(PI/2) = %2.f %n", sin(PI/2) );
}
}
Primitive Data Types and Wrapper Classes
class String
StringVarible.StringMethodName(parameters);
name.length();
String sentence;
sentence = "Programming with Java";
returns
charAt(index) sentence.charAt(3) 'g'
indexOf(ch) sentence.indexOf('J') 17
sentence.indexOf('a') 5
sentence.indexOf('x') -1
indexOf(ch, pos) sentence.indexOf('a', 10) 18
indexOf(str) sentence.indexOf("with") 12
sentence.indexOf("ing") 8
indexOf(str, pos) sentence.indexOf("a", 10) 18
sentence.indexOf("Pr",10) -1
concat(str) sentence.concat(" is fun.")
length() sentence.lenght() 21
replace(
charToBeReplaced,
charReplacedWith) sentence.replace('a','*') "Progr*aming with J*v*"
substring(beginIndex) sentence.substring(12) "with Java"
substring(
beginIndex,
endIndex) sentence.substring(0,11) "Programming"
toLowerCase()
toUpperCase()
class Integer
Integer intObj = new Integer(32);
Integer intObj = new Integer("32");
compareTo(anotherInteger) Integer num1 = new Integer(32);
Integer num2 = new Integer(12);
num1.compareTo(num2)
intValue() num1.intValue() 32 doubleValue() num1.doubleValue() 32.0
equals(obj) num1.equals(num2) value false
parseInt(str)
toString()
class Character java.lang;
isDigit()
isLetter()
isLowerCase()
isUpperCase()
isSpaceChar()
isWhiteSpace(ch)
toLowerCase(ch)
toUpperCase(ch)
Methods
method modifiers public, private, protected, static, abstract, final
static methods cannot call another nonstatic methods of the class.
Classes
modifier(s) class ClassIdentifier modifier(s)
{
classMembers
}
Variable Declaration and Object Instantiation
myTemp and yourTemp as reference variables of type Thermometer
Thermometer myTemp;
Thermometer yourTemp;
These statements do not allocate memory spaces to store data.
new className();
or
new className( arg1, arg2, arg3, ..., argN);
myTemp = new Thermometer();
yourTemp = new Thermometer(35);
GUI JFrame, JLabel, Colors, Fonts, JButton, and Handling an Event(Optional)
JFrame
...
JLabel
...
class Color
...
class Font
...
JButton
public JButton(Icon c)
public JButton(String Str)
public JButton(String str, Icon c)
public void setText(String str)
public String getText()
public void addActionListener(ActionListener obj)
method to register a listener object to the button object
private JButton colorB, fontB;
colorB = new JButton("Color");
fontB = new JButton("Font");
pane.add(colorB);
pane.add(fontB);
...
Handlig an Event
Clicking a JButton generates an event, known as action event, which sends messages to another object, known as an action listener
public interface ActionListener
{
public void actionPerformed( ActionEvent e);
}
private class ColorButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e){
//code to be performed ...
}
}
To Create a listener object of type ColorButtonHandler
ColorButtonHandler cHandler;
cHandler = new ColorButtonHandler; //instatiate the object
colorB.addActionListener(cHandler);
Now For JButton fontB
private class FontButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
javaL.setFont(new Font("Arial", Font.BOLD, 24));
programmingL.setFont(new Font("Arial", Font.BOLD, 24));
}
}
FontButtonHandler fHandler;
fHandler = new FontButtonHander();
fontB.addActionListener(fHandler);
Listener Class
private class ColorButtonHandler implements ActionListener
{
public void actionPreforment(ActionEvent e)
{
...
}
}
Component Object
colorB = new JButton("Color");
cHandler = new ColorButtonHandler();
colorB.addActionListener(cHandler);
CHAPTER 4 Control Structures I: Selection
a.Sequence b.Selection c.Repetition
String str1 = "Hello";
String str2 = "Hi";
str1.compareTo(str2)
if (logical expression)
statement
if (logical expression)
statement1
else
statement2
Conditional Operator (? : )
testExpression ? expresionIfTrue : expressionIfFalse
System.out.println("Se compraron " + (numero == 1) ? "Articulo" : "Articulos");
switch Structures
switch (expression)
{
case value1:
statement1
break;
case value2:
statement2
break;
case value3:
statement
break;
default:
statements
}
GUI JTextFields and JPanel
JTextFields
...
handling the events
...
JPanel
...
handling the events
...
CHAPTER 5 Control Structures II: Repetition
while (logical expression)
statement
for (initial exp; logical exp; update expression)
statement
do
statement
while (logical exp);
break statement;
GUI Graphics ans JTextAreas
class Graphics
...
}
class StringBuffer can append() or delete(), use it class instead of String
if you need to change the value of a passed as parameter
Method Overloading
public void methodXYZ()
public void methodXYZ( int x, double y)
public void methodXYZ( double one, int y)
public void methodXYZ( int x, double y, char ch)
CHAPTER 6 User-Defined Methods and Classes
Clock
-hr: int
-min: int
-sec: int
+Clock()
+Clock(int, int, int)
+setTime(int, int ,int): void
+setHours(int): void
+setMinutes(int): void
+setSeconds(int): void
+getHours(): int
+getMinutes(): int
+getSeconds(): int
+printTime(): void
+incrementSeconds(): int
+incrementMinutes(): int
+incrementHours(): int
+equals(Clock): boolean
+makeCopy(Clock): void
+getCopy(): Clock
copy constructor
public ClassName(ClassName otherObject)
public Clock(Clock otherClock)
{
hr = otherClock.hr;
min = otherClock.min;
sec = otherClock.sec;
}
static Variables (data members) of a Class
When you instantiate the object of type MyClass, only the non static data members of the class MyClass become the data members of each object, What about the memory for the static data members of MyClass? For each static data member of the class java allocate memory space only once. All MyClass reference variables refer to the same memory space. In fact, static data members of a class exist before any object of the class type is instantiated, even when no object of the class tyoe is instantiated. Also , static variables are initialized to their default value.
Accessor and Mutator Methods
Reference this (optional) used implicit
Inner Classes - classes defined within other classes are called inner classes
CHAPTER 7 ARRAYS
dataType[] arrayName;
arrayName = new dataType[intExp];
dataType[] arrayName = new dataType[intExp];
int[] num = new int[5];
num[0] 0
num[1] 0
num[2] 0
num[3] 0
num[4] 0
int[] list = new int[10]
list[0] 0
list[1] 0
list[2] 0
...
list[10] 0
final int ARRAY_SIZE = 10;
int[] list = new int[ARRAY_SIZE];
Specifying Array Size During Program Execution
int arraysize;
System.out.println("Enter the size of the array");
arraySize = console.nextInt();
System.out.println();
int[] list = new int[arraysize];
double[] sales = {12.35, 32.50, 16.90, 23, 45.68};
int[] list = {10, 20, 30, 40, 50, 60};
int alpha[], beta; //only alpha is array reference variable, beta is int
int[] gamma, delta; //array reference variables, both.
list.length;
sales.length;
for ( int i = 0, i < list.length; i++){
list[i] = 0;
}
Array Index Out of Bounds Exception
ArrayIndexOutOfBoundException
public static void ArrayAsFormalParameter(int[] listA,
double[] listB,
int num)
{
//..
}
int[] listA = {5, 10, 15, 20, 25, 30, 35};
int[] listB = new int[listA.length];
listA --> {5, 10, 15, 20, 25, 30, 35}
listB --> {0, 0, 0, 0, 0, 0, 0}
listB = listA; listB point to listA data
boolean areEqualArrays(int[] firstArray, int[] secondArray)
{
//..
}
Arrays and Variable Length Parameter List (dataType ... identifier)
public static double largest(double x, double y)
public static double largest(double x, double y, double z)
public static double largest(double x, double y, double z, double u)
public static double largest(double x, double y ......)
public static double largest(double ... list)
{
double max = 0.0;
if (list.length != 0){
max = list[0];
for(int i = 1; i < list.lenght; i++){
if (max < list[i])
max = list[i];
}
}
return max;
}
Two-Dimensional Arrays
dataType[][] arrayName;
arrayName = new dataType[intExp1][intExp2];
dataType[][] arrayName = new dataType[intExp1][intExp2];
Instance Varialbe length
int[][] matrix = new int[20][15];
matrix.length is 20
matrix[0].length is 15
board = new int[5][];
board[0] = new int[6];
board[1] = new int[2];
board[2] = new int[5];
board[3] = new int[7];
board[4] = new int[2];
Initialization During Declaration
int[][] board = { {2,3,1},
{15,25,13},
{20,4,7},
{11,18,14} };
int[][] board = { {2,3,1,5},
{15,25},
{11,18,14} };
public static void printMatrix( int[][] matrix)
{
...
}
dataType[][]..[] arrayName = new dataType[intExp1][intExp2] ... [intExpn];
GUI JCheckBoxes, JRadioButtons, JComboBoxes, and JList
JCheckBox
...
JRadioButton
...
JComboBox
...
JList
...
CHAPTER 8 Applications of Arrays
...
class Vector
Vector can grow and shrink during program execution.
public Vector();
public Vector(int size);
public void addElement(Object insertObj)
//add element at end
public void insertElementAt(Object insertObj, int index)
// insert the object at index
//ArrayIndexOutOfBoundsException
public boolean contains(Object obj)
//returns true if the Vector object contains the element specified
public Object elementAt(int index)
public Object lastElement()
//if empty, throws NoSuchElementException
public int indexOf(Object obj)
// return index of first occurrence
//if not return -1
public int indexOf(Object obj, int index)
public boolean isEmpty()
//return true or false
public int lastIndexOf(Object obj)
//starting at the last element, using backeard search
public int lastIndexOf(Object obj, int index)
public void removeAllElements()
public boolean removeElement(Object obj)
public void removeElementAt(int index)
public void setElementAt(Object obj, int index)
public void setElementAt(Object obj, int index)
public int size()
public String toString()
Vector<String> stringList = new Vector<String>();
stringList.addElement("spring");
stringList.addElement("Summer");
stringList.addElement("Fall");
stringList.addElement("winter");
System.out.println(stringList);
[spring, Summer, Fall, winter]
stringList.addElement("cool", 1);
[spring, cool ,Summer, Fall, winter]
Primitive Data Types and the class Vector
Vector<Integer> list = new Vector<Integer>();
list.addElement(13);
list.addElement(25);
is similar to
list.addElement(new Integer(13));
list.addElement(new Integer(25));
Vector Objects and the foreach loop
for (type identifier : vectorObject)
statements
Vector<String> stringList = new Vector<String>();
stringList.addElement("one");
stringList.addElement("two");
stringList.addElement("three");
stringList.addElement("four");
stringList.addElement("five");
stringList.addElement("six");
System.out.println( stringList);
for (String str : stringList)
{
System.out.println(str.toUpperCase());
}
GUI Layout Managers, Menus, and Applets
layout Managers
FlowLayout
Container pane = getContentpane();
pane.setLayout(new FlowLayout());
or
FlowLayout flowLayoutMgr = new FlowLayout();
pane.setLayout( flowLayoutMgr);
flowLayoutMgr.setAlignment(FlowLayout.RIGHT);
BorderLayout
...
Menus
...
Applets class JApplet (package javax.swing)
refers to little aplication
public void init()
//called by the browser of applet viewer to inform this applet that is has
// been loaded into the systme
public void start()
//.......that it should start its execution
public void stop()
// .......that it should stop its execution
public void destroy()
//..... that it is being reclaimed and that it should destroy any resources
public void showStatus( String msg)
// display the String msg in the status bar
public Container getContentPane()
// returns the ContentPane object for this applet
public void update(Graphics g)
// Call the paint() method
protected String paramString()
// Return a string representation of this JApplet; used mainly for debugging
import java.awt.Graphics;
import javax.swing.JApplet;
public class WelcomeApplet extends JApplet
{
public void paint( Grapics g)
{
super.paint(g);
g.drawString("Welcome to Java Programming", 30, 30);
}
}
<html>
<head>
<title>Welvome Applet</title>
</head>
<body>
<object code = "WelcomeApplet.class" width = "250" height = "60">
</object>
</body>
</html>
appletviewer WelcomeApplet.html
CHAPTER 9 Inheritance and PolyMorphism
Inheritance
modifier(s) class className extends ExistingClassName modifier(s)
{
memberList
}
public class circle externds shape
{
...
}
Using methods of the SuperClass in a Subclass (super)
public void setDimension(double l, double w, double h)
{
super.setDimension( l, w);
if( h >= 0)
height = h;
else
height = 0;
}
Contructor of the Superclass and Subclass
public Box()
{
super();
height = 0;
}
if super is not included in subclass, by default the dafault constructor of the superclass (if any) will be called
Protected Members of a Class -
members of a class that can be accessed by subclass members
class Object
include method toString() returns the class name followed by the hash code of the Object
public class Clock extends Object
{
...
}
Some methods of Object
public Object() //Constructor
public String toString()
public boolean equals(Object obj)
// if same memory space
protected Object clone()
// reference to a copy of the object
protected void finalize()
// is invoked when the object goes out of scope
Java Stream Classes
Object
Scanner
Reader
InputStreamReader FileReader
Writer
PrintWriter
Polymorphism via Inheritance
Java allow us to treat an object of a subclass as an object of its superclass. In Other words, a reference variable of a superclass type can point to an object of its subclass. In some situations, this feature of java can be used to develop generic code for a variety of applictions.
Person name, nameRef;
PartTimeEmployee employee, employeeRef;
name = new Person( "John", "Blair");
employee = new PartTimeEmployee("Susan", "Johnson", 12.50, 45);
nameRef = employee;
System.out.prinrln("nameRef: " + nameRef);
nameRef: Susan Johnson's wages are: $562.5
IF a method of a class is declared final, it cannot be overriden with a new definition in a derived class.
public final void doSomeThing()
{
// this method can not be overriden
}
Operator instanceOf
p instanceOf BoxShape returns true if p points to an object of the class BoxShape
Abstract Methods and Clases
An Abstract method is a method that has only a heading but no body. The heading of an abstract method contains the reserved word abstract and ends with a semicolon
public void abstract print();
public abstract object larger(object, object);
void abstract insert(int insertItem);
An Abstract Class is a class that id declared with the reserved word abstract in its heading.
- An abstract class can contain instance variables, constructors, and non abstract methods
- An abstract class can contain one or more abstract methods.
- If a class contains an abstract method, the class must be declared abstract.
- You cannot instantiate an object of an abstract class; you can only
declare a reference variable of an abstract class type.
- You can instantiate an object of a subclass of an abstract class, but only
if the subclass gives the definitions of all the abstract methods of the
superclass.
public abstract class AbstractClassExample
{
protected int x;
public abstract void print();
public void setX(int a)
{
x = a;
}
public AbstractClassExample()
{
x = 0;
}
}
Interfaces
Java does not support multiple inheritance; a class can extend the definition of only one class. The events are handled by implementing separete interfaces.
An Interface is a type of class that contains only abstract methods and/or named constants. Interfaces are defined using the reserved word interface in place of the reserved word class.
public interface WindowListener
{
public void windowOpened(WindowEvent e);
public void windowClosing(WindowEvent e);
public void windowClosed(WindowEvent e);
public void windowIconified(WindowEvent e);
public void windowDeiconified(WindowEvent e);
public void windowActivated(WindowEvent e);
public void windowDeactivated(WindowEvent e);
}
public interface ActionListener
{
public void actionPerformed(ActionEvent e);
}
public class ExampleInterfaceImp implements ActionListener,
WindowListener
{
// Definitions of each method requierd by interfaces ActionListener
// and WindowListener
}
Polymorphism via Interfaces
public interface Employyee
{
public double wage();
public String department();
}
Employee newEmployee;
newEmployee = new Employee(); //ilegal
class FullTimeEmployee that implements the interface Employee.
you can use the reference variable newEmployee to create an object of the class FullTimeEmployee.
newEmployee = new FullTimeEmployee();
double salary = newEmploye.wages();
newEmployee = new PartTimeEmployee();
class FullTimeEmployee contains the method
public void upDatePayRate(double increment)
{
...
}
newEmployee.upDatePayRate(23); //causes compiler error
((FullTimeEmployee)newEmployee).upDatePayRate(25);
Composition (Aggregation)
One or more members of a class are objects of one or more other classes.
"has-a" relation;for example, "every person has a date of birth"
CHAPTER 10 EXception Handling and Events
try/catch/finally block
try
{
//statements
}
catch (ExceptionClassName objRef1)
{
// exception handler code
}
catch (ExceptionClassName objRef1)
{
// exception handler code
}
...
catch (ExceptionClassName objRef1)
{
// exception handler code
}
finally
{
// statemets
}
Java Exception Hierarchy
Object - Throwable - Exception
public static void exceptionMethod()
throws InputMismatchException, FileNotFoundException
{
//statements
}
Rethrowing and Throwing an Exception
throw exceptionReference;
throw new ExceptionClassName(MessageString);
import java.util.*;
public class RethrowExceptionExample
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int number;
try{
number = getNumber();
System.out.println("Line11: number = " + number);
}
catch (InputMistmatchException imeRef)
{
System.out.println("Line15: Exception " + imeRef);
}
}
public static int getNumber()
throws InputMismatchException
{
int num;
try
{
System.out.println("Line 23: enter an " + "integer:");
num = console.nextInt();
return num;
}
catch (InputMismatchException imeRef)
{
throw imeRef;
or
throw new InputMismatchException("getNumber");
}
}
}
CHAPTER 12 Generics, Dynamic Representations and Collections
public static void print(int ... list)
{
for (int elem : list)
System.out.print(elem + " ");
System.out.println();
}
public static void print(double ... list)
{
for (double elem : list)
System.out.print(elem + " ");
System.out.println();
}
public static void print(String ... list)
{
for (String elem : list)
System.out.print(elem + " ");
System.out.println();
}
modifier(s) <T> returnType methodName(formal parameter list)
{
...
}
T ref; //ok
ref = new T(); //illegal
public static void print( T ... list)
{
for ( T elem : list)
System.out.print(elem + " ");
System.out.println();
}
Generic Classes
modifier(s) className<T> modifier(s)
{
//class members
}
The interface Comparable
public class Clock implements Comparable
public int compareTo(Object otherClock)
{
Clock temp = (Clock) otherClock;
int hrDiff = hr - temp.hr;
if (hrDiff != 0)
return hrDiff;
int minDiff = min - temp.min;
if ( minDiff != 0)
return minDiff;
return sec - temp.sec;
}
Generic Methods and Bounded Type Parameters
public static <T> void print(T ... list)
{
for ( T elem : list)
{
System.out.print(elem + " ");
}
}
public static <T extends Comparable<T> > T larger(T x, T y)
{
if (x.compareTo(y) >= 0)
return x;
else
return y;
}
Collections
class LinkedList
public class LinkedList<E> extends AbstractSequentialList<E>
constructors
public LinkedList();
public LinkedList(Collection<? extends E> coll)
methods
public add(E obj)
public void add(int index, E elem)
public void addFirst(E obj)
public void addLast(E obj)
public void clear()
public Object clone()
public boolean contains(Object obj)
public E get(int index)
public E getFisrt()
public E getLast()
public int indexOf(Object obj)
public int lastIndexOf(Objedt obj)
public ListIterator<E> listIterator(int index)
public E peek()
public E poll()
public E remove(int index)
public E remove()
public boolean remove(Object obj)
public E removeFirst()
public E removeLast()
public int size()
Iterators
public ListIterator<E> listIterator(int index)
//return a list of iterator of the elemnts in this list,
// starting at the position specified by index.
// IndexOutOfBoundsException
public interface Iterator<E>
methods
boolean hasNext()
E next()
void remove()
// remove the last element
public interface ListIterator<E> extends Iterator<E>
methods
void add(E obj)
boolean hasNext()
boolean hasPrevious()
E next()
int nextIndex()
E previous()
int previousIndex()
void remove()
void set(E obj)
//iterator works with a LinkedList object
import java.util.*;
public class LinkedListAndIterator
{
public static void main(String[] args)
{
LinkedList<Integer> intLList = new LinkedList<Integer>();
Integer[] intArray = { 23, 12, 33, 89, 54, 9 ,77, 55, 8, 19, 30
,15,62};
for(Integer num : intArray)
intLList.add(num);
System.out.println("line 10: intLList:\n" + " ");
print(intLList);
ListIterator<Integer> listIt = intLList.ListIterator(0);
System.out.println("line13: listIt points " + "to: " + listIt.next());
System.out.println("line14: listIt points " + "to: " + listIt.next());
listIt.set(999);
System.out.println("line16: intLList " + " ");
print(intLList);
listIt.add(1111);
System.out.println("line19: after adding" + "1111 intLList:\n");
print(intLList);
}
public static <T> void print(Collection<T> c)
{
for (T obj: c)
System.out.print(obj + " ");
}
}
LinkedList<Integer> intList = new LinkedList<Integer>();
Integer[] intArray = {23, 12, 33, 89, 54, 9 ,77,
55, 8, 19, 30, 15, 62};
for (Integer num: intArray)
intList.add(num);
ListIterator<Integer> listIt = intList.listIterator<0>
System.out.println(listIt.next());
listIt.set(999);
intList = {23, 999, 33, 89, 54, 9 ,77,
55, 8, 19, 30, 15, 62};
listIt.add(1111);
intList = {23, 999, 1111, 33, 89, 54, 9 ,77,
55, 8, 19, 30, 15, 62};
JAVA SERVER PROGRAMMING
Servlet container
init()
service()
destroy()
The Servlet API
javax.servlet and javax.servlet.http
Servlet Interface
public interface Servlet
javax.servlet.Servlet
when implementing Servlet interface, the following five methods must be implemented
init() method
service() method
destroy() method
getServletConfig() method
getServletInfo() method
public void init(ServlerConfig config) throws ServletException
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
public void destroy()
public ServletConfig gerServletConfig()
public String getServerInfo()
HttpServlet Class
HttpServlet class extends GenericServlet
service() method
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
getLastModified() method
protected long getLastModified(httpServletRequest req)
HttpServletRequest Interface
public interface HttpServeltRequest extends ServletRequest
getParameter() method
public String getParemeter(String key)
getParameterValues() method
public String[] getParemeterValues(String key)
getParemetrNames() method
public Enumeration getParameterNames()
HttpServletResponse Interface
public interface HttpServletResponse extends ServletResponse
setContentType() method
public void setConentType(String type)
getWriter() method
public PrintWriter getWriter() throws IOException
getOutputSteam() method
public ServletOutputStream getOutputStream() throws IOException
setHeader() method
public void setHeader(String name String value)
//Import Servlet libraries
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res)
trhows ServletException, IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Hello World Sample Servlet</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("CENTER><H1>Hello World!</H1></CENTER>");
out.println("</BODY>");
out.ptintln("</HTML>");
out.close();
}
}
Processig Form Data and Sending Email
Gathering Form Data
String message, msgForm, msgTo, msgSubject;
private void getParemeters(HttpServletRequest req)
throws ServletException, IOException
{
StringBuffer tempStringBuffer = new StringBuffer(1024);
msgSubject = "Tech Support Request";
msgTo = "tech@mail.com";
msgFrom = req.getParameter("txtEmail");
tempStringBuffer.append("From: ");
tempStringBuffer.append("req.getParameter("txtFirst"));
tempStringBuffer.append(" ");
tempStringBuffer.append("req.getParameter("txtLast"));
tempStringBuffer.append("\n");
tempStringBuffer.append("Phone: ");
tempStringBuffer.append("req.getParameter("txtPhone"));
tempStringBuffer.append("\n");
tempStringBuffer.append("Email:");
tempStringBuffer.append("req.getParameter("txtEmail"));
tempStringBuffer.append("\n\n");
tempStringBuffer.append("Software: ");
tempStringBuffer.append("reg.getParameter("ddlb_software"));
tempStringBuffer.append("\n");
tempStringBuffer.append("OS :");
tempStringBuffer.append("reg.getParameter("ddlb_os"));
tempStringBuffer.append("\n\n");
tempStringBuffer.append("Problem: ");
tempStringBuffer.append("req.getParameter("txtProblem"));
tempStringBuffer.append("\n");
message = tempStringBuffer.toString();
}
Send email using SmtpClient
private boolean sendMail()
{
PrintStream out;
SmtpClient send;
try
{
send = new SmptClient("mail.xyz.com");
send.from(msgForm);
send.to(msgTo);
out = send.startMessage();
out.println("From : " + msgForm);
out.println("To: " + msgTo);
out.println("Subject: " + msgSubject);
out.println("\n--------------\n");
out.println(message);
out.println("\n--------------\n");
out.flush();
out.close();
send.closeServer();
}
catch (IOException e) {
log("Error occurred while sending email", e);
return false;
}
return true;
}
put all this together
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import sun.net.smtp.SmtpClient;
import com.wrox.util.*;
public class techsupport extends HttpServlet
{
String message, msgForm, msgTo, msgSubject;
public void doPost(HttpServletRequest req, HttpSerlvetResponse res)
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
getParameters(req);
if(!sendMail())
{
res.sendError(res.SC_INTERNAL_SERVER_ERROR, "An error ocurred while attemptiong to access the mail server.");
return;
}
//Send acknowledgemenbt to the browser
HTML h = new HTML("XYZ Corporation IT Department");
h.add(HTML.HEADING, "your request has been submitted", false);
out.println(h.getPage());
out.close();
}
private void getParameters(HttpServletRequest req)
throws ServletException, IOException
{
StringBuffer tempStringBuffer = new StringBuffer(1024);
....
}
private boolean sendMail()
{
PrintStream out;
SmtpClient send;
try{
...
}
...
}
}
viernes, 10 de junio de 2016
jueves, 2 de junio de 2016
J2EE Indice de Temas
Java and J2EE Indice de Temas
j2EE Architecture -Containers
Component Contracts
Container Service APIs
Declarative Services
J2EE Technologies
Web Components
Enterprise JavaBeans Components
Service Technologies
JDBC
Java Transaction API and Service
JNDI
Communication Protocols
Internet Protocols
Remote Object Protocols
JMS
JavaMail
XML
Distributed Computing Using RMI
RMI Architecture
The Stub and Skeleton Layer
Stubs
Skeletons
The Remote Reference Layer
The Transpor Layer
Locating Remote Objects
RMI Exceptions
Developing Applications with RMI
The RMI Security Manager
Parameter Passing in RMI
The Distributed Garbage Collector
Dynamically Loading Classes
Remote Callbacks
Object Activation
Custom Sockets and SSL
RMI over IIOP (Internet inter-Orb Protocol)
Database Programming with JDBC
Database drivers
JDBC DataSources
Connectin Pooling
Distribuited Transactions
RowSets
JNDI and LDAP
Naming and Directory Services
LDAP
Introducing JNDI
XML Documents
DTD and XML schema
DTD, Parsers and Validation
XML Namespaces
Styling XML with CSS
XML Parsing with DOM and SAX
SAX, JAXP, and a Simple Example
Introduction to Web Containers
the HTTP Protocol
HTTP Request Methods
The GET Request Method
The POST Request Method
HTTP Response
Web Containers and Web Applications
Java Servlets
Java Server Pages
Deployment Descriptors
Servlet Programming
Servlet Implementation
init() method
service() method
destroy() method
getServletConfig() method
getServletInfo()
GenericServlet Class
SingleThreadModel Interface
HttpServlet Class
service() methods
doXXX() methods
getLastModified() method
Servlet Configuration
ServletConfig Interface
getInitParameters() method
getInitParameterNames() method
getServletContext() method
getServletName() method
obtainig a Reference to ServletConfig
Servlet Exceptions
ServletException Class
UnavailableException Class
Serlvet Lifecycle
Instantiation
Initialization
Service
Destroy
API for Request and Responses
ServletRequest Interface, methods for parameters, attributes, inputs
HTTPServletRequest Interface
methods for request Path and URL
methods for HTTP Header
getMethod()
ServletResponse Interface
methods for Content Type and Length, Output, buffered Output
HTTPServletResponse Interface
methods for Error Handling
sendRedirect() method
Servlet Sessions, Context and Collaboration
Statelessness and Sessions
Approaches to Session Tracking
URL Rewriting
Hidden Form Fields
Cookies
Session Tracking with the Java Servlet API
Session Creation and Tracking
The HttpSession Interface
Methods for Session Lifetime
Demonstrating Session Lifecycle with Cookies
Session Lifecycle Without Cookies
Methods for Managing States
Demonstating State Management
Binding and Unbinding Objects to and from Sessions
The HttpSessionBindingListener Interface
The HttpSessionBindingEvent Class
A Simple Shopping Cart Using Sessions
The Catalog Servlet
The ShoppingCart Servlet
Servlet Context
The ServletContext Interface
A Chat Application Using Context and Sessions
The ChatRoom Class
The ChatEntry Class
The Administration Servlet
Servlet for Chatting
Chat Setup
Servlet Collaboration
Servlet Chaining
Request Dispatching
RequestDispatch Interface
Web Deployment, Authentication and Packaging
Structure of a Web Application
Directory Structure
Web Archives Files
Mapping Request to Application and Servlets
Security Web Application
Deployment Configuration
JSP Basics and Architecture
JSP Directives
The page Directives
The include Directives
The tablib Directive
Scripting Elements
Declarations
Scriplets
Expressions
Standard Actions
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
<jsp:param>
<jsp:include>
<jsp:forward>
<jsp:plugin>
Implicit Objects
The request Object
The response Object
The pageContext Object
The session Object
The application Object
The out Object
The config Object
The page Object
Scope
Page Scope
Request Scope
Session Scope
Application Scope
XML Equivalent Tags
DTD and Root Element
Directives
Scripting Elements
Actions
JSP Design Basic
Page-Centric or Client-Server Design
Page-View
Page-View with Bean
The 'Dispatcher' Approach
Mediator-View
Mediator-Composite View
Service to Workers
JSP Tag Extensions
Tag Extension
A Simple Tag
Anatomy of a Tag Extension
Tag Handlers
javax.servlet.jsp.tagext.Tag Interface
javax.servlet.jsp.tagext.BodyTag Interface
javax.servlet.jsp.tagext.BodyContent Class
Convenience Classes
javax.servlet.jsp.tagext.TagExtraInfo Class
Objects available to Tag Handlers
Tag Library Descriptors
Using Tag Extensions in JSP Pages
Deploying and Packaging Tag Libraries
No Packaging, WAR, The Library JAR
Combination of WAR and JAR
Writing Tag Extensions
Processing Attributes
Body Content
Tags Introducing Scripting Variables
Specifying a TagExtraInfo Class
Implementing the TagExtraInfo Class
Change to the Tag Handler
Body Tags
Body Tags and Iteration
Body Tags and Filter Their Content
Tag Nesting
Handling Errors
Advanced Custom JSP Tags
An XSL Style Tag
Swing Model Tags
Using the Swing ListModel
Creating a Name-Value Mapping Model
Using the Swing TableModel
Writing Maintainable JSP Pages
JSP in a Multi-Tier Architecture
Techniques for Writing Maintainable JSP
Request Controller Architecture
Implementing, when Not to use a
Using includes in JSP
Two Types of Includes
using Static Includes
Using JSP Beans
Pages Beans
Session Beans
Application Beans
Bean Configuration
Using Tag Extensions
Categories of Tags
Model Tags
Translation Tags
Tags as Application Building Blocks
Handling Iteration
Handling Conditional Logic
Using Styled XML
When to use Custom SuperClasses for JSPs
Standard Abstractions for Common Objects
Handling Exceptions
Internationalization
Documenting the JSP layer
Coding Standards for Maintainable JSPs
The DBExplorer Application
Requirements, Design, Implementation
Presentation Tier, Data Tier
Reviewing tha Application
Deploying the Application
JSP and XML - Working together
JSP and XML
Modular Design and Modular Reading
A Profiled Newsletter - A Case Study
An Overview of the Main Components
The Configuration Component
The Reflection Package
The Constructor Class
Invoking methods
A Config File Example
Meaning of Tags, Attributes
The Java Code for XML Configuration
Config Classified
The Control Pattern of Config()
configChild() and Methods Invocation
The Database Component
DBConnector and its Default Implementation
QueryHandler
ResultSetParser
UserDataHandler
XML Data Access Component
DomSearch Queries
DomSearch Output
Instantiating DomSearch - DSNextMatch
Configuration XML data for DOMSearch
using DomSearch During a Session
The Presentation Component
The Login Page
The Main Frames Pages and Initialization
Control and Data Frames
The Control Component
The StampPageFactory Bean
An XML-Based JDBC Connector Servlet Framework
Implementing the JDBC Connector Servlet
Using the JDBC Connector Servlet
JavaMail
Setup Instructions
the JavaMail API
javax.mail.Session
javax.mail.Authenticator and PasswordAuthentication
javax.mail.Message
javax.mail.Part
javax.mail.Multipart and BodyPart
javax.mail.internet.MimePart
javax.mail.internet.MimeMultipart and MimeBodyPart
javax.mail.Service
javax.mail.Transport
javax.mail.Store
javax.mail.Folder
javax.mail.search.*
EJB Architecture and Design
Enterprise JavaBeans vs. JavaBeans
What Are EJBs?
varities of Beans. why use it?
The EJB Container and Its Services
Persistence
Declarative Transactions
Data Caching
Declarative Security
Error Handling
Component Framework for Business Logic
Scalability and Fail-Over
Portability
Manageability
How the Container Provides Services
Contarcts, Services, Interposition
Working with EJBs
The Client Developer´s View
The Bean Programmer´s View
What you Can´t Do in an EJB Component
EJB Components on the Web
Client-Tier Access to the EJBs
Design of the EJB Tier
UML Use Cases
Analysis vs Implementation
An Example of EJB Design
Session Beans and Business Logic
Session Bean and State
Representing Business Logic
The Difficult Problem of Conversational State
Session Beans and Persistent Storage
The Financial Aid Calculator Bean
Implementing out Manufacturing Application
Entity Beans and Persistence
Why not Use Session Beans?
Using a Stateful Session Bean
Using a Stateless Session Bean
Benefits of Entity Beans
Container-vs. Bean-Managed Persistence
EJB Container Services
Transactions
Transactions Without a Container
Declaretive Semantics for Transactions
Transactin Attibutes NotSupported, Supports, RequiresNew,
Required, Mandatory, Never
User-Controlled Transactions
Isolation Levels
Long Transactions
Optimistic, Pesimistic Locking.
Security
Specifying the Security Requirements
Security Roles, Method Permissions
Programmatic Access Control
Security and Application Design
Exceptions
Develop and Deployment Roles
Enterprise JavaBeans 2.0
Container-Managed Persistence in EJB 2.0
The EJB 2.0 Query Language
Message-Driven Beans
Design Considerations for J2EE Applications
Performance and Scalability
Debugging Java Server Applications
Unit Testing J2EE Applications
The Java Message Service
JMS programming
Integration with CORBA
IDL Types
j2EE Architecture -Containers
Component Contracts
Container Service APIs
Declarative Services
J2EE Technologies
Web Components
Enterprise JavaBeans Components
Service Technologies
JDBC
Java Transaction API and Service
JNDI
Communication Protocols
Internet Protocols
Remote Object Protocols
JMS
JavaMail
XML
Distributed Computing Using RMI
RMI Architecture
The Stub and Skeleton Layer
Stubs
Skeletons
The Remote Reference Layer
The Transpor Layer
Locating Remote Objects
RMI Exceptions
Developing Applications with RMI
The RMI Security Manager
Parameter Passing in RMI
The Distributed Garbage Collector
Dynamically Loading Classes
Remote Callbacks
Object Activation
Custom Sockets and SSL
RMI over IIOP (Internet inter-Orb Protocol)
Database Programming with JDBC
Database drivers
JDBC DataSources
Connectin Pooling
Distribuited Transactions
RowSets
JNDI and LDAP
Naming and Directory Services
LDAP
Introducing JNDI
XML Documents
DTD and XML schema
DTD, Parsers and Validation
XML Namespaces
Styling XML with CSS
XML Parsing with DOM and SAX
SAX, JAXP, and a Simple Example
Introduction to Web Containers
the HTTP Protocol
HTTP Request Methods
The GET Request Method
The POST Request Method
HTTP Response
Web Containers and Web Applications
Java Servlets
Java Server Pages
Deployment Descriptors
Servlet Programming
Servlet Implementation
init() method
service() method
destroy() method
getServletConfig() method
getServletInfo()
GenericServlet Class
SingleThreadModel Interface
HttpServlet Class
service() methods
doXXX() methods
getLastModified() method
Servlet Configuration
ServletConfig Interface
getInitParameters() method
getInitParameterNames() method
getServletContext() method
getServletName() method
obtainig a Reference to ServletConfig
Servlet Exceptions
ServletException Class
UnavailableException Class
Serlvet Lifecycle
Instantiation
Initialization
Service
Destroy
API for Request and Responses
ServletRequest Interface, methods for parameters, attributes, inputs
HTTPServletRequest Interface
methods for request Path and URL
methods for HTTP Header
getMethod()
ServletResponse Interface
methods for Content Type and Length, Output, buffered Output
HTTPServletResponse Interface
methods for Error Handling
sendRedirect() method
Servlet Sessions, Context and Collaboration
Statelessness and Sessions
Approaches to Session Tracking
URL Rewriting
Hidden Form Fields
Cookies
Session Tracking with the Java Servlet API
Session Creation and Tracking
The HttpSession Interface
Methods for Session Lifetime
Demonstrating Session Lifecycle with Cookies
Session Lifecycle Without Cookies
Methods for Managing States
Demonstating State Management
Binding and Unbinding Objects to and from Sessions
The HttpSessionBindingListener Interface
The HttpSessionBindingEvent Class
A Simple Shopping Cart Using Sessions
The Catalog Servlet
The ShoppingCart Servlet
Servlet Context
The ServletContext Interface
A Chat Application Using Context and Sessions
The ChatRoom Class
The ChatEntry Class
The Administration Servlet
Servlet for Chatting
Chat Setup
Servlet Collaboration
Servlet Chaining
Request Dispatching
RequestDispatch Interface
Web Deployment, Authentication and Packaging
Structure of a Web Application
Directory Structure
Web Archives Files
Mapping Request to Application and Servlets
Security Web Application
Deployment Configuration
JSP Basics and Architecture
JSP Directives
The page Directives
The include Directives
The tablib Directive
Scripting Elements
Declarations
Scriplets
Expressions
Standard Actions
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
<jsp:param>
<jsp:include>
<jsp:forward>
<jsp:plugin>
Implicit Objects
The request Object
The response Object
The pageContext Object
The session Object
The application Object
The out Object
The config Object
The page Object
Scope
Page Scope
Request Scope
Session Scope
Application Scope
XML Equivalent Tags
DTD and Root Element
Directives
Scripting Elements
Actions
JSP Design Basic
Page-Centric or Client-Server Design
Page-View
Page-View with Bean
The 'Dispatcher' Approach
Mediator-View
Mediator-Composite View
Service to Workers
JSP Tag Extensions
Tag Extension
A Simple Tag
Anatomy of a Tag Extension
Tag Handlers
javax.servlet.jsp.tagext.Tag Interface
javax.servlet.jsp.tagext.BodyTag Interface
javax.servlet.jsp.tagext.BodyContent Class
Convenience Classes
javax.servlet.jsp.tagext.TagExtraInfo Class
Objects available to Tag Handlers
Tag Library Descriptors
Using Tag Extensions in JSP Pages
Deploying and Packaging Tag Libraries
No Packaging, WAR, The Library JAR
Combination of WAR and JAR
Writing Tag Extensions
Processing Attributes
Body Content
Tags Introducing Scripting Variables
Specifying a TagExtraInfo Class
Implementing the TagExtraInfo Class
Change to the Tag Handler
Body Tags
Body Tags and Iteration
Body Tags and Filter Their Content
Tag Nesting
Handling Errors
Advanced Custom JSP Tags
An XSL Style Tag
Swing Model Tags
Using the Swing ListModel
Creating a Name-Value Mapping Model
Using the Swing TableModel
Writing Maintainable JSP Pages
JSP in a Multi-Tier Architecture
Techniques for Writing Maintainable JSP
Request Controller Architecture
Implementing, when Not to use a
Using includes in JSP
Two Types of Includes
using Static Includes
Using JSP Beans
Pages Beans
Session Beans
Application Beans
Bean Configuration
Using Tag Extensions
Categories of Tags
Model Tags
Translation Tags
Tags as Application Building Blocks
Handling Iteration
Handling Conditional Logic
Using Styled XML
When to use Custom SuperClasses for JSPs
Standard Abstractions for Common Objects
Handling Exceptions
Internationalization
Documenting the JSP layer
Coding Standards for Maintainable JSPs
The DBExplorer Application
Requirements, Design, Implementation
Presentation Tier, Data Tier
Reviewing tha Application
Deploying the Application
JSP and XML - Working together
JSP and XML
Modular Design and Modular Reading
A Profiled Newsletter - A Case Study
An Overview of the Main Components
The Configuration Component
The Reflection Package
The Constructor Class
Invoking methods
A Config File Example
Meaning of Tags, Attributes
The Java Code for XML Configuration
Config Classified
The Control Pattern of Config()
configChild() and Methods Invocation
The Database Component
DBConnector and its Default Implementation
QueryHandler
ResultSetParser
UserDataHandler
XML Data Access Component
DomSearch Queries
DomSearch Output
Instantiating DomSearch - DSNextMatch
Configuration XML data for DOMSearch
using DomSearch During a Session
The Presentation Component
The Login Page
The Main Frames Pages and Initialization
Control and Data Frames
The Control Component
The StampPageFactory Bean
An XML-Based JDBC Connector Servlet Framework
Implementing the JDBC Connector Servlet
Using the JDBC Connector Servlet
JavaMail
Setup Instructions
the JavaMail API
javax.mail.Session
javax.mail.Authenticator and PasswordAuthentication
javax.mail.Message
javax.mail.Part
javax.mail.Multipart and BodyPart
javax.mail.internet.MimePart
javax.mail.internet.MimeMultipart and MimeBodyPart
javax.mail.Service
javax.mail.Transport
javax.mail.Store
javax.mail.Folder
javax.mail.search.*
EJB Architecture and Design
Enterprise JavaBeans vs. JavaBeans
What Are EJBs?
varities of Beans. why use it?
The EJB Container and Its Services
Persistence
Declarative Transactions
Data Caching
Declarative Security
Error Handling
Component Framework for Business Logic
Scalability and Fail-Over
Portability
Manageability
How the Container Provides Services
Contarcts, Services, Interposition
Working with EJBs
The Client Developer´s View
The Bean Programmer´s View
What you Can´t Do in an EJB Component
EJB Components on the Web
Client-Tier Access to the EJBs
Design of the EJB Tier
UML Use Cases
Analysis vs Implementation
An Example of EJB Design
Session Beans and Business Logic
Session Bean and State
Representing Business Logic
The Difficult Problem of Conversational State
Session Beans and Persistent Storage
The Financial Aid Calculator Bean
Implementing out Manufacturing Application
Entity Beans and Persistence
Why not Use Session Beans?
Using a Stateful Session Bean
Using a Stateless Session Bean
Benefits of Entity Beans
Container-vs. Bean-Managed Persistence
EJB Container Services
Transactions
Transactions Without a Container
Declaretive Semantics for Transactions
Transactin Attibutes NotSupported, Supports, RequiresNew,
Required, Mandatory, Never
User-Controlled Transactions
Isolation Levels
Long Transactions
Optimistic, Pesimistic Locking.
Security
Specifying the Security Requirements
Security Roles, Method Permissions
Programmatic Access Control
Security and Application Design
Exceptions
Develop and Deployment Roles
Enterprise JavaBeans 2.0
Container-Managed Persistence in EJB 2.0
The EJB 2.0 Query Language
Message-Driven Beans
Design Considerations for J2EE Applications
Performance and Scalability
Debugging Java Server Applications
Unit Testing J2EE Applications
The Java Message Service
JMS programming
Integration with CORBA
IDL Types
Suscribirse a:
Entradas (Atom)