1、URL传值
在HTML中传参数的写法是:
<a pref="1.jsp?name1=value1&name2=value2"></a>
其中1.jsp是要跳转的页面,name1和value1是键值对,多组键值对之间用&连接,不要有空格之类的字符。在接收参数值的页面中使用request.getParameter(“name1”)来取出name1的值。
在JS中传参的写法是:
window.location.href("1.jsp?name1="+value1);
其中1.jsp是要跳转的页面,name1和value1是键值对,在接收参数值的页面也是用request的getParameter方法来接收。
2、Cookie传值
这种方法只能传字符串,而且是一个java中的对象,所以只能写在Servlet或者<%%>中。传递参数的基本格式为:
Cookie cookie = new Cookie("name", value);
response.addCookie(cookie);
request.getRequestDispatcher("1.jsp").forward(request, response);
其中name和value是键值对,1.jsp是要跳转的页面。接收参数的方法是:
Cookie cookies[] = request.getCookies();
String s = cookies[0].getValue();
用cookie数组接收过来,然后用getValue方法取值。
3、request对象的setAttribute方法
request对象可以设置很多键值对,但只能在两个页面之间传递,传参的基本格式为:
request.setAttribute("name",value);
name和value是键值对,可以设置多个这样的键值对。接收参数的方法是request.getAttribute(“name”)。
4、session对象的setAttribute方法
session也可以设置多个键值对,而且session的作用范围是会话,也就是说当你在页面关闭前,在其他所有页面都可以访问到这个session对象。这也是个java对象,只能写在Servlet或<%%>中,传参的方法是:
HttpSession se = request.getSession();
se.setAttribute("name",value);
在后端中session对象可以随便起名字,但是在前端中只能用session来访问session。接收参数的方法是session.getAttribute("name")。而且在其他页面间也可以调用这个方法来获取参数。
5、form表单传值
form表单中有个hidden类型的input标签,也就是隐藏域的意思,这个标签不会显示出来。其传递参数的写法为:
<form action="1.jsp" method="post">
<tr>
<td>
<input type="text" name="text"/>
</td>
<input type="hidden" name="name" value="value"/>
<tr>
</form>
在这个表单中,第一个input标签会显示一个文本输入框。但是第二个hidden类型的input标签就什么都不会显示,但是要注意第二个hidden标签前后不要添加<td>标签。
在1.jsp页面就正常使用request.getParameter("name")来获取其value值。
注意:
所有的方法都要先在运行第一个界面,执行传递参数命令,然后第二个界面才能正常获取参数值。若直接执行第二个页面,就会导致用于接收参数值的对象为空,会报空指针的错。