Assuming the hardware is functioning correctly, double check the basics:
- Confirm that your laptop is plugged into one of the LAN ports, and not plugged into the WAN port.
- Review the IP address the router is giving you, and what IP address is being supplied as the default gateway.
It's entirely possible that the router itself is broken (either from the factory, or over time). I've encountered some that were dead out of the box, so that is always an option.
If you're up to it, you might want to install WireShark - http://www.wireshark.org/ - and confirm what's going on with the conversation between the router and the computer. WireShark is a free network sniffer that can show all traffic activity on the computers ethernet ports.
Start out with the ethernet ports disconnected (i.e. un-plugged) from the router. (Also ensure the Wireless interface is turned off, just for good measure.)
Start WireShark have it monitor your ethernet port, then plug the cable from a LAN port on the router to the ethernet port on the computer. The first conversations WireShark should see are the DHCP communications. WireShark will decode the packets and it will note that the router offered an IP address. Note this IP address and double-check the IP address the router is using to communicate with the computer. In your situation, the "default gateway" address should be the same as the IP address the router is using to communicate with the computer. Assuming this information appears valid, continue to the next section.
Pull up a web browser and try to connect to the router managment web page. Note the communication between the router and computer. The first few packets should be setting up the communication between the sever port 80, and the computer. If the problem continues as you described, at some point the web communication will stop, presumably because the router stopped providing HTML data and/or closed the communication.
You might want to use WireShark to monitor a simple connection to a known good web server (i.e. Google.com, or a local Apache instance) to see what good communication looks like.
Without knowing some of the details of the problem, it's a shot in the dark at this point, but hopefully the WireShark information will provide some additional data for us to help you resolve the problem.