我使用jetty web服务器执行此操作。
前提是Web服务器已经启动。
我在JSP中编写的主页试图从传入连接中获取IP地址。
因此,我将它分成两个JSP页面。(比方说,a.jsp和b.jsp)
b.jsp用于获取客户端IP地址,然后在
时将其传递给a.jspa.jsp专门用于显示从b.jsp获取的IP地址。
我的b.jsp中有一个静态字符串,用于存储传入的连接IP地址。
两个问题:
我希望a.jsp除非获取从b.jsp发送的数据(IP地址),否则不会显示任何内容。如何更新页面?
如何将值从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。
答案 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参数。