There are two approaches you can take to this very common problem.
Or it will work. One more work than the other. And some people say that one is kinder and more humane than the other.
You will need to choose a technique and apply it consistently.
(1) use your array
This is what even non-dog owners know.
The dog comes to you, trembling with excitement. He stands up to place his paws on your stomach or chest. Just before placing your paws on you, you turn to the side and raise your knee to meet a hard, pointed but blunt object. After holding onto it for a second or two, it falls to the ground. You won.
There are a few extra things you can do at this point.
You can teach him that he receives a nice welcome when his feet are on the ground, that when he falls off your knee, squat next to him and give him a lot of attention and fuss.
And if he rubs his paws on you before he can lift your knee, then do everything you can to appear disinterested. Do not reward your dog in any way. (and that means not pushing him with your hands, because this is a fun game for any dog. Don’t talk to him. Ignore him. Whatever he wants to do, make it a game, a sure non-event.
OK. this is the knee on the chest. But there is an alternative.
(2) Use your hands
When the dog jumps, this second technique allows you to grab its legs with both hands and stand there. His jump suddenly ‘frozen’. Nothing happens. There was no reaction. Instead he’s caught and can’t do anything!
Hold it like this. Hold on to it and don’t move. Draw this. Let it linger for as long as possible. Talk to him if you want, but wait for him.
Most dogs will start drooling on your hands after a while. This is your signal — let it go. Hard. Don’t put it down, rather let it go abruptly.
Then, when he hits the ground, crouch with him and jump up a few minutes earlier to give him the encouraging, enjoyable time he was hoping for.
This way he learns from you that the best response is always on all fours!