When "show arp" in cisco switch, the arp table only contain the information about neighboring switch but without any hosts, why?
Assuming HostA and HostB are in the same subnet.
Because hostA will arp out for the mac-address of hostB. So hostA broadcasts onto the local subnet syaing who owns this IP address ie. the IP address of host B.
Host B repsonds with it's mac-address to HostA. The switch if it is a pure layer 2 switch only cares about the mac-address and the port it came in on it and it should record that it in it's mac-address table.
Are you saying that you don't see the mac-address of HostB in the mac address table ?
Bear in mind that mac address entries do get timed out of the switch cache.