The LENGTH of the projection of one vector onto another is (almost) the dot product.
To find the projection of [itex]\vec{u}[/itex] on [itex]\vec{v}[/itex], draw the line from the "tip" of [itex]\vec{u}[/itex] perpendicular with [itex]\vec{v}[/itex]. You now have a right triangle with angle [itex]\theta[/itex] between the angles and hypotenuse of length [itex]|\vec{u}|[/itex]. The length of the projection, the "near side", is then [itex]|\vec{u}|cos(\theta)[/itex]. Since the dot product can be defined as [itex]\vec{u}\cdot\vec{v}= |\vec{u}||\vec{v}|cos(\theta)[/itex], to get the length of the pojection, we need to get rid of that [itex]|\vec{v}|[/itex] by dividing by it. The length of the projection of [itex]\vec{u}[/itex] on [itex]\vec{v}[/itex] is
[tex]\frac{\vec{u}\cdot\vec{v}}{|\vec{v}|}[/tex]
In order to get the projection vector itself, we need to multiply that length by the unit vector in the direction of [itex]\vec{v}[/itex], which is, of course, [itex]\vec{v}/|\vec{v}|[/itex].
The vector projection of [itex]\vec{u}[/itex] on [itex]\vec{v}[/itex] is
[tex]\frac{\vec{u}\cdot\vec{v}}{|\vec{v}|^2}\vec{v}[/tex]