我不知道如何使用 Java 作为预处理器,但基本的想法是这样的:
- 使用 Java 从 POST 中获取信息
- 将它持久存储在某个地方(在 PHP 中我会使用会话信息,Java 可能会有类似的东西)
- 每次用户访问另一个页面时,从持久存储中提取他们的名字并将其插入到侧边栏中。
如果您的意思是 Javascript 而不是 Java,那么情况会有所不同(我不确定Javascript 中是否存在持久存储),但我希望这会有所帮助。如果你是用 PHP 做的,我可以写一个快速的脚本来演示。如果你愿意,我仍然可以,它可能会有一些用处。
编辑:
我会把这个添加到评论中,但我没有空间。无论如何,我编写了 PHP 脚本(花了很多时间想知道为什么我得到一个 500 错误,结果我忘记了一个右括号)。这不是 javascript,但它有望帮助您编写代码,因为它是相同的基本思想。您可以在此处找到生产中的脚本。来源:
<?php
session_start(); // Start the session so we can use session variables
if(isset($_POST['first_name'])) // Assume that if the user filled out their first name they filled out everything
{
// Assign values based off the POST values
$_SESSION['first_name'] = $_POST['first_name'];
$_SESSION['last_name'] = $_POST['last_name'];
$_SESSION['age'] = $_POST['age'];
$_SESSION['loggedin'] = true; // Used to tell if the user's logged in or not
}
$first_name = $_SESSION['first_name']; // Read the first name from session data
$last_name = $_SESSION['last_name']; // Read the last name from session data
$age = $_SESSION['age']; // Read the age from session data
$loggedin = $_SESSION['loggedin'];
if(!$loggedin) // If the user isn't logged in, display the login form
{
?>
<html>
<head>
<title>Test script</title>
</head>
<body>
<form action="test.php" method="post">
First Name: <input type="text" name="first_name" />
Last Name: <input type="text" name="last_name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
<?php
}
else // Otherwise, say hello!
{
echo "Hello, " . $first_name . " " . $last_name . "! You are " . $age . " years old!";
}
?>
</body>
</html>
它的作用是在 PHP 中启动一个会话并将值存储在那里。您似乎很熟悉 POST 是什么,所以我只说 $_POST 存储通过 POST 发送的值。$_SESSION 是会话数据的数组。这两个都是关联数组,所以它们存储基于键而不是位置(即$a['hello'] vs $a[2])。启动会话后,它会从 POST 读取值到会话数据,然后从会话数据读取到局部变量(这不是做事的最佳方式,但它适用于演示)。然后它会根据用户是否登录显示问候语或登录表单。
同样的想法也可以应用于带有 cookie 的 Javascript。我真的不熟悉 Javascript,所以我不知道代码会有多大帮助,所以我会将您链接到有关 cookie的本教程。这个想法是在页面加载时检查cookie,如果未设置则设置它,如果设置则从其中加载数据。做起来应该不会太难,特别是如果你可以使用我的代码来帮助你。