Are there any patterns or best practices that can be used to simplify changing configuration profiles for java web applications across multiple environments. e.g. JDBC URLs,
You can use the Component Configuration Pattern in your language of choice
It is described in the POSA books (I think that in the 4th volume)
(in java you can use the commons-configuration component ).