使用jsp实现留言板功能
一.开发环境
本项目使用eclipse+MySQL8.0进行开发
在开发的过程中使用了一个jar包 mysql-connector-java-8.0.16.jar 点我下载
二.项目结构
1.index.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(src/images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<h2>欢迎光临我的留言板</h2><br>
<h2>五秒后自动跳转到<a href="login.jsp">登陆窗口</a>!!!</h2><br>
<%
response.setHeader("refresh", "5;URL=login.jsp");
%>
</body>
</html>
2.login_handle.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
// 声明一个boolean变量,用于保存用户是否合法的状态
boolean flag = false;
// 接收参数
String id = request.getParameter("id"); //用户名
String password = request.getParameter("password"); //用户密码
String leixing = request.getParameter("leixing"); //用户类型
%>
<%--如果用户类型是学生 --%>
<%
if (leixing.equals("xuesheng"))
{
%>
<%
String sql = "SELECT name FROM person WHERE id=? and password=?";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if(rs.next())
{// 用户合法
flag = true;
// 将用户名保存在session之中
session.setAttribute("uname", rs.getString(1)); //判断用户是否存在
session.setAttribute("uleixing", "同学"); //判断用户类型
}
else
{// 保存错误信息
request.setAttribute("err", "错误的学生用户名及密码!!!");
}
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{}
%>
<%--如果是管理员登录 --%>
<%
}
else
{
%>
<%
String sql = "SELECT name FROM guanliyuan WHERE id=? and password=?";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next())
{// 用户合法
flag = true;
// 将用户名保存在session之中
session.setAttribute("uname", rs.getString(1)); //判断用户是否存在
session.setAttribute("uleixing", "管理员"); //判断用户类型
}
else
{// 保存错误信息
request.setAttribute("err", "错误的管理员用户名及密码!!!");
}
rs.close();
pstmt.close();
conn.close();
}
catch (Exception e)
{}
%>
<%
}
%>
<%
// 跳转
if (flag)
{// 用户合法
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{ // 用户非法
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</body>
</html>
3.login_success.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
if(session.getAttribute("uname") != null)
{
// 用户已登陆
%>
<h2>登陆成功</h2>
<h2>欢迎<font color="red" size="12">
<%=session.getAttribute("uname")%>
<%="["%>
<%=session.getAttribute("uleixing")%>
<%="]"%>
</font>光临我的留言板</h2>
<h2>两秒后跳转到留言管理界面</h2>
<% response.setHeader("refresh", "2;URL=messageList.jsp");
%>
<h3><a href="addMessage.jsp">进入留言管理页面</a></h3>
<%
}
else
{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</body>
</html>
4.login.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
table{
margin:0px auto;
}
input,option,select{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板――登陆</title>
</head>
<SCRIPT type = "text/javascript">
//下面的副程序将执行资料检查
function isValid()
{
//下面的if判断语句将检查是否输入帐号资料
if (frmLogin.id.value == "")
{
window.alert("您必须完成帐号的输入!");
//显示错误信息
document.frmLogin.elements(0).focus();
//将光标移至帐号输入栏
return false;
}
//下面的if判断语句将检查是否输入帐号密码
if (frmLogin.password.value == "")
{
window.alert("您必须完成密码的输入!");
//显示错误信息
document.frmLogin.elements(1).focus();
//将光标移至密码输入栏
return false; //离开函数
}
frmLogin.submit(); //送出表单中的资料
}
</SCRIPT>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<br>
<%
// 判断是否有错误信息,如果有则打印
// 如果没有此段代码,则显示时会直接打印null
if (request.getAttribute("err") != null)
{
%>
<h2><%=request.getAttribute("err")%></h2>
<%
}
%>
<form name="frmLogin" action="login_handle.jsp" method="post" onSubmit="return isValid(this);">
<table >
<tr>
<td colspan="2"><STRONG style="color:white;font-size:30px;">用户登陆</STRONG></td>
</tr>
<tr><td height="40"></td></tr>
<%--用户类型判断 --%>
<tr>
<td>用户类型:</td>
<td><select name="leixing">
<option value="xuesheng" >学生</option>
<option value="guanliyuan" >管理员</option>
</select></td>
</tr>
<tr><td height="5"></td></tr>
<%--用户类型判断 --%>
<tr>
<td>用 户 名 :</td>
<td><input type="text" name="id" id="id" ></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
<a href="register.jsp">点击立即注册</a>
</td>
</tr>
</table>
</form>
</body>
</html>
4.messageList.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%!
String str;
public String subStr(String str)
{
if (str == null || "".equals(str))
{
return "";
}
if (str.length() > 10) //return str.substring(0,10) + "...";
{
return str;
}
else
{
return str;
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
table{
text-align:center;
margin:0px auto;
}
input,option,select{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title >JSP留言板</title>
<script type="text/javascript">
//弹窗提示
function Msg(canshu)
{
alert(canshu);
}
</script>
</head>
<body background="images/back.png" style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
// 编码转换
request.setCharacterEncoding("UTF-8");
if(session.getAttribute("uname") != null)
{
// 用户已登陆
%>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0;
String sql = null;
String keyword = request.getParameter("keyword");
// out.println(keyword) ;
if (keyword == null)
{
// 没有任何查询条件
sql = "SELECT id,title,author,content FROM note";
}
else
{
// 有查询条件
sql = "SELECT id,title,author,content FROM note WHERE title like ? or author like ? or content like ?";
}
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
pstmt = conn.prepareStatement(sql);
// 如果存在查询内容,则需要设置查询条件
if (keyword != null) {
// 存在查询条件
pstmt.setString(1, "%" + keyword + "%");
pstmt.setString(2, "%" + keyword + "%");
pstmt.setString(3, "%" + keyword + "%");
}
rs = pstmt.executeQuery();
%>
<form action="messageList.jsp" method="POST">
请输入查询内容:<input type="text" name="keyword">
<input type="submit" class="mybtn" value="查询">
</form>
<h3>
<a href="addMessage.jsp">添加新留言</a>
<a href="exit.jsp">退出留言操作</a>
</h3>
<%
if(session.getAttribute("uleixing").equals("同学"))
{
%>
<table >
<tr>
<td>留言ID</td>
<td>标题</td>
<td>用户</td>
<td>内容</td>
<td></td>
<td></td>
</tr>
<tr><td height="10"></td></tr>
<%
while (rs.next())
{
i++;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
int id = rs.getInt(1);
String title = rs.getString(2);
String author = rs.getString(3);
String content = rs.getString(4);
if(keyword != null)
{
// 需要将数据返红
title = title.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
author = author.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
content = content.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
}
%>
<tr>
<td><%=id%></td>
<td><a href="chgMessage.jsp?id=<%=id%>"><%=title%></a></td>
<td><%=author%></td>
<td style="height:20px;"><img src="images/list.png" /><STRONG style="color:#ffcc00;"><%=subStr(content)%></STRONG></td>
<td><a href="#" onclick="Msg('管理员才可以进行删除操作')" >删除</a></td>
<td><a href="#" onclick="Msg('管理员才可以进行编辑操作')" >编辑</a></td>
</tr>
<tr><td height="5"></td></tr>
<%
}
// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i == 0)
{
// 进行提示
%>
<tr>
<td colspan="5">没有任何内容!!!</td>
</tr>
<%
}
%>
</table>
<%
}
else
{
%>
<table>
<tr>
<td>留言ID</td>
<td>标题</td>
<td>用户</td>
<td>内容</td>
<td></td>
<td></td>
</tr>
<%
while(rs.next())
{
i++;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
int id = rs.getInt(1);
String title = rs.getString(2);
String author = rs.getString(3);
String content = rs.getString(4);
if(keyword != null)
{
// 需要将数据返红
title = title.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
author = author.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
content = content.replaceAll(keyword, "<font color=\"red\">" + keyword + "</font>");
}
%>
<tr>
<td><%=id%></td>
<td><a href="chgMessage.jsp?id=<%=id%>"><%=title%></a></td>
<td><%=author%></td>
<td style="height:20px;"><img src="images/list.png" /><STRONG style="color:#ffcc00;"><%=subStr(content)%></STRONG></td>
<td><a href="delete_handle.jsp?id=<%=id%>">删除</a></td>
<td><a href="chgMessage.jsp?id=<%=id%>">编辑</a></td>
</tr>
<%
}
// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i == 0)
{
// 进行提示
%>
<tr>
<td colspan="5">没有任何内容!!!</td>
</tr>
<%
}
%>
</table>
<%
//判断用户的类型结束标志
}
%>
<%
rs.close();
pstmt.close();
conn.close();
}
catch (Exception e)
{}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<hr>
<%
}
%>
</body>
</html>
5.register_handle.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body >
<h1>JSP留言板</h1><hr><br>
<%
// 进行乱码处理
request.setCharacterEncoding("UTF-8");
%>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
Statement stmt = null;
%>
<%
// 声明一个boolean变量
boolean flag = false;
// 接收参数
String leixing = request.getParameter("leixing");
String id = request.getParameter("id");
String name = request.getParameter("name");
String psw = request.getParameter("psw");
%>
<%
//判断用户类型,学生注册,
if(leixing.equals("xuesheng"))
{
%>
<%
// 现在note表中的主键是id自动递增生成
String sql = "INSERT INTO person(id,name,password)"
+ " VALUES ('" + id + "','"
+ name + "','"
+ psw + "')";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
stmt = (Statement) conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
// 如果插入成功,则肯定能执行到此段代码
flag = true;
}
catch(Exception e)
{
System.out.println("数据库连接失败:" + e.getMessage());
}
%>
<%
//判断用户类型,管理员注册,
}
else
{
%>
<%
// 现在note表中的主键是id自动递增生成
String sql = "INSERT INTO guanliyuan(id,name,password)"
+ " VALUES ('"
+ id
+ "','"
+ name
+ "','"
+ psw
+ "')";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
stmt = (Statement) conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
// 如果插入成功,则肯定能执行到此段代码
flag = true;
}
catch(Exception e)
{
System.out.println("数据库连接失败:" + e.getMessage());
}
%>
<%
}
%>
<%
response.setHeader("refresh", "2;URL=login.jsp");
if (flag) {
%>
会员注册成功,两秒后跳转到登陆首页!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!
<hr>
<%
} else {
%>
会员注册失败,两秒后跳转到登陆首页!!!<br>
如果没有跳转,请按<a href="register.jsp">这里</a>!!!
<hr>
<%
}
%>
</body>
</html>
6.register.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
table{
margin:0px auto;
}
input,option,select{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板――注册</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
request.setCharacterEncoding("UTF-8");
%>
<%--注册信息写入数据库 --%>
<form action="register_handle.jsp" method="post">
<table>
<tr>
<td colspan="2">注册信息:</td>
</tr>
<tr><td height="40"></td></tr>
<%--用户类型判断 --%>
<tr>
<td>用户类型:</td>
<td><select name="leixing">
<option value="xuesheng" >学生</option>
<option value="guanliyuan" >管理员</option>
</select></td>
<td style="color:#F00;">学生普通操作,管理员进行编辑和删除</td>
</tr>
<tr><td height="5"></td></tr>
<%--用户类型判断 --%>
<tr>
<td>用户ID:</td>
<td><input type="text" name="id"></td>
<td style="color:#F00;">必须为数字</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>密码:</td>
<td><input type="text" name="psw"></td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td colspan="2">
<input type="submit" value="注册">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<h3><a href="login.jsp">回到登陆首页</a></h3>
<hr>
</body>
</html>
7.addmessage_handle.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
// 进行乱码处理
request.setCharacterEncoding("UTF-8");
%>
<%
if(session.getAttribute("uname") != null)
{// 用户已登陆
%>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
Statement stmt = null;
%>
<%
// 声明一个boolean变量
boolean flag = false;
// 接收参数
String title1 = request.getParameter("title");
String author1 = request.getParameter("author");
String content1 = request.getParameter("content");
%>
<%
// 现在note表中的主键是id自动递增生成
String sql = "INSERT INTO note(title,author,content)"
+ " VALUES ('" + title1 + "','"
+ author1 + "','"
+ content1 + "')";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
stmt = (Statement) conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
// 如果插入成功,则肯定能执行到此段代码
flag = true;
}
catch(Exception e)
{
System.out.println("数据库连接失败:" + e.getMessage());
}
%>
<%
response.setHeader("refresh", "2;URL=messageList.jsp");
if(flag)
{
%>
留言添加成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<hr>
<%
}
else
{
%>
留言添加失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<hr>
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<hr>
<%
}
%>
</body>
</html>
8.addMessage.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
table{
margin:0px auto;
}
input,option{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
if (session.getAttribute("uname") != null)
{
// 用户已登陆
%>
<form action="addMessage_handle.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新留言</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td>内容:</td>
<td><textarea name="content" cols="30" rows="6"></textarea></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td colspan="2">
<input type="submit" value="添加">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<h3><a href="messageList.jsp">回到留言列表页</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</body>
</html>
9.chgMessage.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%// 进行乱码处理
request.setCharacterEncoding("UTF-8");
%>
<%
if(session.getAttribute("uname") != null)
{
// 用户已登陆
%>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
PreparedStatement pstmt = null;
%>
<%
// 声明一个boolean变量
boolean flag = false;
// 接收参数
String title = request.getParameter("title");
String author = request.getParameter("author");
String content = request.getParameter("content");
int id = 0;
try
{
id = Integer.parseInt(request.getParameter("id"));
}
catch(Exception e)
{}
%>
<%
// 更新note表中的数据
String sql = "UPDATE note set title=?,author=?,content=? WHERE id=?";
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, title);
pstmt.setString(2, author);
pstmt.setString(3, content);
pstmt.setInt(4, id);
pstmt.executeUpdate();
pstmt.close();
conn.close();
// 如果修改成功,则肯定能执行到此段代码
flag = true;
}catch (Exception e)
{}
%>
<%
response.setHeader("refresh", "2;URL=messageList.jsp");
if(flag)
{
%>
留言修改成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<%
}
else
{
%>
留言修改失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</body>
</html>
10.delete_handle.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
.mybtn{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%
if(session.getAttribute("uname") != null)
{
// 用户已登陆
%>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8&serverTimezone=UTC";
String DBUSER = "root";
String DBPASSWORD = "1234";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
// 接收参数
int id = 0;
try
{
id = Integer.parseInt(request.getParameter("id"));
}
catch(Exception e)
{}
%>
<%
String sql = "DELETE FROM note WHERE id=?";
boolean flag = false;
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
pstmt = conn.prepareStatement(sql);
// 设置删除条件
pstmt.setInt(1, id);
pstmt.executeUpdate();
pstmt.close();
conn.close();
flag = true;
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh", "2;URL=messageList.jsp");
if(flag)
{
%>
留言删除成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<%
}
else
{
%>
留言删除失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="messageList.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh", "2;URL=login.jsp");
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</body>
</html>
11.exit.jsp
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" >
*{
font-size:20px;
color:#a6a6a6;
}
body{
background:url(images/back.png);
text-align:center;
}
table{
margin:0px auto;
}
input,option{
color:black;
}
a:link{
color:#b38f00;
text-decoration:none;
}
a:hover{
color:red;
text-decoration:none;
}
a:active{
color:#ffcc00;
}
a:visted{
color:#ffcc00;
}
</style>
<title>JSP留言板</title>
</head>
<body style="text-align:center;" >
<h1>JSP留言板</h1><hr><br>
<%// 进行乱码处理
request.setCharacterEncoding("UTF-8") ;
%>
<%//退出对留言板的操作
if(session.getAttribute("uname")!=null)
{
session.setAttribute("uname","null") ;
session.invalidate();
out.print("您已经成功退出,若要进行其他操作,<a href='login.jsp'>请重新登录</a>");
out.print("<hr>");
}
else
{
out.print("您已经成功退出,若要进行其他操作,<a href='login.jsp'>请重新登录</a>");
}
%>
</body>
</html>
三.项目目录
四.数据库字段
五.项目截图
六.注意事项
在注册用户的时候尽量不要注册相同的用户名和密码 否则可能出现主键冲突问题报错
七.结语
内容有点长,用心整理,按照项目结构部署不会出现问题,我使用的是jdk1.8和mysql8.0,大家在连接数据库的时候需要将数据库
用户名和密码改成自己的用户名和密码,如有其它问题评论区交流