My last truck had a drop-in bedliner, which are great for impact distribution. It sucked, though, for lots of other reasons: held water, stuff slid around, tie-down points covered up, etc.
I really wanted a spray-on, but they have their issues as well. They're a little hard on the knees, and if you drop something heavy like a brick onto it, you can still dent your bed.
At the salesman's suggestion, I went spray-on, but then added a mat to it. I wish I knew what kind it was (I'll have to go back and ask him), but it's awesome. It fits perfect in the bed and absolutely looks like its supposed to be there. It's sturdy enough to stand up to anything, but really soft on the knees. It's dark black with ribs on the top, and almost tacky feeling. Nothing slides on it AT ALL. Stuff just stays where I put it.
It certainly would have been a good option just by itself, but combined with the spray-on, it gave me everything I wanted and then some for about $100 more.