If Advanced Placement CS is in their future, then Java is probably the best language choice as it is still used in APCS. There are also a lot of resources for Java development that also permit graphics based insight. The course probably wouldn't be about developing for the web, though.
But because of the APCS link there are a lot of resources intended for novice programmer development.
One resource (Java) that is very useful for such students, and has a lot of project ideas built in to it is Greenfoot, which uses a rectangular grid to place visual representations of objects and lets them move an interact according to the student program. There is also a dedicated teacher resource for it: Greenroom. It has additional greenfoot projects and a forum for discussion.
Otherwise, Python is a pretty good choice for beginners. It has less syntactic load. But the set of resources for novices is a bit more scattered.
But any programming that uses some visual metaphor is better for student understanding than just numeric programming. It needn't be web based, but should be graphical. Games are pretty good for this provided that they aren't just textual. Any simple board game can provide a nice way to visualize what a corresponding program needs to do.
But, one way to avoid the two language issue in web development is to have the students build only the back end or only the front end with you providing the other. It also defines a set goal that students can program toward. The part you build can be in a different language than that used by the students, of course.