Israel should have more troops on the ground around the Gaza strip, as clearly they have been shown to be vulnerable to invasion, and they did not have enough people on the ground to defend themselves.
Air strikes on urban areas is just killing innocent Palestians. The majority of people in Palestine will be normal innocent people, not militants. Put yourself in their shoes. Israel cannot respond to an atrocity by committing another. If you are killing innocent people, it's an atrocity. You cannot bomb an urban area without killing innocent people.