菜鸟又来问问题了!关于servlet的url传值

lxpandsq 2012-03-07 03:38:26
因为想使用两个数组变量,所以考虑使用url传值,结果,我使用servlet的url传值,连一个数组都传不过去,请高手随手指导下,资料也查了不少了,还是不行!

方法一:
servlet代码:
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s).forward(request,response);
jsp页面:
String s[]=(String[])request.getAttribute("jiechu");

方法二:(网上查到的)
servlet代码:
response.sendRedirect("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s);
jsp页面:
String s[]=(String[])request.getAttribute(“jiechu”);

两个方法都报的是空指针异常。
我用的方法是,

request.setAttribute("jiechu",s );
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp").forward(request,response);

是正常的。
...全文
213 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2012-03-08
  • 打赏
  • 举报
回复
request.getParameter();
宏Lee 2012-03-08
  • 打赏
  • 举报
回复
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s).forward(request,response);
改为
request.setAttribute("jiechu",s);
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp).forward(request,response);


jsp:
String s[]=(String[])request.getAttribute(“jiechu”);
fedori 2012-03-08
  • 打赏
  • 举报
回复
(强制转换)request.getAttribute("jiechu")不行吗
lxpandsq 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 java_pengjin 的回复:]
request.getParameter();
[/Quote]

我是数组必须做成字符串吗?
昨日凡阳 2012-03-08
  • 打赏
  • 举报
回复
数组是传不过去的,穿过去也是字符串。
菖蒲老先生 2012-03-08
  • 打赏
  • 举报
回复
url传参传数组是不行了,
要不用post方式传参,
必须用get方式的话,只能拆分成字符串或分解成多个参数来传

例如:

url?param=arr1,arr2,arr3
或者
url?param1=arr1¶m2=arr2¶m3=arr3
lxpandsq 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mycdsnstudy 的回复:]
好吧,我简单说一点

其实,在Java的世界里,数组也是对象,一种特殊的对象。大家都知道Object有个toString()方法,如果其他类没有重写Object的toString()方法,比如

Java code


String[] str = new String[]{"Hello","World"};
System.out.println(str);


就会调用从O……
[/Quote]
嗯,其实我就是从后台传值到前台,最终的解决办法也是如你所说,用@和#相加,在前台拆分,其实,我不愿意如此做的原因是希望,前台,jsp页面上少些java的代码。不过,以我的水平,看来是做不到的。
小龙在线 2012-03-08
  • 打赏
  • 举报
回复
好吧,我简单说一点

其实,在Java的世界里,数组也是对象,一种特殊的对象。大家都知道Object有个toString()方法,如果其他类没有重写Object的toString()方法,比如

String[] str = new String[]{"Hello","World"};
System.out.println(str);

就会调用从Object继承的toString()方法,打印出来的就是类似于

[Ljava.lang.String;@5ffb18

这样的字符串,其实就是默认调用其toString()方法
所以,"/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s这种方式得到的是什么,就一目了然了

建议:将数组拼接成字符串或者多个参数,再在后台拆分组合吧
五哥 2012-03-07
  • 打赏
  • 举报
回复
不行就转成字符串放过去,到那边在拆分回来了,或者放到一个list中试试
安特矮油 2012-03-07
  • 打赏
  • 举报
回复
request.getParameter
jamespengo 2012-03-07
  • 打赏
  • 举报
回复
request.getParameter();

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧