Good Lord people! Kneeing your dog in the chest is about as outdated an anti-jumping technique as there is. And sorry, you cannot state that `it does not hurt the dog at all'. How would you know? You are not the dog, you DON'T know, simple. DO NOT do that you will teach your dog to be apprehensive of strangers which is NOT what you want.
Stepping on the leash will stop your dog from physically being able to jump up but won't cure the underlying problem. These are band-aid solutions and if you want a reliable cure you have to address the reasons your dog is jumping up, not the behaviour itself. And do you want to get the dog's leash on every time someone comes over? Wouldn't you rather just have a dog that didn't jump, period?
Here is what you do. (And DanL has the right answer, by the way!) First, the dog is jumping up because that is how it greets people. It is a natural response and you need to understand it to work out how to stop it. You gotta think like a dog, not a person, to fix this.
Secondly, and I guarantee this is the case without even seeing your dog in action, you are positively reinforcing and rewarding this dog every time it jumps up. You are yelling `No!' or `Stop!' or `Sit down!' or `Get off!' every time the dog jumps. You are looking at it, talking to it (or yelling at it) - in essence, you are paying it a ton of attention. And why is the dog jumping in the first place? For attention. It is getting exactly what it wants and therefore you are reinforcing its behaviour every single time it does this.
Remember, to a dog, being yelled at or pushed or looked at or scolded or anything is attention. It just doesn't differentiate between good and bad attention - its ALL attention. You telling off your dog for jumping is actually rewarding it for jumping.
This is what you do. Every single time you come into the dog's presence after a period of being away - even if only in another room for a minute - you ignore the dog completely. And by completely I mean COMPLETELY. No pat, no sound, no eye contact, no anything at all. Most people fall down in this part because they cannot bear not to greet their dog. This is vital to your success though. Go about your business. Make a cup of tea. Call a friend. Get on the computer. Your dog IS NOT THERE as far as you are concerned.
It will do anything to try and get you to notice it. It will jump, it will stand in front of you, it might bark. Remember, as far as you are concerned it is not there. NO attention at all. Even if you have to turn your back on it to avoid its efforts. Eventually (and this varies with different dogs, and particularly if they've been getting attention all the time for a long time) the dog will give up and go lay down to think about what just happened. That is your cue. Call the dog to you (do NOT go to your dog) and give it a calm cuddle, nice words and eye contact. If it arks up again, ignore it again.
This will take about a week, sometimes less, sometimes more. Everybody who comes in contact with the dog MUST do this or it all goes out the window. And it must be done EVERY time you come back in contact with the dog after any period of absence.
If you have guests and the dog is going nuts and they are completely ignoring it, you can put it in another room until it settles down - again, no eye contact and no speaking.
Pretty soon the dog will cotton on to the fact that unless it is calm, quiet and peaceful it will get ignored and no attention whatsoever. Its hard to do and its even harder to do properly, and you may have to do it for a few months for it to really sink in, but as time goes by you will need to spend less and less time ignoring your dog on first sight and you will have a happier, calmer more peaceful dog with much better manners!
It took two days for this technique to work on Ruby - the dog that was so bad people just stopped coming over to our house. It works, it fixes the underlying problem, it does so in a way a dog can relate to and understand, and it does not physically harm or correct the dog in any way.