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值。

 

注意:

        所有的方法都要先在运行第一个界面,执行传递参数命令,然后第二个界面才能正常获取参数值。若直接执行第二个页面,就会导致用于接收参数值的对象为空,会报空指针的错。