One of the most common responses to misbehavior that I witness in pet owners is to say "No!". I will tell you right now, that while your pup may tuck his tail and pin his ears back, he probably doesn't know what "no" means. He can tell that you're upset, but the problem with "No!" is that it doesn't give your pup any productive information. Rather than saying "No!" when you dog is doing something that you don't like, try redirecting his actions, by offering a cue he does know. For example, if your dog is jumping on a guest, try saying "Sit". This provides the dog with information about what is acceptable and gives him an alternative to redirect his energy to. Make sure to reward your pup when he does sit though! This is much more productive for learning and training, and avoids conflict and misunderstanding that can damage your relationship with your four-legged best friend.
Be careful to use cue's that your dog already knows and is fluent in. If your dog is still in training, don't give him the opportunity to make mistakes. If you know your pup has a tendency to jump on guests as the enter, keep him away from the door with baby gates, or in a separate room and only allow him to greet when he is calm. Management and redirection are excellent tools for turning misbehavior into better behavior. Give it a try!