I would look into puppy classes or basic obedience that will help you lay down a foundation to build on.
Puppies play with their mouths and bodies; you need to show him what's acceptable and not acceptable. It helps if you keep the puppy leashed to you with a 6' leash so he has to follow you everywhere and you can keep an eye on him and praise the good behaviours and redirect the bad ones
Most jumping can be corrected by simply ignoring and turning your back on the dog, so the dog learns that jumping gets them nothing. You can also counter condition so teach the sit command and when they start to jump give the command and when they obey give a huge amount of praise, so they learn that doing the sit is a good thing and full of rewards rather than jumping. Because he's jumping on your son and can potentially hurt him without meaning to I would be very firm and consistent on teaching the sit and preventing him from jumping using the leash.
Get lots of toys of different shapes, sizes, and material. Keep a toy with you and when he gets feisty then bring out the toy and praise him when he plays with the toy. Make it a really fun game and use tugs (very gently as he'll be teething soon if not already started) or soft balls you can throw gently and have him chase.
Make sure he gets lots of physical and mental exercise every day, a tired puppy is a well behaved puppy!
Jasmine - Female Miniature Poodle - born Aug 15, 2010
Loker Delgado Von Stalworth - Male GSD - born Jan 26, 2012
Koda & Zazu - 5 year old male cats
Alex - Male Cocker Spaniel (rescue) - RIP Cuddlebug 2007-2010