What are common java web development practices?
<p>I'd like to learn more about/better understand common java web development practices of development groups that have at least two teams - web designers and web component developers. Particularly, I'm interested in understanding things like:</p>

<ol>
<li><p>Assuming there is a code repository, do all teams checkout a local copy of <em>all</em> code? If yes, why would a web designer want/need access to back-end code, similarly why would a web component developer want/need access to front-end code?</p></li>
<li><p>How does each team-member, regardless of team, test their code - do they 'deploy' the code to their local workstation, an individual instance on a development box, or a consolidated dev box? </p></li>
<li><p>How is integration and testing done? For example, let's say a web designer creates a 'sign-up' form page and web component developer creates the back-end code to process and insert the data into the db - how would the front-end and back-end code be integrated and tested?</p></li>
</ol>

<p>Any additional information that pertains to java web development practices of development groups that I have not specifically inquired about, but is relevant, please do share.</p>

<p><strong>EDIT (FOLLOW-UP):</strong>
I appreciate the answers, they've filled in most of the conceptual holes I had about java web development. However, I do have a couple of follow-up questions -</p>

<ol>
<li><p>Testing, particularly automated testing are clearly important parts of java web development; but what constitutes a good "test"? For example, lets say a java back-end developer just put together code that accepts form data, validates it, and then inserts into/updates a database. What would be a good test in this scenario? Furthermore, how could this be "automated"?</p></li>
<li><p>Can someone expound on continuance integration - i.e. is their purpose to only compile all project code? Or is it to help in automated testing? From what I understand continuance integrations servers monitor repositories for commits, and upon commits checkout the newly modified code and compile the <em>entire</em> project; upon successful/failed compilation the user(s) are notified.  </p></li>
</ol>
