Of course the flip side to this is that if you're a contractor you *should* get paid a good amount more than if you were working as a full time employee, so the fact you don't get paid for time off is compensated somewhat. It's all a matter of how much risk you want to take and if you're confident about finding other contract roles when this one finishes.
As for being able to resign, this is all down to the contract. Some contracts (from particularly slimy agencies) may provide no notice period, meaning you are not able to terminate the contract early, something that if noticed prior to signing you can negotiate out.