将值从一个JSP页面传递到另一个JSP页面,并从First JSP获取响应数据

时间:2014-01-11 21:55:34

标签: java jquery html jsp jstl

以下是我first.jsp我应该使用AJAX调用second.jsp页面...我需要将first.jsp页面的值传递给second.jsp页面。

然后在second.jsp页面中使用该变量值并使用该查询生成SELECT查询并将数据返回first.jsp page

以下是我的first.jsp page

<html>
    <head>
    </head>
    <body>    
        <p><input type="radio" name="dish" value="Indian" id="radioButton"> Continental</input></p>
        <p><label for="male" id="columnData">Male</label></p>    
        <script>
            $(document).ready(function() {
                $('#radioButton').click(function() {
                    alert($('#columnData').html());
                    var name = $('#columnData').html();             
                    $.ajax({  
                        type:"POST",      
                        url: "second.jsp",  
                        data:"name=" +name,           
                        success: function(success) {                                  
                        }  
                    });                 
                });
            });
        </script>
    </body>
</html>

下面是我的second.jsp page,其中我需要从first.jsp检索值并进行选择查询并返回结果..

<html>
    <head>
        <title>SELECT Operation</title>
    </head>
    <body>
    <sql:setDataSource var="snapshot" driver="org.postgresql.Driver"
                       url="jdbc:postgresql://localhost/postDB"
                       user="postgres"  password="hello"/>

    <sql:query dataSource="${snapshot}" var="result">
        // use the name variable value here passed from first.jsp page?
        SELECT * from Employees where name = ?;
    </sql:query>
</body>
</html>

我不确定如何将值从一个JSP页面传递到另一个JSP页面,然后将结果从second.jsp页面返回到first.jsp页面?

2 个答案:

答案 0 :(得分:2)

在first.jsp文件中,请尝试使用$ .post(更合适)。

$.post("second.jsp", {'name': name}, 
       function(data) 
       { 
          alert("Result from second.jsp: " + data.name + " " + data.type); 
       }
);

在你的second.jsp文件中,你现在可以像这样获得“name”变量

request.getParameter("name")

然后,执行查询并返回结果

<%@page import="org.json.simple.JSONObject"%>

<%
if (request.getParameter("name") != null)
{
   response.setContentType("application/json");

   ... your select query ...

   JSONObject json = new JSONObject();
   ... put your sql data like this ...
   json.put("name", "hello");
   json.put("type", "world");

   response.getWriter().write(json.toString());
}
%>

答案 1 :(得分:0)

所以你已经创建了客户端接口,你是否创建了服务器端逻辑来处理这些页面?

您必须具有服务器端逻辑才能接收页面请求并使用JSP页面进行响应。以及响应你的AJAX调用。您将需要创建Servlet,或者设置一个Web应用程序框架,如Spring WebMVC,JSF,Struts等。