The Bessel functions may be defined by means of the generating function:
g(x,t)=ex/2*(t-1/t) = Jntn
Equating coefficients of t^n on both sides we obtain the series expansion of the Bessel functions:
Jn = sum((-1)^k * (x/2)^(n+2k)/(k!(n+k)!))

Differentiating the generating function w.r.t t we get
(1+t^(-2))g(x,t)=sum(n*Jntn)
equating coefficients of t^n on both sides we obtain the recursion relation
(2n/x)*Jn = Jn-1 + Jn+1 Differentiating the generating function w.r.t x gives
2*J'n = Jn-1 - Jn+1

These recursion relations may now be used to prove that Jn satisfies Bessel's differential equation:
x2Jn + xJn+(x2 - n2)Jn = 0 The generating function may be used to prove many other properties. For exampe parity
Jn(-x)=(-1)nn(x) J-n(x) = (-1)nn(x)

If Bessel's differential equation is divided by x it becomes self-adjoint and thus we expect its eigenfunctions to be orthogonal(with a weighting function of x). Orthogonality for the Bessel functions is rather special. Here is not Jn and Jm which are orthogonal but Jp(an) and Jp(am) which are orthogonal where an and am are two zeroes of Jp. Thus we may expand any function in a series of zeroes of one Bessel function.

Arfken is a good reference for Special functions in general. Of course the Bible of special functions is the book by Abramowitz.