Creating the ContactsList file is an expensive operation since it queries the LDAP for a bunch of static information that it really only needs once such as hostnames and supported services. Succesive times starting Tomcat will cause GPDK to use the ContactsList and not query for the info every time. The first time a JSP gets executed, it needs to be compiled into a servlet. So again, if you return to login.jsp a second time around it should display more quickly. Connecting to a myproxy server to retrieve credentials.
Key generation is traditionally an expensive operation.
You could generate weaker keys faster, but you probably don't want to do that.