A relatively new invention that will definitely solve this problem is the no jump harness. It works by restricting the movement of the dog’s hind legs so that it can’t jump at all. This should not be a permanent solution but rather something that can be effectively used during training. It should not only stop them from jumping chain link fences, but also from jumping on people and furniture.
In order to perfect the proper greeting routine, your dog needs much more practice than that. You can speed up the training process by leaving through the back door and returning through the front door over and over again. When your friends come over, have them do the same. Each time, ask your dog to sit-stay before opening the door. At first his excitement will make it difficult for him to concentrate but after you've repeated this process 10 times, he will calm down and be able to concentrate. Before asking your dog to sit-stay in this distracting and exciting situation, be sure he has a reliable sit-stay in normal, non-stressful situations. And of course you can always just hold the dog in a sit if need be.
1. Do not let your dog make a big deal out of your arrival home. In fact, as the alpha leader of your family's "pack", you shouldn't even greet him or her for at least 15 minutes. If your dog jumps around and pesters you before that, squirt him with water pistol or shake a can filled with pebbles. This will startle him, and if done on a regular basis, calm him whenever you get home. He won't make such a big deal of your arrival, and thus learn that he can greet you without jumping. Follow the same technique for any visitors to your home. Do not introduce the dog to your visitors until after 15 minutes or longer.
Start by teaching your puppy the word NO. Use that word only when she is doing something you do not like. You have to use the word NO in a loud, stern voice that is different from all other ways you communicate with her, so that she knows there is something wrong. You also have to catch her in the act that you don't like, so that it will associate the word NO with the action that she is doing. Be consistent, and follow your verbal command with a light smack or moving her to a time out spot.
Other commands can be substituted for ‘sit’ if you prefer, such as ‘stay’ or ‘down.’ However, if your dog simply gets too excited to execute these commands properly (as is often the case, especially with puppies) try diverting their attention elsewhere. Ask them to go find their ball, or a favorite toy, as a way to distract them and expend some energy. And, as always, reward the good behavior with praise.
When a dog jumps on a human of its own free will, it is not "greeting" the human, it is asserting its dominance over the human; it is the dog communicating that it is alpha and/or wishes to own/control the human. A subordinate would never dream of running over and jumping on the alpha dog of the pack. Space is respect and lower members of the pack respect the higher members. If your dog jumps on humans, it does not respect them. Note: when a young puppy jumps on humans it is sometimes its attempt to reach one's face. Puppies need to be taught not to jump up on humans as this behavior will manifest into other meanings as the puppy grows up into an adult dog.