0

我用码头网络服务器做到这一点。

前提是网络服务器已经启动。

我用 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?

提前致谢

我的 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 的数据后会自动更新吗?
4

2 回答 2

4

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

<jsp:forward page="a.jsp">
  <jsp:param name="foo" value="10"/>
</jsp:forward>
于 2012-09-03T06:57:19.920 回答
1

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

至于您关于在页面之间传递值的问题,我会通过将值保存到会话来做到这一点,或者在重定向之前添加一个 GET/POST 参数。

于 2012-09-03T07:06:54.570 回答