博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址
目录
在当今这个以网络为主流的社会,互联网已经日益深入,成为了人们生活中不可缺少的一部分。由于进行信息的内外交流,已经成为了大众的广泛需要,近几年已经成为当下网络上流行的交流平台。随着技术的进步,留言板的功能也在不断增加并完善,由于Java语言技术所实现的“一次编写,随处执行”的优势的web开发技术受到了越多人的认可,主流的网站几乎都用到了Java语言,包括大部分的留言板功能。
本次项目采用serlvet框架 jsp开发技术,使用mysql进行数据库设计。
系统开发平台:Tomcat8.5+JDK1.8+Windows10
开发语言:JavaEE
框架:servlet
数据库:MySql5.0
开发环境:eclipse2019+Navicat Premium 8
需求分析就是发现、求精、建摸、规格说明和复审的过程。为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题。也就是说,需求分析的第一步是尽可能了解当前用户的情况和需要解决的问题。
留言板系统要满足以下几个方面的功能需求:
满足系统不同用户角色的应用需求:根据需要,系统应对两种用户按其使用功能和权限进行角色划分,形成两种角色,分别是:
用户功能:
注册、登录,发布留言,查看已经发布的留言
管理员功能:
用户管理,留言管理(删除、修改)

(1)登录窗口
输入账号密码验证成功后跳转到管理员后台操作界面,进行基本信息设置管理。
(2)用户注册窗口
用户输入用户名,密码等信息后可进行注册,注册成功后跳转到登录首页
用户管理模块包括对系统内用户信息的发布,修改,查看,删除等功能。
(1)对系统用户的发布:发布用户的信息,按照用户页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统用户的修改:修改用户的信息,在系统用户列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统用户的删除:删除用户信息,在系统用户列表中直接点击删除.
(4)对系统用户的查看:查看用户信息,在系统用户列表中直接点击查看
留言管理模块包括对系统内留言信息的发布,修改,查看,删除等功能。
(1)对系统留言的发布:发布留言的信息,按照留言页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统留言的修改:修改留言的信息,在系统留言列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统留言的删除:删除留言信息,在系统留言列表中直接点击删除.
(4)对系统留言的查看:查看留言信息,在系统留言列表中直接点击查看。
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | yhid | INTEGER | 11 | 是 | 用户编号 |
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | qx | VARCHAR | 40 | 否 | 权限 |
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | lyid | INTEGER | 11 | 是 | 留言编号 |
| 2 | ly | VARCHAR | 4000 | 否 | 留言 |
| 3 | yh | VARCHAR | 40 | 否 | 用户 |
| 4 | sj | VARCHAR | 40 | 否 | 时间 |

主要代码:Logincheck.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<%@ page import="com.util.DBO"%>
<%
DBO db=new DBO();
request.setCharacterEncoding("gb2312");
String yhm=(String)request.getParameter("yhm");
String mm=(String)request.getParameter("mm");
String sql="";
sql="select * from yonghu where yhm='"+yhm+"' and mm='"+mm+"'";
System.out.println("sql="+sql);
db.open();
ResultSet rs=db.query(sql);
out.println("<script>");
if(rs.next()){
session.setAttribute("id",rs.getString("yhid"));
session.setAttribute("yhm",rs.getString("yhm"));
session.setAttribute("mm",rs.getString("mm"));
session.setAttribute("qx",rs.getString("qx"));
out.println("window.location='index.html'");
}else{
out.println("alert('用户名或者密码错误');");
out.println("window.location='login.jsp'");
}
out.println("</script>");
%>

主要代码:yonghudo.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.util.*"%>
<%
/*
用户添加后台
*/
DBO db=new DBO();//初始数据库链接
request.setCharacterEncoding("gb2312");//设置字符集
ResultSet rs=null;//声明结果集
String keyid =(String)request.getParameter("keyid");
String yhm=(String)request.getParameter("yhm");//变量:用户名
String mm=(String)request.getParameter("mm");//变量:密码
String xm=(String)request.getParameter("xm");//变量:姓名
String qx=(String)request.getParameter("qx");//变量:权限
String sql="";//声明sql
sql="insert into yonghu(yhm,mm,xm,qx) values('"+yhm+"','"+mm+"','"+xm+"','"+qx+"')";
;//用户SQL 语句
int row=1;///定义执行结果
try{
//int row =0;
row=db.update(sql);
}catch(Exception e){
System.out.println(e.toString());}
if(row==1){
out.println("<script>");
out.println("alert('操作成功');");
out.println("window.location='../login.jsp'");
out.println("</script>");
}else{
out.println("<script>");
out.println("alert('操作失败');");
out.println("window.location='../login.jsp'");
out.println("</script>");
}
db.close();
%>

主要代码:yonghuservlet.java
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.util.*;
import java.util.List;
import java.sql.ResultSet;
public class yonghuServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
System.out.println("method"+request.getParameter("method"));
String method=(String)request.getParameter("method");
if(method.equals("insert")){//用户添加
insertM(request, response);
}else if(method.equals("list")){//用户列表
ListM(request, response);
}else if(method.equals("delete")){//用户删除
deleteM(request, response);
}else if(method.equals("modifyindex")){//用户修改页面
modifyIndex(request, response);
}
else if(method.equals("modify")){//用户修改
modifyM(request, response);
}else if(method.equals("detail")){//用户详细信息
detailM(request, response);
}else if(method.equals("Plist")){//用户列表信息
PListM(request, response);
}
}
private void insertM(HttpServletRequest request, HttpServletResponse response){//用户添加
DBO db=new DBO();//初始化数据链接基础类
String sql="";//sql语句初始化
String keyid =(String)request.getParameter("keyid");//用户表主键
String yhm=(String)request.getParameter("yhm");//用户名
String mm=(String)request.getParameter("mm");//密码
String xm=(String)request.getParameter("xm");//姓名
String qx=(String)request.getParameter("qx");//权限
response.setCharacterEncoding("gb2312");
sql="insert into yonghu(yhm,mm,xm,qx) values('"+yhm+"','"+mm+"','"+xm+"','"+qx+"')";
;//用户SQL 语句
int row=1;
try {
row=db.update(sql);//执行sql语句 insert语句
if(row==1){
request.setAttribute("flag", "操作成功");
}else{
request.setAttribute("flag", "操作失败");
}
request.getRequestDispatcher("yonghu/yonghuadd.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void ListM(HttpServletRequest request, HttpServletResponse response){//用户信息列表
ResultSet rs=null;
String sql="select * from yonghu where 1=1 ";//查询用户 sql语句
DBO db=new DBO();//初始化数据链接基础类
db.open();
//用户信息查询
response.setCharacterEncoding("gb2312");
try{
rs=db.query(sql);//查询结果
//PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("yonghu/yonghulist.jsp").forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void PListM(HttpServletRequest request, HttpServletResponse response){//用户分页信息列表
ResultSet rs=null;
String sql="select * from yonghu where 1=1 ";//查询用户 sql语句
DBO db=new DBO();//初始化数据链接基础类
String str=(String)request.getParameter("Page");
response.setCharacterEncoding("gb2312");
try{
if(str==null){
str="0";
}
rs=db.query(sql);
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("yonghu/yonghuPlist.jsp?Page="+str).forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void modifyIndex(HttpServletRequest request, HttpServletResponse response){//用户修改首页
ResultSet rs=null;
response.setCharacterEncoding("gb2312");
String keyid =(String)request.getParameter("keyid");//用户表主键
String yhm=(String)request.getParameter("yhm");//用户名
String mm=(String)request.getParameter("mm");//密码
String xm=(String)request.getParameter("xm");//姓名
String qx=(String)request.getParameter("qx");//权限
String sql="select * from yonghu where yhid="+keyid;//查询一条要修改的信息
DBO db=new DBO();//初始化数据链接基础类
try{
db.open();//初始化数据库链接
rs=db.query(sql);//查询sql语句
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("yonghu/yonghumodify.jsp").forward(request, response);
//response.sendRedirect("yonghu/yonghumodify.jsp");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void detailM(HttpServletRequest request, HttpServletResponse response){//用户详细信息页面
ResultSet rs=null;
response.setCharacterEncoding("gb2312");
String keyid =(String)request.getParameter("keyid");//用户表主键
String yhm=(String)request.getParameter("yhm");//用户名
String mm=(String)request.getParameter("mm");//密码
String xm=(String)request.getParameter("xm");//姓名
String qx=(String)request.getParameter("qx");//权限
String sql="select * from yonghu where yhid="+keyid;//查询一条要修改的信息
DBO db=new DBO();//初始化数据链接基础类
try{
db.open();
rs=db.query(sql);//查询sql语句
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("yonghu/yonghudetail.jsp").forward(request, response);
//response.sendRedirect("yonghu/yonghumodify.jsp");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void deleteM(HttpServletRequest request, HttpServletResponse response){//用户删除
DBO db=new DBO();
response.setCharacterEncoding("gb2312");
int row=1;
String keyid=(String)request.getParameter("keyid");
String sql="";
sql="delete from yonghu where yhid='"+keyid+"'";//删除用户 信息sql语句
try{
row=db.update(sql);// 执行sql语句
if(row==1){
request.setAttribute("flag", "删除成功");
}else{
request.setAttribute("flag", "删除失败");
}
request.getRequestDispatcher("yonghuServlet?method=list").forward(request, response);
//response.sendRedirect("yonghuServlet?method=list");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void modifyM(HttpServletRequest request, HttpServletResponse response){//用户修改功能
DBO db=new DBO();
String keyid =(String)request.getParameter("keyid");//用户表主键
String yhm=(String)request.getParameter("yhm");//用户名
String mm=(String)request.getParameter("mm");//密码
String xm=(String)request.getParameter("xm");//姓名
String qx=(String)request.getParameter("qx");//权限
response.setCharacterEncoding("gb2312");
String sql="";
sql="update yonghu set yhm='"+yhm+"',mm='"+mm+"',xm='"+xm+"',qx='"+qx+"' where yhid='"+keyid+"'";
int row=1;
try {
row=db.update(sql);
if(row==1){
request.setAttribute("flag", "操作成功");
}else{
request.setAttribute("flag", "操作失败");
}
request.getRequestDispatcher("yonghuServlet?method=list").forward(request, response);
//response.sendRedirect("yonghuServlet?method=list");
} catch (Exception e) {
e.printStackTrace();
}
}
}

主要代码:liuyanServlet
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.util.*;
import java.util.List;
import java.sql.ResultSet;
public class liuyanServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
System.out.println("method"+request.getParameter("method"));
String method=(String)request.getParameter("method");
if(method.equals("insert")){//留言添加
insertM(request, response);
}else if(method.equals("list")){//留言列表
ListM(request, response);
}else if(method.equals("delete")){//留言删除
deleteM(request, response);
}else if(method.equals("modifyindex")){//留言修改页面
modifyIndex(request, response);
}
else if(method.equals("modify")){//留言修改
modifyM(request, response);
}else if(method.equals("detail")){//留言详细信息
detailM(request, response);
}else if(method.equals("Plist")){//留言列表信息
PListM(request, response);
}
}
private void insertM(HttpServletRequest request, HttpServletResponse response){//留言添加
DBO db=new DBO();//初始化数据链接基础类
String sql="";//sql语句初始化
String keyid =(String)request.getParameter("keyid");//留言表主键
String ly=(String)request.getParameter("ly");//留言
String yh=(String)request.getParameter("yh");//用户
String sj=(String)request.getParameter("sj");//时间
response.setCharacterEncoding("gb2312");
sql="insert into liuyan(ly,yh,sj) values('"+ly+"','"+yh+"','"+sj+"')";
;//留言SQL 语句
int row=1;
try {
row=db.update(sql);//执行sql语句 insert语句
if(row==1){
request.setAttribute("flag", "操作成功");
}else{
request.setAttribute("flag", "操作失败");
}
request.getRequestDispatcher("liuyan/liuyanadd.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void ListM(HttpServletRequest request, HttpServletResponse response){//留言信息列表
ResultSet rs=null;
String sql="select * from liuyan where 1=1 order by lyid";//查询留言 sql语句
DBO db=new DBO();//初始化数据链接基础类
db.open();
//留言信息查询
response.setCharacterEncoding("gb2312");
try{
rs=db.query(sql);//查询结果
//PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("liuyan/liuyanlist.jsp").forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void PListM(HttpServletRequest request, HttpServletResponse response){//留言分页信息列表
ResultSet rs=null;
String sql="select * from liuyan where 1=1 ";//查询留言 sql语句
DBO db=new DBO();//初始化数据链接基础类
String str=(String)request.getParameter("Page");
response.setCharacterEncoding("gb2312");
try{
if(str==null){
str="0";
}
rs=db.query(sql);
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("liuyan/liuyanPlist.jsp?Page="+str).forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void modifyIndex(HttpServletRequest request, HttpServletResponse response){//留言修改首页
ResultSet rs=null;
response.setCharacterEncoding("gb2312");
String keyid =(String)request.getParameter("keyid");//留言表主键
String ly=(String)request.getParameter("ly");//留言
String yh=(String)request.getParameter("yh");//用户
String sj=(String)request.getParameter("sj");//时间
String sql="select * from liuyan where lyid="+keyid;//查询一条要修改的信息
DBO db=new DBO();//初始化数据链接基础类
try{
db.open();//初始化数据库链接
rs=db.query(sql);//查询sql语句
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("liuyan/liuyanmodify.jsp").forward(request, response);
//response.sendRedirect("liuyan/liuyanmodify.jsp");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void detailM(HttpServletRequest request, HttpServletResponse response){//留言详细信息页面
ResultSet rs=null;
response.setCharacterEncoding("gb2312");
String keyid =(String)request.getParameter("keyid");//留言表主键
String ly=(String)request.getParameter("ly");//留言
String yh=(String)request.getParameter("yh");//用户
String sj=(String)request.getParameter("sj");//时间
String sql="select * from liuyan where lyid="+keyid;//查询一条要修改的信息
DBO db=new DBO();//初始化数据链接基础类
try{
db.open();
rs=db.query(sql);//查询sql语句
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("liuyan/liuyandetail.jsp").forward(request, response);
//response.sendRedirect("liuyan/liuyanmodify.jsp");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void deleteM(HttpServletRequest request, HttpServletResponse response){//留言删除
DBO db=new DBO();
response.setCharacterEncoding("gb2312");
int row=1;
String keyid=(String)request.getParameter("keyid");
String sql="";
sql="delete from liuyan where lyid='"+keyid+"'";//删除留言 信息sql语句
try{
row=db.update(sql);// 执行sql语句
if(row==1){
request.setAttribute("flag", "删除成功");
}else{
request.setAttribute("flag", "删除失败");
}
request.getRequestDispatcher("liuyanServlet?method=list").forward(request, response);
//response.sendRedirect("liuyanServlet?method=list");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void modifyM(HttpServletRequest request, HttpServletResponse response){//留言修改功能
DBO db=new DBO();
String keyid =(String)request.getParameter("keyid");//留言表主键
String ly=(String)request.getParameter("ly");//留言
String yh=(String)request.getParameter("yh");//用户
String sj=(String)request.getParameter("sj");//时间
response.setCharacterEncoding("gb2312");
String sql="";
sql="update liuyan set ly='"+ly+"',yh='"+yh+"',sj='"+sj+"' where lyid='"+keyid+"'";
int row=1;
try {
row=db.update(sql);
if(row==1){
request.setAttribute("flag", "操作成功");
}else{
request.setAttribute("flag", "操作失败");
}
request.getRequestDispatcher("liuyanServlet?method=list").forward(request, response);
//response.sendRedirect("liuyanServlet?method=list");
} catch (Exception e) {
e.printStackTrace();
}
}
}
通过开发本系统和学习JSP我对前面学过的许多课程有了更为深刻的理解。如果在开发前对整个开发工作做出全方位的规划和系统的分析,开发过程就会事半功倍,否则就会遇到许多意想不到的问题,延缓开发进度。我开始在没有进行系统规划,确定系统的注册职能,没有做好需求分析的情况下,就急于进行系统开发,结果使得开发过程比较混乱,进展缓慢,系统重新作了几次。由于功能不确定,系统主菜单及窗口改来改去,浪费了很多时间和精力。后来我静下心来,认真细致的对开发过程进行了规划和分析,明确了系统的基本功能,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作进行得很顺利。
另外在学习JSP的过程中还不够扎实,学过的东西没能融会贯通,在编写代码的时候不能够信手拈来,熟练应用,而是到处查阅资料,使得一些应该实现的功能没有实现,也是一种遗憾。
大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
1443

被折叠的 条评论
为什么被折叠?



