1. 程式人生 > >Java Web中介面之間傳值的實現方法

Java Web中介面之間傳值的實現方法

出處:http://blog.csdn.net/suwu150

  在web中,我們經常要在頁面之間進行值的傳遞,但是具體的該怎麼做呢??下面就讓我們來實現:

傳值時有以下幾種方式,分別如下:

 1、利用URL直接進行傳值

    URL傳值格式是:URL?引數名1=引數值1&引數名2=引數值2&...

   例如:http://localhost:8080/project/page.jsp?m=3&n=5

  表示訪問http://localhost:8080/project/page.jsp,並給其傳送引數m,其值為3,引數n,其值為5

注意不能直接是資料夾下的jsp檔案,必須帶上tomcat的本機http地址

  既然送出去了,那怎麼接收,下面介紹

    <% 

         String str_m=request.getParameter("m");

         String str_n=request.getParameter("n");

    %>

 其中如果m和n沒有引數傳過來,則str_m和str_n為null

2、cookie進行資料傳送

  對於cookie,我們直接使用例子進行分析,先建立一個cookie1.jsp頁面,用於向第二個介面傳值,程式碼如下所示:

  1. <%@page  language="java"import="java.util.*"contentType="text/html"
    pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4.     <head>
  5.         <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
  6.         <title>JSP Page</title>
  7.     </head>
  8.     <body>
  9.         <%  
  10.             //定義一個變數  
  11.              String str="8";  
  12.              int number
    =Integer.parseInt(str);  
  13.         %>
  14.              該數字的平方為:<%=number*number %>
  15.              <%  
  16.              //將str存入到cookie中  
  17.              Cookie cookie=new Cookie("number",str);  
  18.              //設定cookie的存活期為600秒  
  19.              cookie.setMaxAge(600);  
  20.              //將cookie儲存在客戶端  
  21.              response.addCookie(cookie);  
  22.              %>
  23.              <ahref="cookie2.jsp"target="_blank">To cookie.jsp</a>
  24.     </body>
  25. </html>

再建立第二個頁面cookie2.jsp,,用於接收第一個頁面傳來的值,程式碼如下所示:
  1. <%@page contentType="text/html"pageEncoding="UTF-8"%>
  2. <html>
  3.     <head>
  4.         <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
  5.         <title>JSP Page</title>
  6.     </head>
  7.     <body>
  8.         <%  
  9.             //從cookie中獲取number  
  10.             String str=null;  
  11.             Cookie[] cookies=request.getCookies();  
  12.             for(int i=0;i<cookies.length;i++)  
  13.             {  
  14.                 if(cookies[i].getName().equals("number"))  
  15.                 {  
  16.                     str=cookies[i].getValue();  
  17.                     break;  
  18.                 }  
  19.             }  
  20.             int number=Integer.parseInt(str);  
  21.         %>
  22.         該數的立方為:<%=number*number*number %><HR>
  23.     </body>
  24. </html>
下面是執行後的結果(分別為執行前和執行後的結果):

                

由結果可以看出,其正確的進行了值的傳遞,當然對於資料還是不安全。。

3、利用session進行傳值

   首先,我們進行建立session1.jsp頁面,用於儲存資訊,程式碼如下所示:

  1. <%@page  language="java"import="java.util.*"contentType="text/html"pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4.     <head>
  5.         <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
  6.         <title>session1.jsp</title>
  7.     </head>
  8.     <body>
  9.          <%  
  10.          ArrayList books=new ArrayList();//建立一個集合  
  11.          //向books中新增資料,即向集合中新增資訊  
  12.          books.add("三國演義");  
  13.          books.add("西遊記");  
  14.          books.add("紅樓夢");  
  15.          books.add("水滸傳");  
  16.          //將books放入session中,即將集合放入到session中,其中第一個books為session中屬性的名字,而第二個為物件本身  
  17.          session.setAttribute("books",books);  
  18.          %>
  19.          <ahref="session2.jsp"target="_blank">檢視書籍</a>
  20.     </body>
  21. </html>
接著建立session2.jsp進行內容的獲取,程式碼如下所示:
  1. <%@page contentType="text/html"import="java.util.*"language="java"pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4.     <head>
  5.         <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
  6.         <title>session2.jsp</title>
  7.     </head>
  8.     <body>
  9.         <hr>
  10.         <%  
  11.         //從session中取出books,並使用ArrayList將Object強轉  
  12.             ArrayList books=(ArrayList)session.getAttribute("books");  
  13.         //遍歷books  
  14.             for(int i=0;i<books.size();i++)  
  15.             {  
  16.                 String book=(String)books.get(i);  
  17.                 out.println(book+"<br>");  
  18.             }  
  19.            %>
  20.         <hr>
  21.     </body>
  22. </html>
執行效果如下所示:

                                        

以上就是Java web中頁面之間值傳遞的三種方式,謝謝