JSP传给servlet很容易FORM提交,<jsp:forward>及配套的<jsp:param>,<c:url> <c:redirect> <c:import>及与这些配套的<c:param>,好像很多
而html原生的<href>更是轻松
而反过来,servlet传值给JSP就比较受局限,目前确认只有两种:
1、url方式
response.sendDirect("url?num="+num);
这个就是传统的get传值,会在浏览器的地址栏看到num值。
另外,如果num中有中文,要考虑用URLEncoder编码才行。
2、session POST方式
Map<String,String> map = new LinkedHashMap<String,String>();
map.put("a","a;a;a;a;a;a;");
map.put("b","bbbb");
map.put("c","cccc");
map.put("1","11122222");
request.getSession().setAttribute("map",map);
/***注意上面这句,有的地方说用
//request.setAttribute("map",map); //中间少了getSession
//配合下面的 getRequestDispatcher().forward是可行的
//但是配合最后的 sendRedirect()不可行。
//所以,还是加上 getSession,两种都可行****/
//request.getRequestDispatcher("test1.jsp").forward(request, response);
response.sendRedirect("test1.jsp");
两种跳转方式都可以,任选一种即可,区别另网查。
在test1.jsp中,可以直接用request.getAttribute("map");
如果用EL,就更简单 ${map.a}, ${map["b"]} 都可行