一个jsp页面中的input框向另一个jsp页面的input框传值

本文介绍了在JSP中如何实现页面间参数传递,包括URL直接添加、使用jsp:param、设置session和request。通过这些方法,可以在多个JSP页面之间有效地传递input框的值。

在这里插入图片描述
a.jsp

<input id = "name" type="text" style="width:400px;height: 40px" name="keywords" placeholder="请输入目录名称"/>
<button class="btn btn-info" id="queryBtn" type="button" style="height: 40px">查询</button>


<script type="text/javascript">
			$("#queryBtn").off().on("click",function(){
				var text = $("#name").val();
				window.location.href='b.html?name='+text;
			});
		</script>

b.jsp

<input id="cata_title" type="text" class="form-control"	 style="width:500px;" placeholder="信息资源名称"
	value="<%=request.getParameter("name")%>">
<button class="btn btn-info" id="queryBtn" type="button" style="height: 40px">查询</button>

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数。下面介绍一下实现的方法。

(1)直接在URL请求后添加

如:< a href=“thexuan.jsp?action=transparams&detail=directe”>直接传递参数< /a>

特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码:

response.sendRedirect(“thexuan.jsp?action=transparams&detail=directe”) ,可用request.getParameter(name)取得参数

(2)jsp:param

它可以实现主页面向包含页面传递参数,如下:

< jsp:include page="Relative URL"> 
 
< jsp:param name="param name" value="paramvalue" /> 
 
< /jsp:include> 

还可以实现在使用jsp:forward动作做页面跳转时传递参数,如下:

< jsp:forward page="Relative URL"> 
 
< jsp:param name="paramname" value="paramvalue" /> 

< /jsp:forward> 通过这种方式和一般的表单参数一样的,也可以通过request.getParameter(name)取得参数

(3)设置session和request

通过显示的把参数放置到session和request中,以达到传递参数的目的

session.setAttribute(name,value);  
 
request.setAttribute(name,value)  

取参数:

value=(value className)session.getAttribute(name);  
 
value=(value className)request.getAttribute(name);  

大家肯定已经注意到了,在取参数的时候,做了类型转换,这是因为放置在session和request中的对象的属性被看作 java.lang.Object类型的了,如果不转换,在将直付给value时会报classcastexception异常。

在多个JSP页面之间传递参数

  1. 怎么在多个JSP页面之间进行参数传递?需要使用JSP的内置作用域对象session。利用它的两个方法setAttribute(),getAttribute()
    下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能

  2. 代码如下:
    1.jsp

  <html> 
           <form method=get action=2.jsp> 
           what's your name  <input type=text name=username> 
           <input type=submit value=submit> 
           </form> 
    </html> 

2.jsp

    <html> 
     
           <form method=post action="3.jsp?pass=11"> 
           <%  
                  String name=request.getParameter("username");  
                  session.setAttribute("username",name);  
           %> 
           Your name is:<%=request.getParameter("username")%> 
           <br>what's your hobby <input type=text name=hobby> 
           <input type=submit value=submit> 
           </form> 
    </html> 

3.jsp

    <html> 
           your name is:<%=session.getAttribute("username")%> 
           <br> 
           your hobby is:< %=request.getParameter("hobby")%> 
           <br> 
           your password is:< %=request.getParameter("pass")%> 
           <br> 
           </form> 
    </html> 

参考:https://www.cnblogs.com/workhard-no-hardwork/p/4146170.html

JSP 页面中通过 AJAX 向一个 JSP 页面递数据,可以使用 jQuery 的 `$.ajax` 或 `$.post` 方法发送异步请求,并将数据以 JSON 格式提交到目标页面。接收方可以通过服务器端脚本(如 Java)处理并返回响应。 ### 使用 jQuery 发送 AJAX 请求 以下是一个典型的 jQuery `POST` 请求示例,用于将数据从一个 JSP 页面发送到一个 JSP 页面: ```jsp <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function () { $("#sendData").click(function () { var dataToSend = { param1: "value1", param2: "value2" }; $.post("target.jsp", dataToSend, function (response) { $("#result").html(response); }); }); }); </script> <button id="sendData">发送数据</button> <div id="result"></div> ``` 上述代码中,当用户点击“发送数据”按钮时,会将 `dataToSend` 对象作为参数发送至 `target.jsp` 页面。目标页面接收到这些数据后,可以进行相应的处理并返回结果。 ### 在目标 JSP 页面中获取数据 在目标 JSP 页面中,可以通过 `request.getParameter()` 获取前端入的数据,并将其输出或进行业务逻辑处理: ```jsp <% String param1 = request.getParameter("param1"); String param2 = request.getParameter("param2"); out.println("接收到的参数:"); out.println("param1 = " + param1); out.println("param2 = " + param2); %> ``` 该段代码接收了两个参数 `param1` 和 `param2`,并通过 `out.println` 将其输出。AJAX 请求成功后,这些内容会被插入到前端页面的 `#result` 元素中。 ### 通过 JSON 格式递结构化数据 如果需要递更复杂的结构化数据,可以将数据格式化为 JSON 字符串并在目标页面中解析: ```javascript var jsonData = JSON.stringify({ user: "testUser", items: ["item1", "item2"] }); $.ajax({ url: "target.jsp", type: "POST", data: { jsonData: jsonData }, success: function(response) { $("#result").html(response); } }); ``` 在目标 JSP 页面中解析 JSON 数据: ```jsp <% String jsonData = request.getParameter("jsonData"); // 假设使用 org.json.JSONObject 进行解析 JSONObject obj = new JSONObject(jsonData); String user = obj.getString("user"); JSONArray items = obj.getJSONArray("items"); out.println("用户:" + user); out.println("物品列表:"); for (int i = 0; i < items.length(); i++) { out.println(items.getString(i)); } %> ``` ### 使用表单序列化方式递数据 若需将整个表单数据一次性提交,可使用 `serialize()` 方法自动收集所有具有 `name` 属性的输入: ```jsp <form id="myForm"> <input type="text" name="username" value="JohnDoe"> <input type="email" name="email" value="john@example.com"> </form> <button id="submitForm">提交表单</button> <script> $("#submitForm").click(function () { var formData = $("#myForm").serialize(); $.post("target.jsp", formData, function (response) { $("#result").html(response); }); }); </script> ``` 在目标 JSP 页面中直接获取参数: ```jsp <% String username = request.getParameter("username"); String email = request.getParameter("email"); out.println("用户名:" + username); out.println("邮箱:" + email); %> ``` 以上方法均适用于在 JSP 页面之间通过 AJAX 输数据[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值