Simple: If the parameter name is present, but value not, then it's empty. If the parameter name is absent as well, then it's null. You normally give fields a name, so it's present as request parameter and empty fields will be just come in as empty string.
It also depends on the server. JBoss will give you empty Strings, but WebSphere will give you null. It's a real PITA. I'm sure there's some standard out there that says one way or another (my money would be on JBoss being the correct implementation) but you should code for both possibilities.
I think it's up to the browser, but in most cases it will be null. You should still allow for both cases.
Edit:
As noted in the comments, in most cases it will be the empty string.
精彩评论