Java留言板系统用Servlet+HTML实现,数据存静态List,含Message类与两个Servlet;需处理POST中文乱码、自动生成ID和时间;推荐JSP展示,后续可扩展为文件或数据库存储。

用Java构建一个简单的留言板系统,核心在于理清数据流转:用户提交表单 → 后端接收并存入内存或文件 → 页面读取并展示。不需要数据库、不用框架也能跑起来,适合初学者理解Web基础逻辑。
1. 基础结构:Servlet + HTML + 内存存储
最简实现可用原生Servlet(如Tomcat环境)+ 纯HTML页面。留言数据暂存在静态List中(开发调试用),避免引入数据库复杂度。
- 建一个Message类,含id、name、content、time字段
- 用static List
模拟“数据库”,所有Servlet共享 - 写两个Servlet:ShowMessageServlet负责显示列表,AddMessageServlet处理表单提交
2. 表单提交与中文乱码处理
HTML表单用POST提交,Servlet默认按ISO-8859-1解码中文会变乱码——必须在request.getParameter()前设置编码:
- request.setCharacterEncoding("UTF-8");(POST专用)
- 响应页头加response.setContentType("text/html;charset=UTF-8");
- HTML页面meta里也要写
3. 时间与ID自动生成
每条留言需要唯一标识和发布时间,无需手动输入:
立即学习“Java免费学习笔记(深入)”;
- ID可用System.currentTimeMillis()或简单递增计数器(配合synchronized防并发问题)
- 时间建议用new SimpleDateFormat("MM-dd HH:mm").format(new Date()),简洁易读
4. 页面展示:JSP或纯Servlet输出HTML
如果不用JSP,可在Servlet中用PrintWriter out = response.getWriter()拼HTML字符串;但更推荐用JSP分离逻辑与视图:
- JSP里用
遍历request域中的messageList(需提前request.setAttribute("msgs", list)) - 每条留言用${m.name} ${m.time}:${m.content}
- 表单action指向/add(对应AddMessageServlet的URL映射)
基本上就这些。不复杂但容易忽略细节——比如乱码、线程安全、前后端编码统一。跑通后,再逐步替换成文件存储(如写入txt)、JSON接口、或者接入MySQL,路径就很清晰了。










