Web-application development cuts across the HTTP protocol, the client-side data presentation languages (HTML, XML), the server-side technology (Servlets, JSP, ASP, PHP), and the underlying resource (files, database, information system). Consequently, different web development design concerns including functionality, presentation, control, and structure are tangled and scattered, leading to code that is hard to develop, maintain, and reuse. In this paper we analyze the cause and consequences of crosscutting in existing web development technologies. We distinguish between intra-crosscutting that results in code tangling and inter-crosscutting that results in code scattering. All current web development models including MVC fail to address inter-crosscutting. We present two new web development models: XP and DDD. The XP model introduces extension points as place-holders for structure-dependent code. The DDD model extends the MVC framework with extension points. We present a novel domain-driven web development framework named WebJinn that completely separates web development concerns. The result is a significant improvement in web development in terms of reuse. WebJinn has been used to develop web application at several web sites.