永发信息网

如何将一个servlet的ArrayList数组传到另外一个servlet中呢

答案:4  悬赏:70  手机版
解决时间 2021-04-05 17:41
  • 提问者网友:骨子里的高雅
  • 2021-04-05 05:58
我想在另外一个SERVLET中将 这个数组输出应该怎么办

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println(" A Servlet");
out.println(" ");
out.print("
");
HttpSession session = request.getSession();
Add a = (Add)request.getSession().getAttribute("YXB");

if(a==null)
{
a = new Add();
}
//将商品的四种属性赋值
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int price = Integer.parseInt(request.getParameter("price"));
int num = Integer.parseInt(request.getParameter("num"));
//确认添加的物品
//out.print("You add it in Cart:

");
//out.print(id+" "+name+" "+price+" "+num);
Goods good = new Goods(id,name,price,num);
a.add(good);
ArrayList al3 = new ArrayList();
al3 = a.Check();
//在servlet A 绑定arrayList对象到request上面:
//request.getRequestDispatcher("Checkout.java").forward(request, response);
//转发到Servlet B
out.print("You had to buy:

");
int Total = 0;
for(int i = 0 ; i {
Goods s12=(Goods) al3.get(i);
float p3 = s12.getPrice();
int n3 = s12.getNum();
Total = (int) (Total+p3*n3);
out.println(al3.get(i).toString()+"

");
}
out.print("The Total is:" + Total + "

");
out.print("");
session.setAttribute("YXB", a);
session.setAttribute("YXB1", al3);
//al.add(good);
//返回继续购物
out.print("Are you want to check out?Or continue Shopping?

");
//out.print("");
//out.print("");
//out.print("

");
out.print("Turn to the Shopping Page

");
//结账

out.print("");
out.print("");
out.println(" ");
out.println("");
out.flush();
out.close();

最佳答案
  • 五星知识达人网友:思契十里
  • 2021-04-05 06:25
//在servlet A 绑定arrayList对象到request上面:
//request.getRequestDispatcher("Checkout.java").forward(request, response);
//转发到Servlet B

解答:request.getRequestDispatcher("这是你配置文件中的servlet B 映射的地 址").forward(request, response);
servlet A中把数组放进去request.setAttribute("arrayList",arraylist);
servlet B中把数组取出来request.getAttribute("arrayList");
记得强转。
全部回答
  • 1楼网友:行路难
  • 2021-04-05 10:03
循环js的数组,生成一组同名的。 servlet里用 string[] arr = request.getparametervalues("arr"); list list = arrays.aslist(arr);
  • 2楼网友:想偏头吻你
  • 2021-04-05 08:59
提示,你可以把请求转发到另个一servlet上的,在转发之前可以先将你的数组设置到request 的属性里边,这样就OK 了
  • 3楼网友:神鬼未生
  • 2021-04-05 07:35
1.你可以不跳转 但是实例化另外一个servlet对象 2. 你可以直接跳转到另外一个servlet 就像你跳到前台一样 同样用 相当于一次请求 用request对象取值 3 看你用了 out 用的ajax吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯