A typical spline does not go through its control points.
What you are looking for is "curve matching". There are many many curves that can match a given set of points. You will need to decide exactly what algortihym gives you the results you really desire.
Here's an article on "cardinal splines" which do go through the poinst in the set. Its even in Java http://firstname.lastname@example.org/msg02296.html
If thats not right or enough I'm sure you can find others with a google, like I just did.