This is an annoying problem, but it's not a bad one at all. There are so many things you can do! You can teach your him to go to a certain spot when the doorbell rings or when people come over. We are going to try to teach Loki to go to his crate when the doorbell rings because he will bark like crazy at it. He does great with his "go to your crate" command, so we are going to build on that. Lots of people use rugs instead. It's like target training. It's a game to them!
For over excitement, ask people to ask him to sit before they pet him. Don't let them pet him until his butt (or feet, if that is your preference) is stuck to the ground! He will learn to sit/stand for petting! If he jumps up on people, they should turn their backs on him and ignore him for a few seconds. (If they are sitting they should stand up, then turn their backs if necessary.) They can place him back on the floor, then praise him when he does sit (he'll figure it out) or you can ask him to get "off" - Loki has an "off" command which means "Feet on the floor!" This is easy to teach. Put him on the couch and throw a treat on the floor. Say "OFF" the second his feet hit the floor. Repeat.
If he gets TOO excited to the point where he is out of control, you can give him a time-out in his crate for 5 mins until he calms down. Repeat if he returns to being crazy. Soon he'll figure out he gets to stay out if he doesn't go nuts.
I would NOT recommend hitting/tapping your dog or "correcting" him. He won't understand why you are doing it - he may think he is being corrected for a friendly greeting. Just teach the commands and then ask him for the behavior. (Also, just saying something like "EHHH" works, if nothing else but to get their attention. There is no reason to hit them.)