留言板

前言

  本程序使用java在jsp文件中实现留言功能,并且用户可以使用本程序进行登录、注册、修改留言、删除留言等操作。这是JavaWeb课程一次作业,本来想用servlet写来着,写着写着发现在jsp文件里面写Java也可实现,就写了下来。本人JavaWeb小白一个,代码封装以及界面设计方面有待改进。本程序如有漏洞欢迎各位在评论区指正,源码已上传至gitee,链接在文末,有错误会及时改正。如需要使用servlet实现功能,欢迎评论区催更。

程序思路

  利用session进行jsp文件之间的传值,在jsp内部使用表单传值获取表单内输入的数值,并且在每个jsp文件里连接数据库,根据获取的值对数据库进行增删改查操作。

运行界面

登录界面

留言板界面

修改界面
删除界面

注册界面

数据库

numbers

user

核心代码

留言功能部分代码

session获取login.jsp发来的用户名,根据表单内输入的内容,判定非空后将内容输入数据库。然后查询数据库的留言内容,对留言进行打印并显示。

webboard.jsp

<html>
<head><title>留言板</title>
</head>
<body>
<div class="main_box"><div class="box"><div class="title">留言板</div><form class="submit_box"><div class="user_name"><%String name = (String) session.getAttribute("name");%>欢迎用户:<% out.print(name);%></div><div class="area_box"><textarea rows="5" cols="40" placeholder="&emsp;发表新鲜事儿......" name="area" class="area"></textarea></div><button class="submit" >发表</button></form><div class="content_box"><%try {System.out.println("留言板界面正在加载。");session.setAttribute("name",name);Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/webboard?user=root&password=111111&useUnicode=true&characterEncoding=utf8");Statement stat = conn.createStatement();System.out.println("数据库已连接");String content = request.getParameter("area");System.out.println("用户名:"+name);System.out.println("内容:"+content);System.out.println("name = "+session.getAttribute("name"));//session获取login.jsp传值if(content != null){String sql = "INSERT INTO user(id,content)VALUES('"+name+"','"+content+"')";try {stat.executeUpdate(sql);} catch (SQLException throwables) {throwables.printStackTrace();}}String sql1 = "SELECT * FROM user order by time DESC";ResultSet rs = null;rs = stat.executeQuery(sql1);while(rs.next()){String id = rs.getString("id");String r_content = rs.getString("content");String time = rs.getString("time");String num =rs.getString("num");out.print("<div class='item'><div class='inner_box'><div class='user_box'>用&emsp;户:"+id+"</div><br><div class='content'>"+r_content+"</div><br><div class='time_box'>"+time+"</div><a class='delete' href='delete.jsp?num="+num+"&id="+id+"'>删除</a><a class='delete' href='change.jsp?number="+num+"&id="+id+"'>修改</a></div></div>");}} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}%></div></div>
</div>
</body>
</html>
删除留言部分代码

webboard.jsp通过链接传送要删除的留言编号,delete.jsp通过编号对数据库操作,删除相应的留言。
delete.jsp

<html><head><title>删除留言</title></head><body><%try{System.out.println("删除界面正在加载。");String name = (String) session.getAttribute("name");System.out.println("当前用户为:"+name);try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/webboard?user=root&password=111111&useUnicode=true&characterEncoding=utf8");Statement stat = conn.createStatement();Statement stat1 = conn.createStatement();String num = request.getParameter("num");//获取留言编号String sql1 = "SELECT id FROM user WHERE num ='"+num+"'";ResultSet rs = stat1.executeQuery(sql1);while(rs.next()){if(rs.getString(1).equals(name)){num = new String(num.getBytes());System.out.print("num="+num);String sql = "DELETE FROM USER WHERE num ='"+num+"';";int i = stat.executeUpdate(sql);System.out.print("成功删除数据,编号为"+num);response.setHeader("refresh", "3;URL=webboard.jsp");//三秒后返回留言界面System.out.print("当前留言属于用户:"+rs.getString(1));out.print("<div class='box'><div class='delete'>已删除!</div>" + "<div class='delete'>3秒后返回</div></div>");}else{out.print("<div class='box'><div class='delete'>不能删除其他用户的留言哦!</div>" + "<div class='delete'>3秒后返回</div></div>");response.setHeader("refresh", "3;URL=webboard.jsp");}}}catch (SQLException e){System.out.print(e);}%></body>
</style>
</html>
修改留言部分代码

获取用户名和留言内容编号后,判断用户名与数据库内对应编号留言的用户名,如果相同则可以根据表单提交的新留言进行修改。如果不同,则不能删除并在三秒后返回界面。

change.jsp

<head><title>修改留言</title></head>
<body><div class="change_box"><form class="change_form" action="change.jsp" method="post">将留言修改为:<input type="text" name="content" class="content"><br><div class="submit_box"><input type="submit" class="submit" value="修改"></div></form></div>
<%try{System.out.println("修改界面正在加载。");request.setCharacterEncoding("UTF-8");String name = (String) session.getAttribute("name");String num = request.getParameter("number");String id = request.getParameter("id");if(request.getParameter("number")!=null&&request.getParameter("id") != null){application.setAttribute("num1",num);application.setAttribute("id1",id);}String num1 = (String) application.getAttribute("num1");String id1 = (String) application.getAttribute("id1");System.out.println("num="+num1);System.out.println("id="+id1);String new_content = request.getParameter("content");System.out.println("当前用户为:"+name);try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/webboard?user=root&password=111111&useUnicode=true&characterEncoding=utf8");Statement stat = conn.createStatement();System.out.print("收到的更改语句为:"+new_content);System.out.println("断点2");if(id1.equals(name) && new_content != null){System.out.print("断点2");String sql = "UPDATE user SET content='"+new_content+"' WHERE num ='"+num1+"';";stat.executeUpdate(sql);
//            out.print("<script>alert('修改成功!');</script>");Frame frame = new Frame();frame.setAlwaysOnTop(true);JOptionPane.showMessageDialog((Component) frame,"修改成功!");response.sendRedirect("webboard.jsp");}else if(!id1.equals(name) && new_content != null){System.out.print("断点2");out.print("<script>alert('不能修改其他用户的留言哦!');</script>");response.setHeader("refresh", "URL=webboard.jsp");}}catch (SQLException e){System.out.print(e);}%></body>

附:

源代码可直接下载,源码地址:戳这里!!!
如有错误欢迎各位在评论区指正

【JavaWeb】网络留言板 可登录、注册、留言、修改留言、删除留言 附源码相关推荐

  1. c/c++编程日记:纯C实现登录注册和忘记密码功能(附源码)

    这是一个用纯C语言和文件操作实现的系统的登录.注册和忘记密码功能.可以用于c语言大作业的登录系统.下面分享一下具体的代码. 首先定义一个结构体来存放用户的注册信息,账号密码等. typedefstru ...

  2. python3网络爬虫--爬取b站用户投稿视频信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...

  3. 黯然微信小程序杂记(二):小程序最新版登录并进行缓存模块的实现 附源码

    黯然微信小程序杂记(二):小程序最新版登录进行缓存模块的实现 附源码 一.功能描述 二.mine.wxml界面图片 三.mine.wxml代码 四.mine.wxss代码 五.mine.js代码 六. ...

  4. SpringCloud-服务注册与实现-Eureka创建服务提供者(附源码下载)

    场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  5. 基于IAR-stm32裸板工程,完美移植RT-Thread Nano系统(附源码)

    开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 准备工作: 下载一份IAR的stm32裸机工程(包含标准库),参考博 ...

  6. 实战:单点登录的两种实现方式,附源码

    最近工作有点忙,好久没更新文章了,正好这两天在整理单点登陆相关的文档,今天趁着小孩睡着了

  7. python3网络爬虫--爬取b站视频评论用户信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析网页加载方式 2.分析数据接口 3.获取oid 四.撰写爬虫 五.存储数据 六.总结 你爱我,我爱你,蜜雪 ...

  8. 公司 cms 留言管理系统 -- 附源码

    公司 cms 留言管理系统 – 附源码 前台 首页 公告模块 首页展示公告信息,如下图所示 最近更新 展示最新更新的文章信息 推荐资源 特别推荐 热门标签 最新留言 所有模块 包含四个模块的 cms ...

  9. 小程序云开发实现登录与注册(附源码)

    小程序云开发实现登录与注册(附源码) 1. 看效果 2.wxss <view class="v1"><!-- v2父容器 子view使用绝对布局 -->&l ...

  10. 安卓登录注册界面开发(附源码)

    源码下载和博客访问:安卓登录注册界面开发(附源码) 前言 最近找安卓登录注册界面,找了好久也没找到比较满意的设计,最后想想其实登录和注册两个界面也不复杂,干脆花点时间自己弄. 界面预览 最后的效果如下 ...

最新文章

  1. 网站过度优化该怎样解决?
  2. PHP伪类型和伪变量
  3. Ardino基础教程 10_光控声音
  4. 如何定位并修复 HttpCore5 中的 HTTP2 流量控制问题
  5. LwIP 之一 源码目录文件详解及移植说明
  6. RxJava 和 RxAndroid 二(操作符的使用)
  7. python学习笔记——文件
  8. jzoj6274-[NOIP提高组模拟1]梦境【贪心,堆】
  9. 在计算机中 用户程序,在用户计算机上的万维网客户程序是()
  10. 企业实战(Jenkins+GitLab+SonarQube)_05_Jenkins创建管理员用户
  11. hdu 1159(DP+字符串最长公共序列)
  12. linux常用shell命令之文件操作命令
  13. MooseFs的使用与操作
  14. shell中的基础命令
  15. 不要上网更新计算机系统的补丁程序,360安全卫士更新补丁后系统不能联网怎么办...
  16. 如何在虚拟机linux下运行程序吗,在Linux上运行虚拟机的3种方法 | MOS86
  17. 解决Tomcat乱码
  18. [leetcode]Python实现-746.使用最小花费爬楼梯
  19. 【面试总结】JNI层MediaScanner的分析,挥泪整理面经
  20. (转)iOS应用架构谈 本地持久化方案及动态部署

热门文章

  1. SNN系列|神经元模型篇(4) LIF
  2. 陈玉琴答问: 经络按摩与敲胆经(转载)
  3. Oracle之现有表上建新表、操作符、字符函数
  4. C语言实现通讯录管理系统(动态内存分配版)
  5. 新型智慧城市顶层规划与设计方案
  6. iOS动画和特效(二)UIKit力学行为
  7. 荣耀手机计算机设置功能,荣耀Play手机如何开启USB调试功能和电脑进行连接
  8. 最新抖音下载无水印视频
  9. astah新建一个项目_Astah Professional
  10. Thinkpad自修壁纸 2019