JavaWeb简易留言板 servlet+ajax+mysql
使用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相关推荐
- java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)
[实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...
- vue生命周期,组件,slot替换,tab切换,简易留言板
data规范: data:(){ return{ arr:[{ a: "wan1", b: "在线", c: 5000},{ a: "wan2&quo ...
- android中留言板功能,js 实现简易留言板功能
无标题文档 li{list-style:none;} li{position:relative;width:500px;} a{position:absolute;right:10px;} var c ...
- javascript简易留言板制作 -- 案例
js简易留言板制作 @Draven 效果预览 html部分 css部分 js部分 效果预览 html部分 <textarea name="text" cols="3 ...
- html简单留言板教程,JS实现简易留言板(节点操作)
本文实例为大家分享了JS实现简易留言板的具体代码,供大家参考,具体内容如下 今天的案例主要是对节点进行操作 创建节点.添加节点.删除节点以及为节点添加内容的操作. 就是一个简单的留言板功能,可以发布留 ...
- js+css+html制作简易留言板
js+css+html制作简易留言板 1 案例说明 2 编写HTML代码 3 编写css代码 4 编写JavaScript代码 5 全部代码 1 案例说明 利用JavaScript.css以及html ...
- [练习]简易留言板制作
[练习]简易留言板制作
- php简易留言板功能,php实现简易留言板效果
首先是Index页面效果图 index.php date_default_timezone_set('PRC');$filename="msg.txt";$msgs=[];//检测 ...
- MVC框架简易留言板实例
MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC. 首先创建一个数据库 use master -- ...
最新文章
- java模拟使用接口,关于java:模拟一个类与模拟它的接口
- 写Struts2、Spring、Hibernate的xml配置文件时无提示
- PDF编辑软件Nitro PDF Professional 6
- java 多项式拟合最多的项数_Matlab概率统计与曲线拟合
- 把Springboot项目部署到服务器上和结束运行
- Npm安装node-sass包依赖时报错 Cannot download “https://github.com/sass/node-sass/releases/download
- java用selenium库控制chrome
- Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
- python cocos2dx_cocos2dx 3.0 环境搭建、项目编译于运行
- 2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看
- MES系统是什么?MES系统的操作流程是怎样?
- 免费可商用图片素材网站,建议收藏
- java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
- OpenBSD 下架设vsftpd
- 使用结构体输入参加某会议成员的信息,并计算男女比例C++
- [Delphi学习]Delphi Access Violation错误的分析
- 弘玑Cyclone联合北京大学共建中国首个超级自动化校企联合实验室
- 你对MySQL中的索引了解多少?
- [论文阅读] EIE: Efficient Inference Engine on Compressed Neural Network
- CodeSys轴控指令使用方法
热门文章
- vs2017编译boost库 ,解决无法打开文件“libboost_filesystem-vc140-mt-1_58.lib”	问题
- 这届打工人因何离职?调查结果出人意料:薪酬不是第1位,企业文化重要10倍...
- 计算机考研南航和南邮,考研择校分析 — 南京邮电大学
- 3、套索工具、多边形套索工具、磁性套索工具
- 英雄联盟 python 刷等级_【个人计划】告别英雄联盟,开始学习Python
- el-table单元格内容较多时隐藏,鼠标hover时显示并且显示的内容可以换行 el-table提示框样式优化
- linux脚本数组元素赋值,shell 数组赋值
- 游戏选择人物的简单实现
- 用PS制作WIFI图标
- MySQL创建表 和 添加数据 查询数据