For example, there's the
Hudson.getJob(String) method. So the URL
/job/foo/ will be bound to the object returned by
Hudson.getJob("foo") (which would be a
Project object that corresponds to the "foo" project. See stapler documentation for more about how it binds Java object model to a URL hierarchy.
Each Hudson model objects have multiple "views" that are used to render HTML pages about the each object. Hudson uses Jelly as the view technology (which is somewhat similar to JSP+JSTL.) Views are really like methods, and each of them work against a particular class. So the views are organized according to classes that they belong to, just like methods are organized according to classes that they belong to. Again, see the stapler project for more about how this works.