JSP一页将值传递给另一页

时间:2012-09-03 06:53:19

标签: jsp jetty

我使用jetty web服务器执行此操作。

前提是Web服务器已经启动。

我在JSP中编写的主页试图从传入连接中获取IP地址。

因此,我将它分成两个JSP页面。(比方说,a.jsp和b.jsp)

b.jsp用于获取客户端IP地址,然后在

时将其传递给a.jsp

a.jsp专门用于显示从b.jsp获取的IP地址。

我的b.jsp中有一个静态字符串,用于存储传入的连接IP地址。

两个问题:

  1. 我希望a.jsp除非获取从b.jsp发送的数据(IP地址),否则不会显示任何内容。如何更新页面?

  2. 如何将值从b.jsp传递给a.jsp?

  3. 提前致谢

    我的b.jsp看起来像......

    <%@ include file="index.jsp" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org  /TR/html4/loose.dtd">
        <%!
        static String clientIpAddress = "";
        %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <% 
            clientIpAddress=request.getRemoteAddr();
            if(clientIpAddress!=null){
                //How can I pass clientIpAddress to a.jsp to display?
            }
            else{
                out.println("Nothing happened here");
            }
        %>
    
    
    
    
    </body>
    </html>
    

    我添加了

    <%@ include file="a.jsp" %>
    

    在我的代码顶部,因为我认为我必须将clientIpAddress传递给a.jsp。

    1. 当a.jsp从b.jsp接收数据时会自动更新吗?

2 个答案:

答案 0 :(得分:4)

您可以使用<jsp:include/><jsp:forward/>操作。

<jsp:forward page="a.jsp">
  <jsp:param name="foo" value="10"/>
</jsp:forward>

答案 1 :(得分:1)

您无需在页面之间传递IP地址,您可以跳过b.jsp并将用户直接发送到a.jsp - 您可以使用以下方式提取IP地址:
request.getRemoteAddr()

关于在页面之间传递值的问题,我可以将值保存到会话中,或者在重定向之前添加GET / POST参数。