how can we create deadlock condition on our servlet?

50
Classes and Interfaces 1 How can we create deadlock condition on our servlet? Ans: one simple way to call doPost() method inside doGet() and doGet()method inside doPost() it will create deadlock situation for a servlet.

Upload: lawrence-maynard

Post on 30-Dec-2015

72 views

Category:

Documents


0 download

DESCRIPTION

How can we create deadlock condition on our servlet?. Ans: one simple way to call doPost() method inside doGet() and doGet()method inside doPost() it will create deadlock situation for a servlet. For initializing a servlet can we use constructor in place of init (). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: How can we create deadlock condition on our servlet?

Classes and Interfaces1

How can we create deadlock condition on our servlet?

Ans: one simple way to call doPost() method inside doGet() and doGet()method inside doPost() it will create deadlock situation for a servlet.

Page 2: How can we create deadlock condition on our servlet?

Classes and Interfaces2

For initializing a servlet can we use constructor in place of init ().

No, we can not use constructor for initializing a servlet because for initialization we need an object of servletConfig using this object we get all the parameter which are defined in deployment descriptor for initializing a servlet and in servlet class we have only default constructor according to older version of java so if we want to pass a Config object we don’t have parameterized constructor and apart from this servlet is loaded and initialized by container so it is the job of container to call the method according to servlet specification they have lifecycle method so init() method is called firstly.

Page 3: How can we create deadlock condition on our servlet?

Classes and Interfaces3

Suppose you have a class which you serialized it and stored in persistence and later modified that class to add a new field. What will happen if you deserialize the object already serialized?

in this case Java Serialization API will throw java.io.InvalidClassException

Page 4: How can we create deadlock condition on our servlet?

Classes and Interfaces4

Can we transfer a Serialized object vie network?

Yes you can transfer a Serialized object via network because java serialized object remains in form of bytes which can be transmitter via network. You can also store serialized object in Disk or database as Blob.

Page 5: How can we create deadlock condition on our servlet?

Classes and Interfaces5

While serializing you want some of the members not to serialize? How do you achieve it?

It is sometime also asked as what is the use of transient variable, 

Page 6: How can we create deadlock condition on our servlet?

Classes and Interfaces6

Can you Customize Serialization process or can you override default Serialization process in Java?

The answer is yes you can. We all know that for serializing an object ObjectOutputStream.writeObject (saveThisobject) is invoked and for reading object ObjectInputStream.readObject() is invoked but there is one more thing which Java Virtual Machine provides you is to define these two method in your class. If you define these two methods in your class then JVM will invoke these two methods instead of applying default serialization mechanism

Page 7: How can we create deadlock condition on our servlet?

Classes and Interfaces7

How can we refresh servlet on client?

On client side we can use Meta http refresh

Page 8: How can we create deadlock condition on our servlet?

Classes and Interfaces8

How many methods Serializable has? If no method then what is the purpose of Serializable interface?

Serializable interface exists in java.io  package and forms core of java serialization mechanism. It doesn't have any method and also called Marker Interface in Java. When your class implements java.io.Serializable interface it becomes Serializable in Java and gives compiler an indication that use Java Serialization mechanism to serialize this object.

Page 9: How can we create deadlock condition on our servlet?

Classes and Interfaces9

“Minimize Accessibility of Classes and Members” how to do that?

Standard advice for information hiding/encapsulation Decouples modules Allows isolated development and

maintenance Java has an access control

mechanism to accomplish this goal Item 13

Page 10: How can we create deadlock condition on our servlet?

Classes and Interfaces10

Make Each Class or Member as Inaccessible as Possible

Standard list of accessibility levels private package-private (aka package friendly) protected public

Huge difference between 2nd and 3rd

package-private: part of implementation protected: part of public API

Page 11: How can we create deadlock condition on our servlet?

Classes and Interfaces11

In Public Classes, Use Accessors, Not Public Fields

Avoid code such as:class Point { public double x; public double y; }

No possibility of encapsulation Also, public mutable fields are not thread safe

Use get/set methods instead:public double getX() { return x; }

public void setX(double x) { this.x = x}

Advice holds for immutable fields as well Limits possible ways for class to evolve

Item 14:

Page 12: How can we create deadlock condition on our servlet?

Classes and Interfaces12

Example: Questionable Use of Immutable Public Fields

public final class Time { private static final int HOURS_PER_DAY = 24; private static final int MINUTES_PER_HOUR = 60;

public final int hour; // Not possible to change rep for class public final int minute;

// But we can check invariants, since fields are final public Time ( int hour, int minute ) { if (hour < 0 || hour >= HOURS_PER_DAY) throw new IllegalArgumentException(“Hour: “ + hour); if (minute < 0 || minute >= MINUTES_PER_HOUR) throw new IllegalArgumentException(“Minute: “ + minute); this.hour = hour; this.minute = minute; } // Remainder omitted}

Page 13: How can we create deadlock condition on our servlet?

Classes and Interfaces13

Minimize Mutability , why? Reasons to make a class immutable:

Easier to design Easier to implement Easier to use Less prone to error More secure Easier to share Thread safe Item 15:

Page 14: How can we create deadlock condition on our servlet?

Classes and Interfaces14

Mutability Mutable Objects: When you have a

reference to an instance of an object, the contents of that instance can be altered

Immutable Objects: When you have a reference to an instance of an object, the contents of that instance cannot be altered

Page 15: How can we create deadlock condition on our servlet?

Classes and Interfaces15

Mutability Final classes A final class cannot be subclassed. This is done for reasons

of security and efficiency. Accordingly, many of the Java standard library classes are

final, for example java.lang.System and java.lang.String. All methods in a final class are implicitly final.

Example: public final class MyFinalClass {...} public class ThisIsWrong extends MyFinalClass {...} // forbidden

Restricted subclasses are often referred to as "soft final" classes.

Page 16: How can we create deadlock condition on our servlet?

Classes and Interfaces16

Mutability Final methods A final method cannot be overridden by

subclasses. This is used to prevent unexpected behavior from

a subclass altering a method that may be crucial to the function or consistency of the class.

Example: public class MyClass { public void myMethod() {...} public final void myFinalMethod() {...} } public class AnotherClass extends MyClass { public

void myMethod() {...} // Ok public final void myFinalMethod() {...} // forbidden }

Page 17: How can we create deadlock condition on our servlet?

Classes and Interfaces17

Mutability Final variables

A final variable can only be initialized once, either via an initializer or an assignment statement.

It does not need to be initialized at the point of declaration: this is called a "blank final" variable.

A blank final instance variable of a class must be definitely assigned at the end of every constructor of the class in which it is declared; 

Page 18: How can we create deadlock condition on our servlet?

Classes and Interfaces18

Example: Class Complexpublic final class Complex { private final double re; private final double im; public Complex (double re, double im) { this.re = re; this.im = im;} // Accessors with no corresponding mutators public double realPart() { return re; } public double imaginaryPart() { return im; } // Note standard “producer” pattern public Complex add (Complex c) { return new Complex (re + c.re, im + c.im); } // similar producers for subtract, multiply, divide // implementations of equals() and hashCode() use Double class }

Page 19: How can we create deadlock condition on our servlet?

Classes and Interfaces19

Inheritance is Forever A commitment to allow inheritance is

part of public API If you provide a poor interface, you

(and all of the subclasses) are stuck with it.

You cannot change the interface in subsequent releases.

TEST for inheritance How? By writing subclasses

Page 20: How can we create deadlock condition on our servlet?

Classes and Interfaces20

Constructors Must Not Invoke Overridable Methods

// Problem – constructor invokes overridden m()public class Super { public Super() { m();} public void m() {…};}public class Sub extends Super { private final Date date; public Sub() {date = new Date();} public void m() { // access date variable}}

Page 21: How can we create deadlock condition on our servlet?

Classes and Interfaces21

What Is the Problem? Consider the code Sub s = new Sub(); The first thing that happens in Sub()

constructor is a call to constructor in Super()

The call to m() in Super() is overridden But date variable is not yet initialized! Further, initialization in Super m() never

happens! Yuk!

Page 22: How can we create deadlock condition on our servlet?

Classes and Interfaces22

What are the common mechanisms used for session tracking?

CookiesSSL sessionsURL- rewriting

Page 23: How can we create deadlock condition on our servlet?

Classes and Interfaces23

What is the difference between Difference between doGet() and doPost()?

A doGet() method is limited with 2k of data to be sent, and doPost() method doesn't have this limitation. A request string for doGet() looks like the following: http://www.allapplabs.com/svt1?p1=v1&p2=v2&...&pN=vN

doPost() method call doesn't need a long text tail after a servlet name in a request. All parameters are stored in a request itself, not in a request string, and it's impossible to guess the data transmitted to a servlet only looking at a request string.

Page 24: How can we create deadlock condition on our servlet?

Classes and Interfaces24

What are the different kinds of enterprise beans?

Different kind of enterprise beans are Stateless session bean, Stateful session bean, Entity bean,

Page 25: How can we create deadlock condition on our servlet?

Classes and Interfaces25

What is Session Bean? A session bean is a non-persistent object that

implements some business logic running on the server. One way to think of a session object is as a logical extension of the client program that runs on the server.

Session beans are used to manage the interactions of entity and other session beans, access resources, and generally perform tasks on behalf of the client.

Page 26: How can we create deadlock condition on our servlet?

Classes and Interfaces26

What is software architecture of EJB?

session and Entity EJBs consist of 4 and 5 parts respectively:

1. A remote interface (a client interacts with it), 

2. A home interface (used for creating objects and for declaring business methods),

3. A bean object (an object, which actually performs business logic and EJB-specific operations). 

4. A deployment descriptor (an XML file containing all information required for maintaining the EJB) or a set of deployment descriptors (if you are using some container-specific features). 

5.A Primary Key class - is only Entity bean specific. 

Page 27: How can we create deadlock condition on our servlet?

Classes and Interfaces27

Page 28: How can we create deadlock condition on our servlet?

Classes and Interfaces28

Page 29: How can we create deadlock condition on our servlet?

Classes and Interfaces29

Page 30: How can we create deadlock condition on our servlet?

Classes and Interfaces30

Page 31: How can we create deadlock condition on our servlet?

Classes and Interfaces31

Page 32: How can we create deadlock condition on our servlet?

Classes and Interfaces32

Page 33: How can we create deadlock condition on our servlet?

Classes and Interfaces33

Page 34: How can we create deadlock condition on our servlet?

Classes and Interfaces34

Page 35: How can we create deadlock condition on our servlet?

Classes and Interfaces35

Page 36: How can we create deadlock condition on our servlet?

Classes and Interfaces36

Page 37: How can we create deadlock condition on our servlet?

Classes and Interfaces37

Page 38: How can we create deadlock condition on our servlet?

Classes and Interfaces38

Page 39: How can we create deadlock condition on our servlet?

Classes and Interfaces39

What is the role of Remote Interface in RMI?

Remote interfaces are defined by extending ,an interface called Remote provided in the java.rmi package. The methods must throw RemoteException. But application specific exceptions may also be thrown.

Page 40: How can we create deadlock condition on our servlet?

Classes and Interfaces40

An applet may not create frames (instances of java.awt.Frame class).• True • False

FalseWhile applets must themselves reside within the browser, they may create other frames.

Page 41: How can we create deadlock condition on our servlet?

Classes and Interfaces41

An applet is an instance of the Panel class in package jawa.awt.• True• False 

TrueApplets are small programs, meant not to run on their own but be embedded inside other applications (such as a web browser). All applets are derived from the class java.applet.Applet, which in turn is derived from java.awt.Panel.

Page 42: How can we create deadlock condition on our servlet?

Classes and Interfaces42

 The class file of an applet specified using the CODE parameter in an <APPLET> tag must reside in the same directory as the calling HTML page.• True • False

FalseThe CODE parameter can specify complete or relative path of the location of the class file

Page 43: How can we create deadlock condition on our servlet?

Classes and Interfaces43

 Applets loaded over the internet have unrestricted access to the system resources of the computer where they are being executed.• True • False

FalseDue to security reasons, applets run under a restricted environment and cannot perform many operations, such as reading or writing to files on the computer where they are being executed.

Page 44: How can we create deadlock condition on our servlet?

Classes and Interfaces44

An applet may be able to access some methods of another applet running on the same page.• True• False 

TrueOnly public methods can be accessed in such a fashion.

Page 45: How can we create deadlock condition on our servlet?

Classes and Interfaces45

 If getParameter method of an instance of java.applet.Applet class returns null, then an exception of type a NullPointerException is thrown.• True • False

FalseA NullPointerException is thrown only when a null value is used in a case where an object is required. For instance, trying to execute the equals method on a String object when the object is null.

Page 46: How can we create deadlock condition on our servlet?

Classes and Interfaces46

One of the popular uses of applets involves making connections to the host they came from.• True• False

TrueAn example of this feature can be implementation of a chat functionality.

Page 47: How can we create deadlock condition on our servlet?

Classes and Interfaces47

Applets loaded from the same computer where they are executing have the same restrictions as applets loaded from the network.• True • False

FalseApplets loaded and executing locally have none of the restrictions faced by applets that get loaded from the network.

Page 48: How can we create deadlock condition on our servlet?

Classes and Interfaces48

The methods init, start, stop and destroy are the four major events in the life of an applet.• True• False 

 TrueThese methods initialize, start the execution, stop the execution, and perform the final cleanup respectively. Not each of these methods may be overridden in every applet.

Page 49: How can we create deadlock condition on our servlet?

Classes and Interfaces49

Applets are not allowed to have contsructors due to security reasons.• True • False

 FalseApplets may have constructors, but usually don't as they are not guaranteed to have access to the environment until their init method has been called by the environment.

Page 50: How can we create deadlock condition on our servlet?

Classes and Interfaces50

Exam Multiple choice and true/false

questions cover: Basics of the language Topics that we studied Effective Java Items

There will be a cover page to record your choice; please use it since I will not look at the internal pages