Enhanced for loop:
Code snippet:

Output of the program is:
4
0
0
3
0
Here, "i" is directly assigned the each value from array in each iteration.
Iteration 1: Value of i = 1 (arr[0])
Iteration 2: Value of i = 2 (arr[1])
Iteration 3: Value of i = 3 (arr[2])
Iteration 4: Value of i = 4 (arr[3])

The above diagram is self-explanatory. Really interesting concept & worth learning :)
Blogging after a long time :)
Today I implemented Session Listener in our Project. Actually our requirement was to do certain database clean-up after the session time-out takes place. We could have called a Struts action when user clicks on Logout button, but the problem was - if the user closes the browser directly or forcefully closes the browser through Windows Task Manager, then how to call the clean-up code, so there was a need such that this code gets run by the server automatically after the session is about to time-out.
So I wrote a SessionListener class that implements HttpSessionListener. It's really a very cool concept that keeps track of each & every users' session. Even if you close the client browser, the required clean-up code will be fired automatically by the server itself & there you'll also have the access of that respective session data for that particular user :)
Any comments are always welcome :)
The eval() function executes a string as through it were a JavaScript statement.
Syntax: eval(string)
where string is any string representing a JavaScript expression, statement, or sequence of statements. The expression can include variables and properties of existing objects.
Description
The argument of the eval() function must be a string that can also be executed as a valid JavaScript statement. If the string represents an expression, eval() evaluates the expression. If the string is a numeric sring character, eval() returns the number. If the argument represents one or more JavaScript statements, eval() performs the statements.
Example
When executed, this script

displays this on the screen:
eval(string1) = 50
eval(executable) produces
Please feel free to correct me at any point :)
AJAX calls are "asynchronous" in nature. So what does this mean? You can have multiple requests to same (or different) servlets with each request processed asynchronously. Right, so are you speaking anything new?? Yes I am :) When you make simultaneous AJAX calls to the same servlet, the last call overlaps the response text with the previous, so as a result you get only the last requet's response text i.e. HTTP requests are overlaped. I faced this this problem in one of our Project, so I thought to share some views on it.
Examples:
Traditional code:
function ajaxRequest() {
...
myRequest.onreadystatechange = callBack; // assign callback function
...
}
function callBack() {
if (myRequest.readyState == 4) {
if (myRequest.status == 200) {
// Update DOM
}
}
}
Rearranging the above code:
Now we make some rearrangement of the AJAX code so that multiple HTTP requests can go on simultaneously. To do this, the XMLHTTP request object must be instantiated inside the Javascript function that calls the server. Furthermore, all code related to the request must be inside this function. The callback function must be an anonymous inner function within the ajaxRequest() function, and the code which updates the page after the callback must also be within the anonymous inner function.
function ajaxRequest() {
...
myRequest.onreadystatechange = function()
{
if (myRequest.readyState == 4)
{
if (myRequest.status == 200)
{
// update DOM with results
}
}
} // end anonymous inner function (callback)
...
}
Doing this I was able to handle multiple AJAX calls simultaneously.
Please feel free to correct me at any point :)
I came across very nice & informative article by Greg Murray on his blog here.
He had explained the XSS attacks & how to prevent them very nicely. Really worth reading :)
<CONCEPT>
Casting String to Boolean in Java:
We can achieve this using the Boolean class' static method:
Boolean.parseBoolean(String s) - returns a boolean value
Sample code:
String str = "true";
if( Boolean.parseBoolean(str) ){
System.out.println("Value is true");
} else{
System.out.println("Value is false");
}
Casting Boolean to String in Java:
We can achieve this using the String class' static method:
String.valueOf(boolean b) - returns the string representation of the boolean argument
Sample code:
boolean blnFlag = true;
String strVal = String.valueOf(blnFlag);
</CONCEPT>
Hello Friends,
It have been a very long time since I've posted my last blog. I have came up with a new idea of posting blogs on any kind of CONCEPT related to programming(any language), design patterns or any technical stuff. Please feel free to correct me at appropriate points.
Thanks.
Keep visiting... :)
Struts2 has in-built functionality of ajax enabled date-time picker control. But it has got one bug, which I've locked on Apache JIRA [here]
Bug Details:
Struts Version: 2.0.11
Description:
Suppose, I am currently on date Jan, 2008. When I click on the the dates 30, 31 on the topmost left corner, it takes the date as 1/3/2008 & 2/3/2008 [dd-mm-yyyy].
Same thing happens when I go to the month of Dec & click on the Jan dates. This problem is there while changing the year. I was dealing with the default view of the control.
Hope it gets fixed in the future releases of Struts2.
In-built monitoring and management support:
The J2SE 5.0 release provides built-in comprehensive monitoring and management support. It not only defines the management interfaces for the Java virtual machine, but also provides out-of-the-box remote monitoring and management on the Java platform and of applications that are running on it.
Also the JDK 5.0 includes the Java Monitoring and Management Console (JConsole) tool. It uses the extensive instrumentation of the Java virtual machine to provide information on performance and resource consumption of applications running on the Java platform using Java Management Extension (JMX) technology.
What is JConsole?
It's a JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs.
I tried monitoring both local & remote JVMs. Really it's a very useful tool that helps user know the memory used by their application & many other important things. It is useful for both, a developer & a tester.
I've started exploring more on this tool as it'll be very much helpful in our Projects which will make them more efficient. I'll regularly post my experiences regarding my future explorations. Keep visiting :)
The event BarCamp4 is going to held on 16th February 2008 in Pune. Venue will be at ThoughtWorks Pune.
Please register yourself here.
I was trying to set the connection pooling on Tomcat 5.0.x using normal way, but it was giving the error while connecting to the oracle database. One of my coleague suggested the following way, & it worked.
Added following entry to the server.xml present in the conf directory:

My article on "AJAX: Redefining Web Applications" was published on javajazzup.com
It is present here.
Please give it a view and let me know your comments.
I just came across the article written by Geertjan Wielenga (here) & it was worth reading it. Maybe I'll start to implement some sort of a pet project in Java which I'll open source it later. I am really very passionate for contributing to Open Source :)
Yesterday my friend Neeraj came across the concept (?) called "Fluent Interface". He told that he successfully implemented it in Java. Today I read lot of articles on it, and finally I was too successful to implement it in Java using a very-very simple program.
About Fluent Interface:
Fluent Interface is used to create a readable model i.e. to convert APIs to English-like sentences. It is slightly harder to write but much easier to read.
"Martin Fowler coined the term "FluentInterface" to describe objects that expose an interface that flows, and is designed to be readable and concise. The cost of this fluency is additional effort required to design the interface for your object and the slight increase in complexity. These types of interfaces are often utilized to create configurations for your objects but can progress into an internal Domain Specific Language or DSL." [Excerpt from Randy Patterson's blog post ]
Some useful pointers:
http://www.martinfowler.com/bliki/FluentInterface.html
http://www.bofh.org.uk/articles/2005/12/21/fluent-interfaces
"Two scientists whose work made possible the development of the iPod and powerful laptop computers were rewarded with the Nobel Prize for Physics.
Albert Fert, a Frenchman, and Peter Grünberg, a German, have been jointly honoured for creating the technology used to read data on hard disks."
From the article on Timesonline: here
_________________________________________________________________________________________________________________
"Look at the sky. We are not alone. The whole Universe is friendly to us and conspires only to give the best to those who dream and work."
- Dr. A P J Abdul Kalam
_________________________________________________________________________________________________________________