首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JSP 頁面間傳值完全指南:四種核心方法詳解

     編輯:程式設計綜合問答

JSP 頁面間傳值的四種主流方式

在 JSP 開發中,頁面之間的數據傳遞是基礎且高頻的需求。本文系統整理了四種核心傳值方案,並附上可直接運行的代碼示例,幫助你快速選型並避開常見坑點。

1. 超鏈接 URL 參數傳遞(GET 請求)

最簡單的方式,適合非敏感、少量數據傳遞。

<!-- a.jsp -->
<a href="b.jsp?i=100">傳參</a>

<!-- b.jsp -->
<% String j = request.getParameter("i"); %>
<%= j %>

注意:中文參數需在 server.xml 配置 URIEncoding="UTF-8",否則會亂碼。

2. request.setAttribute + forward 轉發(請求域共享)

適用於同一次請求鏈路內的數據傳遞,數據不會暴露在 URL 中。

<!-- a.jsp -->
<% request.setAttribute("name", "Danny"); %>
<jsp:forward page="b.jsp" />

<!-- b.jsp -->
<% String getName = (String) request.getAttribute("name"); %>
<%= getName %>

此處必須使用 forward 而非 redirect,否則 request 域對象會丟失。

3. 表單提交(POST 請求)

標準的用戶輸入收集方式,支援大量數據且相對安全。

<!-- a.jsp -->
<form action="b.jsp" method="post">
  <input type="text" name="username" />
  <input type="submit" value="提交" />
</form>

<!-- b.jsp -->
<% String getUserName = request.getParameter("username"); %>
<%= getUserName %>

4. 隱藏域攜帶數據

在表單中隱藏不需用戶修改的數值,配合 POST 提交。

<!-- a.jsp -->
<%! int a = 4; %>
<form action="b.jsp" method="post">
  <input type="hidden" name="b" value="<%= a %>" />
  <input type="submit" value="傳遞" />
</form>

<!-- b.jsp -->
<% int c = Integer.parseInt(request.getParameter("b")); %>
<%= c %>

進階方案:JavaBean 封裝表單數據

當表單字段較多時,使用 <jsp:useBean> 自動映射屬性,代碼更清晰。

<!-- Login.jsp -->
<form action="Deal.jsp" method="post">
  用戶名:<input type="text" name="username"><br>
  密碼:<input type="password" name="password"><br>
  <input type="submit" value="登錄">
</form>

<!-- UserBean.java -->
package com;
public class UserBean {
  private String username, password;
  // getter/setter 省略
}

<!-- Deal.jsp -->
<jsp:useBean id="user" class="com.UserBean">
<jsp:setProperty name="user" property="*"/>
得到的用戶名為:<%= user.getUsername() %>

property="*" 表示自動匹配所有同名請求參數到 Bean 屬性,極大減少手工 setProperty 代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved