(1)验证码主要代码:
<%@ pagecontentType="image/jpeg;charset=GBK"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="java.util.*"%>
<%@ pageimport="javax.imageio.*"%><!-- 在指定的数值范围内生成一种随机色 -->
<%!Color getRandColor(int lower, int upper) {
//创建随机数类变量
Random random =new Random(); //防止数值范围出界
lower = (lower< 0 || lower > 255) ? 0 : lower;
upper = (upper< 0 || upper > 255) ? 0 : upper; //生成红绿蓝三种基本色的随机数值
int r= lower + random.nextInt(upper - lower);
int g = lower + random.nextInt(upper -lower);
int b = lower + random.nextInt(upper -lower); //返回生成的随机色
return new Color(r, g, b);
}%><%
//图片的初始大小
int width = 60;
int height = 20; //创建缓冲图片
BufferedImage image = new BufferedImage(width,height,
BufferedImage.TYPE_INT_RGB); //获取缓冲图片的绘图类变量
Graphics g = image.getGraphics(); //设置前景色(为较亮的一种随机色)
g.setColor(getRandColor(200, 255)); //使用该色填充背景
g.fillRect(0, 0, width, height); //创建随机数类变量
Random random = new Random(); //产生100条具有随机位置、随机长度和随机颜色的干扰直线,使图象中的认证码不易被其它程序识别出来
for (int i = 0; i < 100; i++) {
//设置前景色(为灰度中等的一种随机色)
g.setColor(getRandColor(150, 200)); //获取随机位置
int x1 = random.nextInt(width);
int y1 = random.nextInt(height); //获取随机长度
int x2 = random.nextInt(10);
int y2 = random.nextInt(10); //绘制直线
g.drawLine(x1, y1, x1 + x2, y1 + y2);
} //设定字体
g.setFont(new Font("Times NewRoman", Font.PLAIN, 18)); //获取1000到9999之间的四位随机整数
int randomInt = 1000 + random.nextInt(9000);//转换为字符串
String randomStr = String.valueOf(randomInt);//循环遍历字符串每个字符
for (int i = 0; i < randomStr.length();i++) {
//设置前景色(为较暗的一种随机色)
g.setColor(getRandColor(0, 100)); //显示一个字符
g.drawString(randomStr.substring(i, i + 1),10 * i + 10, 15);
} // 将随机数存储在会话属性中,便于其他网页程序判断是否验证成功
session.setAttribute("randomStr",randomStr); //输出随机数图片
ImageIO.write(image, "JPEG",response.getOutputStream());
%>
(在刷新登录页面时随机换验证码)
(2)留言板主要代码:(messagelist.jsp)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>留言页面</title>
</head>
<body>
<formaction="insermessage.jsp" method="post">
<tableborder="0"width="238"height="252">
<tr><tdalign="right'valign="top">我要留言:</td>
<td colspan="2">
<textareaname="userBasicInfo"rows="5"cols="50"></textarea></td></tr>
<tr align="center">
<td colspan="2">
<p><a href="index_tushu.jsp"target="right">返回本页</a></p>
<p style="color:pink">
<input type="submit"value="提交">
<input type="reset"value="取消">
</td>
</tr>
</table></form>
</body>
</html>
(1)管理员登录代码:
<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>管理员登陆界面2</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name") ;
String pwd=request.getParameter("pwd");
if(name.equals("yanyuting")&&pwd.equals("123456")){
response.sendRedirect("index_tushu2.jsp");
}
else{
out.println("登录失败!");
}
%>
</body>
</html>
(2)注册相关代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>用户注册页面</title>
</head>
<body>
<form action="zhuce_1.jsp"method="post">
<tableborder="0"width="238"height="252">
<tr><td>姓名</td><td><inputtype="text"name="name"></td></tr>
<tr><td>密码</td><td><inputtype="text"name="mima"></td></tr>
<tr><td>再次输入密码</td><td><inputtype="text"name="zaicimima"></td></tr>
<tr><td>邮箱</td><td><inputtype="text"name="youxiang"></td></tr>
<tr><td>电话</td><td><inputtype="text"name="dianhua"></td></tr>
<tr align="center">
<td colspan="2">
<input type="submit"value="提交">
<input type="reset"value="取消">
</td>
</tr>
</table></form>
</body>
</html>
执行主要代码:
<%StringdriverName="com.mysql.jdbc.Driver";
String userName="root";
String userPwd="123456";
String dbName="test";
Stringurl1="jdbc:mysql://localhost:3306/"+dbName;
Stringurl2="?user="+userName+"&password="+userPwd;
Stringurl3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driverName);
Connectionconn=DriverManager.getConnection(url);
String sql="Insert intozhuce(name,mima,zaicimima,youxiang,dianhua)values(?,?,?,?,?)";
PreparedStatementpstmt=conn.prepareStatement(sql);
request.setCharacterEncoding("UTF-8");
Stringname=request.getParameter("name");
Stringmima=request.getParameter("mima");
Stringzaicimima=request.getParameter("zaicimima");
Stringyouxiang=request.getParameter("youxiang");
float dianhua=Float.parseFloat(request.getParameter("dianhua"));
pstmt.setString(1,name);
pstmt.setString(2,mima);
pstmt.setString(3,zaicimima);
pstmt.setString(4,youxiang);
pstmt.setFloat(5,dianhua);
int n=pstmt.executeUpdate();
if(n==1){%>数据插入操作成功<br><metahttp-equiv="refresh"content="3;url=index_tushu.jsp"/><%}
else{%>数据插入操作失败<br><metahttp-equiv="refresh"content="3;url=index1.jsp"/><%}
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close();}
%>
(3)普通用户主页
<%@ page language="java"import="java.sql.*" pageEncoding="utf-8"%>
<styletype="text/css">
<!--
.STYLE1{
color: #990033;
font-weight: bold;
}
-->
</style>
<style>
a{TEXT-DECORATION:none}a:hover{TEXT-DECORATION:underline}.STYLE2{color:
#000000}
</style>
</head>
<body>
<tablewidth="1300" border="0" bordercolor="#FFFFFF"bgcolor="#000000">
<tr>
<td height="112"colspan="7"><img src="2.jpg" width="1300"height="142" /></td>
</tr>
<tr>
<td width="200"height="0" bgcolor="#CCFF00"><divalign="center"><span
class="STYLE1">图书馆管理系统欢迎你</span></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><a href="main.jsp"
class="STYLE2">首页</a></strong></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><ahref="find_book_3_tijiao.jsp"
class="STYLE2">图书查询</a></strong></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><ahref="jieyue.jsp"class="STYLE2">图书借阅</a>
</strong></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><ahref="guihuan.jsp"class="STYLE2">图书归还</a>
</strong></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><a
href="messagelist.jsp"class="STYLE2">留言板</a></strong></div></td>
<td width="100"bgcolor="#009933"><divalign="center"><strong><a href="login.jsp"
class="STYLE2">退出系统</a></strong></div></td>
</tr>
</table>
</body>
</html>
(4)借阅页面主要代码:
<formaction="jieyue_2.jsp" method="post">
<%StringdriverName="com.mysql.jdbc.Driver";
String userName="root";
String userPwd="123456";
String dbName="test";
Stringurl1="jdbc:mysql://localhost:3306/"+dbName;
Stringurl2="?user="+userName+"&password="+userPwd;
Stringurl3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driverName);
Connectionconn=DriverManager.getConnection(url);
String sql="select * fromlianxi";
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
rs.last();
%>
<tableborder="2"bgcolor="ccceee"width="650">
<trbgcolor="CCCCCC"align="center">
<td>勾选图书</td><td>图书号</td><td>图书名</td><td>作者</td>
<td>价格</td><td>备注字段</td></tr>
<%rs.beforeFirst();
while(rs.next()){
%>
<tr align="center">
<td><inputtype="checkbox"name="box1"value="<%=rs.getString("name")%>"></td>
<td><%=rs.getString("id") %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("writer")%></td>
<td><%=rs.getString("price") %></td>
<td><%=rs.getFloat("qita") %></td></tr>
<%}
%>
</table>
</center>
<%if(rs!=null){rs.close(); }
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close();}
%> <br>
<input type="submit"value="提交">
<input type="reset"value="重置">
<br><br>
备注:每次只能借阅一本图书
</form>
退出系统页面为login.jsp
首页为main.jsp
(5)用户登录页面主要代码:
<body><divalign="center"><!-- 登录表单 -->
<h1><fontcolor="#FF0000"><strong>用户登录</strong></font></h1>
<formname="form" method="post"action="index1_1.jsp">
<table>
<tr>
<tdalign="right"><strong>用户名:</strong></td>
<td><input type="text"name="username"></td>
</tr>
<tr>
<td align="right"><strong>密码:</strong></td>
<td><input type="password"name="password"></td>
</tr>
<tr>
<tdalign="right"><strong>随机验证码:</strong></td>
<td><input type="text"name="validatingString" size="10"> <img
src="randomImage.jsp"align="top"/></td>
</tr>
<tr>
<td colspan="2"align="center"><input type="submit"name="Submit"
value="提交"> <input type="reset" name="reset"
value="重置"></td>
</tr>
</table><p><ahref="zhuce.jsp"target="right">新用户注册</a></p>
<p><a href="guanliyuan.jsp"target="left">管理员登陆</a></p>
</form>
</div></body>
(8)图书归还主要代码:
guihuan.jsp:
<%@ page language="java"pageEncoding="UTF-8"%>
<html>
<head><title> 用户还书界面1</title>
</head>
<body>
请选择所还书籍<hr width="100%" size="3">
<form action="guihuan_1.jsp" method="post">
书名:<input type="text"name="name">
<br><br>
<input type="submit"value="提交">
<input type="reset"value="取消">
</form>
</body>
</html>
连接数据库主要代码:
<%String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPwd="123456";
String dbName="test";
Stringurl1="jdbc:mysql://localhost:3306/"+dbName;
Stringurl2="?user="+userName+"&password="+userPwd;
String url3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driverName);
Connectionconn=DriverManager.getConnection(url);
request.setCharacterEncoding("UTF-8");
Stringname=request.getParameter("name");
String s="1 =1";
if(!name.equals(""))s=s+"and name='"+name+"'";
String sql="delete from book_use1where "+s;
PreparedStatementpstmt=conn.prepareStatement(sql);
int n=pstmt.executeUpdate();
if(n>=1){%>数据删除操作成功<br><%}
else{%>数据删除操作失败<br><%
}
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close();}
%>
表book_use1
该归还界面为删除操作,从存在book_use1里的数据中进行操作
实现思路:
1. 实现登录页面操作,包括index1.jsp和index1_1.jsp 实现数据库连接,建表user2包括id和pwd,用户在登录页面输入账号密码后进行验证,若已注册可进入主页,若无法对应,则登录失败,返回登录页面。
2. 注册页面:包括zhuce.jsp和zhuce_1.jsp 建表zhuce(name,mima,zaicimima,youxiang,dianhua )
新用户注册若之前没有注册过在注册成功后可直接进入用户主页,若zhuce表中已有信息,则失败,返回登录页面index1.jsp
3.管理员页面:包括guanliyuan.jsp和guanliyuan_2.jsp 这里只设置了一个管理员,所有没有使用数据库,使用代码:if(name.equals("yanyuting")&&pwd.equals("123456")){
response.sendRedirect("index_tushu2.jsp");
}
else{
out.println("登录失败!");
}输入成功后进入管理员页面(index_tushu_2.jsp)若失败显示“登录失败!”
4.实现主页面index_tushu.jsp及下属包括的main.jsp find_book_3_tijiao.jsp(同图书管理中相同) jieyue.jsp guihuan.jsp messagelist.jsp(留言板) login.jsp
5.借阅页面包括jieyue.jsp jieyue_title.jsp jieyue_left.jsp jieyue_right.jsp jieyue_1.jsp jieyue_2.jsp
主要页面包括jieyue_1.jsp和jieyue_2.jsp(实现数据库连接) 这里使用图书管理表lianxi 和表book_use1
借阅图书要使用之前登录页面信息
6.归还页面:使用表book_use1 同样需要使用用户登录信息 进行删除图书操作
7.留言板:建表message(textflie)主要代码:
StringdriverName="com.mysql.jdbc.Driver";
String userName="root";
String userPwd="123456";
String dbName="test";
String url1="jdbc:mysql://localhost:3306/"+dbName;
Stringurl2="?user="+userName+"&password="+userPwd;
String url3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driverName);
Connection conn=DriverManager.getConnection(url);
String sql="Insert into message(textflie)values(?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
request.setCharacterEncoding("UTF-8");
String textfile=request.getParameter("textflie");
pstmt.setString(1,textfile);
int n=pstmt.executeUpdate();
if(n==1){%>操作成功<br><%}
else{%>操作失败<br><%}
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close() ;}
8.管理员登录成功后进入管理员操作主页面,index_tushu2.jsp包括读者管理reader.jsp reader_add.jsp 图书管理操作:包括删除,修改,添加,查找操作