使用application模拟聊天室

学习-记录-分享 / 2024-10-25 / 原文

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Session 测试</title>
</head>

<body>

<form method="post" name="form">
    <table>
       <tr>
       		<td>
       			输入留言:<input type="text" name="user">
       		</td>
       </tr>
             <tr>     
       		<td>
       			<input type="submit" value="提交">
       		</td>
       </tr>
    </table>
</form>

<%
    // 获取用户输入
    String user = request.getParameter("user");

    // 获取之前的留言
    String previousMessages = (String) application.getAttribute("messages");
    if (previousMessages == null) {
        previousMessages = ""; // 初始化为空
    }

    // 如果用户输入不为空,添加到之前的留言
    if (user != null && !user.trim().isEmpty()) {
        // 添加标记
        String markedMessage = "one: " + user;
        
        // 添加换行
        if (!previousMessages.isEmpty()) {
            previousMessages += "<br>";
        }
        // 追加新留言
        previousMessages += markedMessage;
    }

    // 保存更新后的留言到 application 范围
    application.setAttribute("messages", previousMessages);
%>

<h3>留言记录:</h3>
<%= application.getAttribute("messages") %>
</body>
</html>

效果

两个jsp代码都一样,只是添加标记那里更改一下就可以
application刷新网页或者关闭浏览器都不会消失,只有重启后或者通过application.removeAttribute(“变量名称”)才可以清除记录。
存储的是一个字符串,输入新字符串时将其和就字符串拼接在一起,形成一个字符串来存储。