9V battery powering 3w LEDs
9V batteries are meant for low current. They have high internal resistance and low capacity. They will not power your LED for long at all.

It is much better to use either:


A single 18650 LiIon cell (but you will have to purchase a suitable charger)
Or several AAs in series. This is much safer for a beginner (no Lithium fire) and I'm pretty sure you got NiMH rechargeables in the house already, so it's cheap.


A constant current DC-DC converter will have much higher efficiency than a resistor. You can get those at places like dealextreme, aliexpress or ebay... but it would be simpler to just buy a flashlight.