日期:2014-05-17  浏览次数:20710 次

菜鸟又来问问题了!关于servlet的url传值
因为想使用两个数组变量,所以考虑使用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);

是正常的。

------解决方案--------------------
request.getParameter();
------解决方案--------------------
不行就转成字符串放过去,到那边在拆分回来了,或者放到一个list中试试
------解决方案--------------------
(强制转换)request.getAttribute("jiechu")不行吗
------解决方案--------------------
好吧,我简单说一点

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

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

------解决方案--------------------
url传参传数组是不行了,
要不用post方式传参,
必须用get方式的话,只能拆分成字符串或分解成多个参数来传

例如:

url?param=arr1,arr2,arr3
或者
url?param1=arr1&param2=arr2&param3=arr3
------解决方案--------------------
数组是传不过去的,穿过去也是字符串。