The Firebug extension for Firefox measures overall loading time, as well as page rendering time. That may be all you need (unless you want to automate this, in which case Google Analytics may be sufficient).
Generally, the time any web page takes to load can be broken down into
a) Time spent in sending request to server
b) Time spent in servlet to service the request.. this can be further divided to time taken by database and time taken in buisness logic
c) TIme taken to render the JSP
d) Time taken to send the rendered HTML and static resources back to the client
Not sure, which you want to profile. Profiling onLoad will basically do part of e). But, if you want to make your website fast, you should be looking at the whole thing
The way I do it is divide up the profiling into client side profiling and server side profiling. There are tools like YSlow that profile your web page on the client side and provide reccomendations. Also, Chrome comes with an inbuilt monitor that help you monitor the client side activities. Firefox comes with a plugin that is similar called Firebug. I believe IE also comes with a profiler now, but I haven't used it
For server side profiling, my employer has used load testing tools to identify slow pages, and then we have just inspected logs to and monitored database to find hotspots within the code.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com