J2EE Tutorial - Java Bean

To bring out the differences between the different appraoaches, we will consider a simple case where the user types his name in the textbox

J2EE Tutorial - Java Bean

J2EE Tutorial - Java Bean

     

To bring out the differences between the different appraoaches,  we will consider a simple case where the user types his name in the textbox(text1) in the html form and submits it to the webserver. The JSP then invokes the greeter bean in the webserver . The greeter bean encapsulates the  'Business Logic' ,and so it  appends a greeting message to the name thus submitted and sends it back to the user.

What is a  Javabean?  A Javabean is just a java class  with the following requirements.

   i) It has a public no-args constructor

  ii) It has 'set' and 'get' methods for its properties.

  iii) It may have any general functions.

  iv) If required it must be Serializable.

   However,

  It is not necessary always that a bean should have properties.

   If there are no properties, we need not provide 'set' & 'get' methods either.

  ( Even the no-args constructor is provided by the compiler by default!)

  If  the bean uses library classes alone, it is automatically serializable.

  In that case, it becomes  just a class for encapsulating some functionality (ie) business logic.

 

   Such a bean , may or may not have a visual representation. As the field has  moved away from the desktop, to webserver, there is no point in providing a visual represenation for a component which works in server side as the user cannot interact with it directly. (Such a bean  used by jsp  in webserver, is exactly similar to ASP component). ( So  no worry about jar file ,BDK, BeanBox etc traditionally associated with JavaBean)

   Let us now create  such a bean. The Tomcat server searches for any classes in  c:\tomcat\webapps\root\web-inf\classes  folder. We create a subfolder under classes folder and name it 'ourbeans'.

   Therefore, we specify  the package information in the first line of our jspbean as  :

   package   ourbeans;

*************************

package ourbeans;

public  class greeterbean

{

  public greeterbean()   {  }

  public String  greetme(String s)

  {

  return   "How are you?...."+s;

  }

}

*****************************************************************

To compile the above file : 0

> javac greeterbean.java

We get greeterbean.class

We move this class file to: 1

  c:\tomcat\webapps\root\web-inf\classes\ourbeans

*****************************************************************

We will now create  greeter.htm & greeter.jsp and place them in: 2

c:\tomcat\webapps\root

greeter.htm

  <html> 3

  <body>

   <form  method=post  action=greeter.jsp>

   <input   type=text  name='text1'> 4

   <input   type=submit>

    </form>

   </body> 5

   </html>

greeter.jsp

   <html> 6

   <body>

    <jsp:useBean   id="greeter1"  class="ourbeans.greeterbean"  />

    <% 7

   String   s = request.getParameter("text1");  

     String   a = greeter1.greetme(s);

   out.println(a); 8

   %>

  </body>

   </html> 9

  In the above example, the business logic was invoked through an instance of 'greeter' bean class. So, it is object-oriented approach. Where was the method invoked? It was invoked in the Webserver.Where was the object available? The object was available in webserver itself.(ie) 'locally'.

This point is worth noting carefully. For  this reason, the jspbean method cannot be classified as 'Distributed Object ' Technology. Because, in Distributed Object Technology, the object on which the method is invoked locally, should be available in a remote server and not locally .( Why is this distinction so important? Is it important atall? If we are able to answer these questions  to ourselves convincingly, we have truly grasped the essence of Enterprise computing  but   not otherwise. That is why this point is being laboured.