Java 如何将一个JSP传递给另一个JSP?

Java 如何将一个JSP传递给另一个JSP?,java,html,jsp,Java,Html,Jsp,我正在创建小型web应用程序,我面临以下问题。我有两个JSP,当我单击submit按钮时,它每次都重复该值。我想要的是,当我点击submit按钮时,它应该只给出相应的值 index.jsp 课堂录像 数据库中没有任何文件。。。 second.jsp 第一个Jsp:在第一页中设置值 request.setAttribute("name",somevalue); 第二个Jsp:在第二个页面中检索它 request.getAttribute("name") 使用queryString URl

我正在创建小型web应用程序,我面临以下问题。我有两个JSP,当我单击submit按钮时,它每次都重复该值。我想要的是,当我点击submit按钮时,它应该只给出相应的值

index.jsp


课堂录像
数据库中没有任何文件。。。
second.jsp



第一个Jsp:在第一页中设置值

request.setAttribute("name",somevalue);
第二个Jsp:在第二个页面中检索它

request.getAttribute("name")

使用
queryString

URl: http://myaddress.com/xyz?name=jill&sex=f 
String someName = request.getParameter("name") ; 
String sex = request.getParameter("sex") ; 

一种方法是使用Java初学者描述的会话

您还可以动态创建一个from并提交它

编写一个类似于此的函数,并在成功中使用它:

function submitValues(url, params) {
var form = [ '<form method="POST" action="', url, '">' ];

for(var key in params) 
    form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');

form.push('</form>');

jQuery(form.join('')).appendTo('body')[0].submit();   
}
函数子值(url、参数){
变量形式=[''];
for(参数中的变量键)
形式。推送(“”);
形式。推送(“”);
jQuery(form.join(“”)).appendTo('body')[0].submit();
}

有许多选项可以将值从一个jsp传递到另一个jsp,下面是一些

1) 将其添加为隐藏变量并指定值

<input name="file" type="hidden" value=""/>
3) 将其作为查询参数传递

http://......one.jsp?file=""

这是因为你在这里迭代循环

for(int i=0;i<list.length;i++){
s[i]=list[i].toString();
String fi=list[i].getName(); 
for(int i=0;i
作为

<td><input type="button" class="btn" data-reqno=value="<%=s[i] %>" value="file name">

然后像这样使用jQuery处理它,这样您就可以将值传递给下一个JSP

<script type="text/javascript">
    $(document).ready(function () {

         $(".btn").click( 
             function() {
                 var selectedFileName = $(this).attr("data-reqno");

                 var urlToApprove = "/yourApp/req/filename?name=" + selectedFileName;

                               }
         );
    });
</script>

$(文档).ready(函数(){
$(“.btn”)。单击(
函数(){
var selectedFileName=$(this.attr(“数据需求号”);
var urlToApprove=“/yourApp/req/filename?name=“+selectedFileName;
}
);
});
另外,为了避免在JSP中使用Scriptlet,您可以使用JSTL或El实现同样的目的。
希望有帮助!!

传递变量的方法有很多,比如

session.setAttribute()
session.getAttribute
action "xxx.jsp?variable=1"

我的问题是,我只想从jsp中获得所需的值,而不是所有的值。您不会得到所有的值。只有在“name”中设置的值变量将在第二页中检索。您能更具体一点吗?当我运行第一个jsp时,我得到了我给定文件夹中的3个文件名,现在有3个按钮,我希望在其中单击按钮时,浏览器上应该只打印该文件的名称。在这里,每当我单击任何按钮时,都只打印一个相同的文件名。您希望显示什么值从
first.jsp
传递到
second.jsp
,确切地说?顺便说一句,“jsp页面”翻译为“Java服务器页面”。也就是说,添加“页面”是多余的(看起来很傻)。我想传递我正在检索的文件名亲爱的先生,这个yourapp/req/filename是什么意思?名称=“@user3139341是将值传递给另一个JSP的URL。@user3139341是重定向到第二个页面的URL,“?”后面的字符串是要传递的参数。在您的情况下,它应该是“/second.JSP”file=“+selectedFileName;
<script type="text/javascript">
    $(document).ready(function () {

         $(".btn").click( 
             function() {
                 var selectedFileName = $(this).attr("data-reqno");

                 var urlToApprove = "/yourApp/req/filename?name=" + selectedFileName;

                               }
         );
    });
</script>
session.setAttribute()
session.getAttribute
action "xxx.jsp?variable=1"