Well, I think that the Roman Army cannot defeat a Han Army before the Marian Reform (Army reform by Gaius Marius in 103BC) but after that the Roman Army became very fearful.
The Marian Reform was to make a professional fighting force. Hannibal has defeat the Roman Army at Canae, but those were Republican legion, not the powerful Marian Legion (Marian Legion was the the name of the legion after the Army reform by Marius)
The Republicain Legion was a force of draw citizen that were only levied when need, unlike the Marian Legion which is a full-time army.
So the Marian Legion was a professional force of around 5120 infantrymen. Each Legion have 10 Cohort, each cohort have 3 maniples and each maniples is made of 2 centuries of 80 mens. But the 1st Cohort only 5 century instead of 6, but all Centuries have 160men instead of 80 + 120 horseman.
Each Century has a ballista as heavy weapon, and each cohort have an onager. Each Legions also have around 800 slaves to carry supply. Each Legion was also supported by a Auxilia of about the same size. The Auxilia (latin word for auxiliary) was all the unit that the Legion doesn't have. (A Legion was mainly heavy infantry except for around 120 horsemans who act as scout) Auxilia was mainly cavalry, siege engineer and light infantry.
Arrow ?? Well, The Marian Legionnay use the shield to form the testuedo, very effective to protect against arrow. But don't forget that the Roman Army can use siege weapon against the Han... This was frequent when the Roman fought against Barbarian...
Also, Roman Legionaries use the Pilum as pre-charge weapon, the pila has a iron shank, and the iron shank would bend on impact. A pilum, having penetrated a shield through a small hole and its shank having bent would now be difficult to remove. An enemy, if not killed by the pilum, would have little time before closing with the legionaries and would have to discard his now-unwieldy shield before going into combat, or the guy keep his shield, the legionary only have to step on the bend part and it will unwield the shield.
Also, the Roman has great discipline, and mobility, the tactical unit were the cohort.
Well, Roman Marian Legion have won lot of battle againt a numerically superior ennemy with cavalry. Think of Batle of Alesia, were 280,000 Gauls were defeated by 55,000 Roman soldiers, and the Roman only lost 8,000 men while the Gauls have lost 200,000. Battle of Vercellae, were Marius defeat 200,000 Germanics with only 50,000 and losing only around 1000 men. Don't forget, Germanic and Gauls were very good horsemen... even Julius Caesar own guard was partly made of Gallic Horseman. There's numerous exemple of great Roman Victory with Marian Legion...