使用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();
//