使用servlet+ajax将数据存入数据库实现简易留言板

先上图~~
加载界面同时加载历史留言

发表留言 字数超出限制禁用按钮

发表留言成功~

下面贴代码 message_board.html


<body>
<nav class="navbar navbar-default navbar-static-top"><div class="container-fluid"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"></button><a class="navbar-brand" style="font-size: 30px;color: #fff;" href="index.html">首页</a></div></div>
</nav><div style="width: 550px; margin: 0 auto;"><div class="inputMessage"><textarea id="textArea" rows="3" cols="70" name="msg" placeholder=" 说点什么吧!"></textarea><div style="padding-bottom: 5px;"><input type="text" name="name" autocomplete="off" class="input-name" placeholder=" 请输入昵称"><button type="submit" class="btn btn-primary submitMsg">发表</button><label id="limitSize">50</label><span>/</span><span>50</span></div></div><div><ul><li class="li-admin"><hr><div class="mname-admin">admin</div><div>大家好!文明留言,从我做起~</div><div>2019-04-01 17:02:58</div><hr></li></ul></div><div><ul id="ul"></ul></div></div><script src="js/jquery-2.1.0.js"></script><script src="js/bootstrap.min.js"></script><script>// 发表留言时用append插入div语句var comment = null;function div(name,msg,time) {comment = '<li>\n' +'<hr>\n' +'<div class="mname">' + name +'</div>\n' +'<div class="mmsg">' + msg +'</div>\n' +'<div class="mtime">' + time +'</div>\n' +'<hr>\n' +'</li>';}// 加载页面时调用的添加div语句的方法function addBox(data_display) {$.each(JSON.parse(data_display),function(index,obj){$("#ul").append('<li>\n' +'<hr>\n' +//获取名字"<div class='mname'>"+obj['mname']+"</div>"+//获取留言"<div class='mmsg'>"+obj['mmsg']+"</div>"+//获取留言时间"<div class='mtime'>"+obj['mtime']+"</div>"+'<hr>\n' +"</li>");});}$(function () {// 页面加载时从数据库读取留言数据$.post("displayMsgServlet",function (data_display) {addBox(data_display);});// 设置留言最长为50个字符var long = $("#limitSize");$("#textArea").bind("input propertychange",function () {long.html(50 - this.value.length);if (this.value.length > 50) {long.css("color","red");// 禁用发表按钮$(".submitMsg").attr("disabled",true);} else {long.css("color","black");$(".submitMsg").attr("disabled",false);}});// 提交留言$(".submitMsg").click(function () {var _name = $(".input-name").val();var _msg = $("#textArea").val();if (_msg != "" && _name != "") {/*** sensitiveWordsServlet 使用filter铭感词过滤 * 并使用JDBC将昵称 过滤后的留言和 时间存入到数据库中*/$.post("sensitiveWordsServlet", {name: _name, msg: _msg}, function (data_submit) {alert("留言成功!");div(data_submit.name,data_submit.msg,data_submit.time);$("#ul").append(comment);// 清空留言框中的内容$("#textArea").val("");}, "json");} else {alert("请输入留言或昵称!请检查");}});});</script>
</body>
</html>

接着是 DisplayMsgServlet.java

package com.cangwu.msgboard;import com.cangwu.utils.DruidUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;/*** @Author: Cangwu* @Date: 2019/4/7 21:17*/
@WebServlet("/displayMsgServlet")
public class DisplayMsgServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");// 查询已有留言QueryRunner runner = new QueryRunner(DruidUtils.getDataSource());String sql = "select * from tb_msgboard";List<Message> messages = null;try {messages = runner.query(sql, new BeanListHandler<Message>(Message.class));} catch (SQLException e) {e.printStackTrace();}ObjectMapper mapper = new ObjectMapper();// 将对象转为json字符串String json = mapper.writeValueAsString(messages);// 向前台输出到data_display中response.getWriter().write(json);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request,response);}
}

DruidUtils.java JDBC工具类:

package com.cangwu.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;/*** @Author: Cangwu* @Date: 2019/4/1 22:48*/
public class DruidUtils {private static DataSource ds ;static {try {// 加载配置文件Properties pro = new Properties();pro.load(DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));// 获取DataSourceds = DruidDataSourceFactory.createDataSource(pro);} catch (Exception e) {e.printStackTrace();}}/*** 获取连接*/public static Connection getConnection() throws SQLException {return ds.getConnection();}/*** 释放资源*/public static void close(Statement stmt , Connection conn) {close(null,stmt,conn);}public static void close(ResultSet rs, Statement stmt, Connection conn ) {if (rs != null ) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null ) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null ) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}/*** 获取连接池的方法*/public static DataSource getDataSource() {return ds;}
}

Message.java 是含有三个参数的bean文件 这里就不贴啦
private String mname;
private String mmsg;
private String mtime;

小白努力学习中 有问题欢迎指出哈!~

2021-7-22 更新

贴一个代码地址 :https://github.com/cangwuwuwu/msgBoard
由于很早之前写的 所以没测试过是否还能正常运行了。贴个代码仅供参考

JavaWeb简易留言板 servlet+ajax+mysql相关推荐

  1. java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)

    [实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...

  2. vue生命周期,组件,slot替换,tab切换,简易留言板

    data规范: data:(){ return{ arr:[{ a: "wan1", b: "在线", c: 5000},{ a: "wan2&quo ...

  3. android中留言板功能,js 实现简易留言板功能

    无标题文档 li{list-style:none;} li{position:relative;width:500px;} a{position:absolute;right:10px;} var c ...

  4. javascript简易留言板制作 -- 案例

    js简易留言板制作 @Draven 效果预览 html部分 css部分 js部分 效果预览 html部分 <textarea name="text" cols="3 ...

  5. html简单留言板教程,JS实现简易留言板(节点操作)

    本文实例为大家分享了JS实现简易留言板的具体代码,供大家参考,具体内容如下 今天的案例主要是对节点进行操作 创建节点.添加节点.删除节点以及为节点添加内容的操作. 就是一个简单的留言板功能,可以发布留 ...

  6. js+css+html制作简易留言板

    js+css+html制作简易留言板 1 案例说明 2 编写HTML代码 3 编写css代码 4 编写JavaScript代码 5 全部代码 1 案例说明 利用JavaScript.css以及html ...

  7. [练习]简易留言板制作

    [练习]简易留言板制作

  8. php简易留言板功能,php实现简易留言板效果

    首先是Index页面效果图 index.php date_default_timezone_set('PRC');$filename="msg.txt";$msgs=[];//检测 ...

  9. MVC框架简易留言板实例

    MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC. 首先创建一个数据库 use master -- ...

最新文章

  1. java模拟使用接口,关于java:模拟一个类与模拟它的接口
  2. 写Struts2、Spring、Hibernate的xml配置文件时无提示
  3. PDF编辑软件Nitro PDF Professional 6
  4. java 多项式拟合最多的项数_Matlab概率统计与曲线拟合
  5. 把Springboot项目部署到服务器上和结束运行
  6. Npm安装node-sass包依赖时报错 Cannot download “https://github.com/sass/node-sass/releases/download
  7. java用selenium库控制chrome
  8. Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
  9. python cocos2dx_cocos2dx 3.0 环境搭建、项目编译于运行
  10. 2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看
  11. MES系统是什么?MES系统的操作流程是怎样?
  12. 免费可商用图片素材网站,建议收藏
  13. java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
  14. OpenBSD 下架设vsftpd
  15. 使用结构体输入参加某会议成员的信息,并计算男女比例C++
  16. [Delphi学习]Delphi Access Violation错误的分析
  17. 弘玑Cyclone联合北京大学共建中国首个超级自动化校企联合实验室
  18. 你对MySQL中的索引了解多少?
  19. [论文阅读] EIE: Efficient Inference Engine on Compressed Neural Network
  20. CodeSys轴控指令使用方法

热门文章

  1. vs2017编译boost库 ,解决无法打开文件“libboost_filesystem-vc140-mt-1_58.lib” 问题
  2. 这届打工人因何离职?调查结果出人意料:薪酬不是第1位,企业文化重要10倍...
  3. 计算机考研南航和南邮,考研择校分析 — 南京邮电大学
  4. 3、套索工具、多边形套索工具、磁性套索工具
  5. 英雄联盟 python 刷等级_【个人计划】告别英雄联盟,开始学习Python
  6. el-table单元格内容较多时隐藏,鼠标hover时显示并且显示的内容可以换行 el-table提示框样式优化
  7. linux脚本数组元素赋值,shell 数组赋值
  8. 游戏选择人物的简单实现
  9. 用PS制作WIFI图标
  10. MySQL创建表 和 添加数据 查询数据