好看的企业网站源码/西安网络推广优化培训
数据库:book 表名:list 属性如下,其中bid为主键,默认值为1且递增,不显示,主要是用来唯一标识图书(删除,修改)。flag 也不显示,用来判断是否在垃圾箱内,为1不在,为0在,且默认值为1。
还有个管理账号密码的数据库
数据库名:login 表名 : opo
文章目录
- login.jsp(登录)
- regist.jsp(注册1)
- regist1.jsp(注册2)
- check.jsp(进行登录检查)
- library.jsp(主页面)
- find.jsp(模糊查询书名1)
- find1.jsp(处理查询)
- add.jsp(添加)
- add1.jsp(处理添加)
- update.jsp(编辑待修改的信息)
- update1.jsp(修改)
- delete1.jsp(删除)
- delete2.jsp (丢入垃圾箱)
- trash.jsp(垃圾箱)
- non.jsp(还原到图书界面)
- javaBean(Book 和 JDBCUtils)
login.jsp(登录)
用JS来判文本框是否为空并提醒,有一个application内存放的变量flag,用来判断输入后的账号密码是否存在,若不正确,则以弹窗提醒
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="com.beans.JDBCUtils"%>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>login.jsp</title>
<style>
.center {border-style: solid;border-radius: 5px;border-color: #F0FFFF;width: 500px;margin: 60px auto;background-color: #FFFAFA;
}#test {<!--透明化容器,使得背景透明-->width: 320px;height: 320px;background-image: url('https://images6.alphacoders.com/769/thumb-1920-769412.png');opacity: 0.7;filter: alpha(opacity = 70)
}
span{color:red;
}
</style>
</head>
<body id = "test"><%Integer flag = (Integer)application.getAttribute("flag");if(flag == null){flag = new Integer("0");}if(flag == 1){flag = 0;application.setAttribute("flag",flag);%><script>alert("账号不存在或者密码错误");</script><%}%><div align="center" class="center"><h3>login</h3><form action="check.jsp" method="post">用户名:<input type="text" name="user" id = "txt1"><span id="w"></span><br> <br> 密码:<input type="password" name="password" id = "txt2"> <span id="e"></span><br><br> <input type="submit" value="登录" onclick="return fun()"> <input type="reset" value="重置"></form><br> <a href="regist.jsp" style="text-decoration:none;">没有账号?去注册</a></div>
<script type="text/javascript">function fun(){var a = document.getElementById("txt1").value ;var b = document.getElementById("txt2").value ;if(a!=""&&b!="") return true;if(a == ""){document.getElementById("w").innerHTML="输入不能为空";}else document.getElementById("w").innerHTML="";if(b == ""){document.getElementById("e").innerHTML="输入不能为空";}else document.getElementById("e").innerHTML="";return false;}
</script>
</body>
</html>
regist.jsp(注册1)
表格输入注册的账号密码,并转到regist1.jsp完成注册。同样的,JS处理输出为空并提醒。
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="com.beans.JDBCUtils"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.center{border-style:solid;border-radius: 5px;border-color: #F0FFFF;width: 500px;margin: 60px auto;background-color:#FFFAFA;
}
#test {<!--透明化容器,使得背景透明-->width: 320px;height: 320px;background-image: url('http://image.lnstzy.cn/aoaodcom/2019-08/17/201908170750158885.jpg.h700.jpg');opacity: 0.7;filter: alpha(opacity = 70)
}
</style>
</head>
<body id = "test"><div align="center" class="center"><h3>regist</h3><form action="check.jsp" method="post">用户名:<input type="text" name="user" id = "txt1"><span id="w"></span><br> <br> 密码:<input type="password" name="password" id = "txt2"> <span id="e"></span><br><br> <input type="submit" value="登录" onclick="return fun()"> <input type="reset" value="重置"></form><br> <a href="regist.jsp" style="text-decoration:none;">没有账号?去注册</a></div>
<script type="text/javascript">function fun(){var a = document.getElementById("txt1").value ;var b = document.getElementById("txt2").value ;if(a!=""&&b!="") return true;if(a == ""){document.getElementById("w").innerHTML="输入不能为空";}else document.getElementById("w").innerHTML="";if(b == ""){document.getElementById("e").innerHTML="输入不能为空";}else document.getElementById("e").innerHTML="";return false;}
</script>
</body>
</html>
regist1.jsp(注册2)
用来写入管理账号的数据库中
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>regist1.jsp</title>
</head>
<body><%request.setCharacterEncoding("utf-8");Connection conn = JDBCUtils.getConnection();String user = request.getParameter("user");String password = request.getParameter("password");String sql = "insert into opo values(?,?)";
// out.print(user + " " + password);
// if(true) return ;PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1,user);pst.setString(2, password);int n = pst.executeUpdate();if(n == 0){%><script>alert("您的账号已被占用!");</script><%}else {%><script>alert("注册成功!");</script><%}%><a href="login.jsp" style="text-decoration:none;">去登陆!</a>
</body>
</html>
check.jsp(进行登录检查)
若账号密码与list表中数据完全匹配,则转到library.jsp(主页面),否则回到login.jsp(初始登录页面),并将application 中变量置为1,表示账号匹配失败
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>check.jsp</title>
</head>
<body><%request.setCharacterEncoding("utf-8");String user = request.getParameter("user");String password = request.getParameter("password");Connection con = JDBCUtils.getConnection();String sql = "select * from opo where uname = " + user;Statement smt = con.createStatement();ResultSet rs = smt.executeQuery(sql);if(!rs.first()||!rs.getString("upwd").equals(password)){application.setAttribute("flag", new Integer("1"));%> <jsp:forward page = "login.jsp"/><%}else {%><jsp:forward page = "library.jsp"/><%}%>
</body>
</html>
library.jsp(主页面)
表格布局 其中删除用confirm确认,返回true执行,返回false不执行跳转。
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {background-color:#b0c4de;}
</style>
</head>
<body >
<div align = "center"><h3>图书管理</h3><form><table border= 1px><tr><th>书名</th><th>价格</th><th>作者</th><th><a href="find.jsp" style="text-decoration:none;">查找</a></th><th colspan = "2"><a href="add.jsp" style="text-decoration:none;">添加</a></th></tr><jsp:useBean id="c" class="com.beans.Book"/><%ResultSet rs = c.query(1) ;while(rs.next()){int id = rs.getInt("bid");%><tr><td><%=rs.getString("bname")%></td><td><%=rs.getString("bprice")%></td><td><%=rs.getString("bauthor")%></td><td><a href = "update.jsp?id=<%=id %>" style="text-decoration:none;">修改</a></td><td><a href = "delete1.jsp?id=<%=id %>" style="text-decoration:none;" onclick="return fun()">删除</a></td><td><a href = "delete2.jsp?id=<%=id %>" style="text-decoration:none;">修改</a></td></tr><%}%><tr><th colspan="4"><a href = "trash.jsp" style="text-decoration:none;">垃圾箱</a></th></tr></table></form>
</div>
<script type="text/javascript">function fun(){if(confirm("是否删除!")){return true;}else return false;}</script>
</body>
</html>
find.jsp(模糊查询书名1)
输入 带查找书名
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center"><h3>请输入查询书名</h3><form action="find1.jsp" method = "post"><input name="txt" ><input type = "submit" value="查询"></form>
</div>
</body>
</html>
find1.jsp(处理查询)
注意like模糊匹配时的书写形式,比较新奇。
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center"><jsp:useBean id = "c" class="com.beans.Book"/><%request.setCharacterEncoding("utf-8");String bname = request.getParameter("txt");ResultSet rs = c.find(bname);%><table><tr><th>书名</th><th>价格</th><th>作者</th></tr><%while(rs.next()){%><tr><td><input type="text" value="<%=rs.getString("bname")%>"></td><td><input type="text" value="<%=rs.getString("bprice")%>"></td><td><input type="text" value="<%=rs.getString("bauthor")%>"></td><%}%></table><br><a href = "library.jsp" >返回</a><%JDBCUtils.closeAll(null, null, rs);%>
</div>
</body>
</html>
add.jsp(添加)
以表格的形式输入待添加信息,然后转到add1.jsp 写入book数据库中的list表中。
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center"><h3>添加名片</h3><form action = "addplus.jsp" method = "post"><table><tr><th>书名:</th><td><input name = "bname"> </td></tr><tr><th>价格:</th><td><input name="bprice"></td></tr><tr><th>作者:</th><td><input name="bauthor"></td></tr> <tr><td> <input type="submit" value="添加"></td><td> <input type="reset" value="清空"></td></tr></table></form>
</div>
</body>
</html>
add1.jsp(处理添加)
通过JavaBean 类Book 中的add方法,完成添加,并返回到主页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><jsp:useBean id="c" class = "com.beans.Book"><jsp:setProperty name="c" property="*"/></jsp:useBean><%int n = c.add();%><jsp:forward page = "library.jsp"/>
</body>
</html>
update.jsp(编辑待修改的信息)
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>update</title>
</head>
<body>
<div align="center"><jsp:useBean id = "c" class = "com.beans.Book"/><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");if(id == null) id = "-1";ResultSet rs = c.query(id);%><form action = "update1.jsp" method = "post"><table><tr><th>书名</th><th>价格</th><th>作者</th></tr><%while(rs.next()){%><tr><td><input type="text" name ="bname" value="<%=rs.getString("bname")%>"></td><td><input type="text" name = "bprice" value="<%=rs.getString("bprice")%>"></td><td><input type="text" name ="bauthor" value="<%=rs.getString("bauthor")%>"></td><input type="hidden" name = "bid" value="<%=id%>"></tr><%}%><tr><td></td><th><input type="submit" value="修改"> </th></tr></table><br></form><a href = "library.jsp" >返回</a><%JDBCUtils.closeAll(null, null, rs);%>
</div>
</body>
</html>
update1.jsp(修改)
这里是直接传入 id 在javaBean中的update方法进行更新,注意更新SQL书写的时候要有空格,不然会莫名其妙报错。
形式如下
String sql = "update list set bname = ? , bprice= ? , bauthor = ? where bid = " + id;
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><jsp:useBean id="c" class="com.beans.Book"><jsp:setProperty name="c" property="*"/></jsp:useBean><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");int n = c.update(id);%><jsp:forward page = "library.jsp" /></body>
</html>
delete1.jsp(删除)
删除记录,用confirm 确定框 来进行确认。同样是传id到javaBean类Book中进行操作
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><jsp:useBean id="c" class = "com.beans.Book"/><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");if(id == null||id.equals("")) id = "-1";int n = c.delete(id);%><jsp:forward page = "library.jsp"/></body>
</html>
delete2.jsp (丢入垃圾箱)
就是修改 list表中的记录的flag 的值
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><jsp:useBean id="c" class = "com.beans.Book"/><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");int n = c.delete1(id);%><jsp:forward page = "library.jsp"/></body>
</html>
trash.jsp(垃圾箱)
就是list表中flag=0的记录
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><div align="center"><h3>垃圾箱</h3><table border= 2px><tr><th>书名</th><th>价格</th><th>作者</th><th>/</th></tr><jsp:useBean id = "c" class = "com.beans.Book" /><%ResultSet rs = c.query(0);while(rs.next()){int flag = rs.getInt("flag");if(flag==0){%> <tr><td><%=rs.getString("bname") %></td><td><%=rs.getString("bprice") %></td><td><%=rs.getString("bauthor") %></td><td><a href="non.jsp?id=<%=rs.getInt("bid")%>">还原</a></td></tr><% }}%></table><br><a href = "library.jsp">返回名片簿</a></div><%JDBCUtils.closeAll(null, null, rs);%>
</body>
</html>
non.jsp(还原到图书界面)
其实就是再将flag 改为1.
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*"%>
<%@ page import= "com.beans.JDBCUtils"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><jsp:useBean id="c" class="com.beans.Book"/><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");int n = c.reverse(id);%><jsp:forward page = "trash.jsp"/>
</body>
</html>
javaBean(Book 和 JDBCUtils)
Book 是处理图书的数据库,而 JDBCUtils处理登录的数据库
com.beans.Book
package com.beans;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class Book {private static String driverName = "com.mysql.jdbc.Driver";private static String url = "jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF8";private static String username = "root";private static String password = "123456";ResultSet rs;Connection con;PreparedStatement pst;private String bname, bauthor;private float bprice;public Book() throws ClassNotFoundException, SQLException {Class.forName(driverName );con = DriverManager.getConnection(url, username, password);}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public String getBauthor() {return bauthor;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}public float getBprice() {return bprice;}public void setBprice(float bprice) {this.bprice = bprice;}/***********************************************************************/public ResultSet query(int p) throws Exception{//完整查询pst = con.prepareStatement("select * from list where flag = " + p);rs = pst.executeQuery();return rs;}public ResultSet query(String p) throws Exception{//按bid查询pst = con.prepareStatement("select * from list where bid = " + p);rs = pst.executeQuery();return rs;}public int delete(String p) throws Exception{//真删除pst = con.prepareStatement("delete from list where bid = " + p);int n = pst.executeUpdate();return n;}public int delete1(String p) throws Exception{//假删除 入垃圾桶pst = con.prepareStatement("update list set flag = 0 where bid = " + p);int n = pst.executeUpdate();return n;}public int reverse(String p) throws Exception{//从垃圾箱中还原pst = con.prepareStatement("update list set flag = 1 where bid = " + p);int n = pst.executeUpdate();return n;}public ResultSet find(String q)throws Exception {String sql = "select * from list where bname like \"%\"?\"%\" ";pst = con.prepareStatement(sql);if(q==null) q = "";//out.print(name);//if(true) return;pst.setString(1,q);ResultSet rs = pst.executeQuery();return rs;}public int add() throws Exception{String sql = "insert into list(bname,bprice,bauthor) values(?,?,?)";pst = con.prepareStatement(sql);pst.setString(1,bname);pst.setFloat(2,bprice);pst.setString(3,bauthor);int n = pst.executeUpdate();return n;}public int update(String id) throws Exception{String sql = "update list set bname = ? , bprice= ? , bauthor = ? where bid = " + id;pst = con.prepareStatement(sql);pst.setString(1,bname);pst.setFloat(2,bprice);pst.setString(3,bauthor);int n = pst.executeUpdate();return n;}
}
com.beans.JDBCUtils
package com.beans;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JDBCUtils {
//这个工具类,主要为我们获取一个数据库连接private static String driverName = "com.mysql.jdbc.Driver";private static String url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=UTF8";private static String username = "root";private static String password = "123456";//静态代码块,目的,让第一次使用到JDBCUtils中加载驱动,第二次以后不再加载了static {
//1.加载驱动try {Class.forName(driverName);} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
//System.out.println("驱动加载失败..请检查驱动包");throw new RuntimeException("驱动加载失败..请检查驱动包");}}public static Connection getConnection() throws Exception {
//2.获取和数据库的连接Connection conn = DriverManager.getConnection(url, username, password);
//3.返回连接对象return conn;}//关闭所有资源的统一代码public static void closeAll(Connection conn, Statement st, ResultSet rs) {
//负责关闭if (conn != null) {try {conn.close();} catch (SQLException e) {
// TODO Auto-generated catch blocke.printStackTrace();}}if (st != null) {try {st.close();} catch (SQLException e) {
// TODO Auto-generated catch blocke.printStackTrace();}}if (rs != null) {try {rs.close();} catch (SQLException e) {
// TODO Auto-generated catch blocke.printStackTrace();}}}}