Only Hotel Martita is actually in Puerto San José. The others are several miles outside of the city. I've yet to find a restaurant of note in Puerto San José, and most folks, myself included, are content to dine at the various hotel restaurants.
If you want a beachfront hotel, right in Puerto San José, that's very reasonable and reasonably clean and well kept, check out Posada Quetzal (tel. 502/7832-9858; www.posadadelquetzal.com).
Note: This information was accurate when it was published, but can change without notice. Please be sure to confirm all rates and details directly with the companies in question before planning your trip.