首页 > 其他分享 >web3

web3

时间:2023-06-11 10:35:47浏览次数:40  
标签:数据库 request stmt web3 jsp id con

实验项目名称实验  Web数据库程序设计

 

一、实验目的

通过使用JSP技术设计一个简单的数据库管理系统,了解展示页面和编辑页面的区别,掌握Web服务器与MySQL数据库的连接和数据库操作的方法,掌握使用Java语言编写JSP文件的方法。

二、实验内容和基本要求

从以下列举的四个数据库中,任选其一,或者自行定义其他数据库,每个数据库中包含一张表,数据库名、表名、列名、列数据类型自行定义(提示:主键可以设为自增列):

1) 学生数据库:存储的信息包括学生学号、姓名、性别、生日等。

2) 商品数据库:存储的信息包括商品ID、商品名称、商品数量、生产厂家等。

3) 客户数据库:存储的信息包括客户ID、客户姓名、客户地址、手机号码等。

4) 车辆数据库:存储的信息包括汽车ID、品牌、颜色、车主姓名等。

开发一个数据库管理系统需要完成对以上数据库表中的记录的基本的查看、增加、修改和删除功能,参考系统文件关系如图1所示:

 

图1 系统文件关系图

 

各个文件功能如下:

1) index.jsp:显示数据库表中的所有记录,每条记录均拥有两个超链接,分别指向edit.jsp和del.jsp,这两个文件分别完成该条记录的编辑和删除功能。此外,该页面还需包含一个超链接指向add.jsp,完成新增一条记录的功能;

2) add.jsp:提供新增一条记录的页面,包含一个表单,若干输入框,该表单提交给addsave.jsp;

3) addsave.jsp:从add.jsp接收用户输入的数据,将数据插入数据库表中,并提示用户成功或者失败,提供一个超链接转向index.jsp;

4) edit.jsp:提供修改某一条记录的页面,包含一个表单,若干输入框,输入框初始值为该条记录原有数据,用户修改后,提交给editsave.jsp;

5) editsave.jsp:从edit.jsp接收用户输入的数据,修改数据库表中的对应记录,并提示用户成功或者失败,提供一个超链接转向index.jsp;

6) del.jsp:完成删除某一条记录的功能,并提示用户成功或者失败,提供一个超链接转向index.jsp;

7) error.jsp:作为其他所有页面的错误处理页面,该页面显示异常信息。

完成基本功能后,可以从以下方面对系统进行改进:

1) 对于客户端增加和修改信息页面,使用JavaScript、Jquery、Vue等技术进行必要的数据的非空验证;

2) 自行添加一些CSS,使得页面和字体更加美观。

完成后,请将各个文件程序源代码和浏览器截图写入实验报告。

三、实验步骤

1)打开MySQL,新建一个数据库。

2)新建一个数据库表。

3)在表中增加若干记录,作为初始数据。

4)打开Eclipse软件,新建一个名为Lab03的Web项目,并设置其部署程序为Tomcat。

5)在Lab03中添加文件,编写代码。

6)Style.css

@charset "utf-8";body{

   background-image: url("stdu.png");

   background-size: cover;

   text-align: center;

}table {

   width: 400px;

   border: 1px solid #696969;

   border-collapse: collapse;

   margin:0 auto;

}

th {

   border: 1px solid #696969;

   

}td {

   text-align: center;

   border: 1px solid ;

   height: 50px;

   opacity:0.8;

   

}input {

   font-size: 20px;

}a {

   color: #11F7F7;

   text-decoration: none;

   font-size: 18px;

}

a:hover {

   color: #F79011;

   text-decoration: underline;

   font-size: 18px;

}

7)Index.jsp

<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%>

<%@ page errorPage="error.jsp"%><html><head>

 <title>学生信息管理系统</title>

 <link rel="stylesheet" type="text/css" href="css/style.css"></head><body><h1 style="width: 100%; font-family: 微软雅黑; color:#fff;">学生信息管理系统</h1><a href="add.jsp">添加学生信息</a><br /><br /><table style="width: 50%;">

 <tr>

   <th>学号</th>

   <th>姓名</th>

   <th>性别</th>

   <th>生日</th>

   <th>管理</th>

 </tr>

 <%

   try {

     Class.forName("com.mysql.jdbc.Driver");

     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");

     //使用Statement对象

     Statement stmt = con.createStatement();

     ResultSet rs = stmt.executeQuery("select * from student");

     while (rs.next()) {

       int id = rs.getInt(1);

       out.println("<tr><td>" + rs.getString(1) +"</td><td>" + rs.getString(2) + "</td><td>" + rs.getString(3) + "</td><td>"

               + rs.getString(4) + "</td><td>"+ rs.getString(5) +"</td><td><a href='edit.jsp?id=" + id

               + "'>修改</a> <a href='del.jsp?id=" + id + "'>删除</a></td></tr>");

     }

     rs.close();

     stmt.close();

     con.close();

   } catch (Exception e) {

     out.println("Exception:" + e.getMessage());

   }

 %>

</table><br /><hr /><div style="text-align: center; width: 100%; font-size: 12px; color: #333;">

 ©版权所有:石家庄铁道大学信息科学与技术学院  <a href="Lab03.png" target="_blank">网站地图</a></div></body></html>

8)Add.jsp

<%@ page contentType="text/html; charset=utf-8" import="java.sql.*" errorPage="error.jsp"%>

<html>

<head>

 <title>添加学生信息</title>

 <link rel="stylesheet" type="text/css" href="css/style.css">

 <script type="text/javascript">

   function check() {

     var id = document.getElementById("id");

     var name = document.getElementById("name");

     var sex = document.getElementById("sex");

     var birthday= document.getElementById("birthday");

     

     //非空

     if(id.value == '') {

       alert('学号为空');

       name.focus();

       return false;

     }

     if(name.value == '') {

       alert('姓名为空');

       teacher.focus();

       return false;

     }

     if(sex.value == '') {

       alert('性别为空');

       classroom.focus();

       return false;

     }

     if(birthday.value == '') {

       alert('生日为空');

       classroom.focus();

       return false;

     }

   }

 </script type="text/javascript">

</head>

<body>

<%

 Object message = request.getAttribute("message");

 if(message!=null && !"".equals(message)){

 

%>

<script type="text/javascript">

 alert("<%=request.getAttribute("message")%>");

</script>

<%} %>

<form action="addsave.jsp" method="post" onsubmit="return check()">

 <h2>添加学生信息</h2>

 <table style="width: 50%">

   <tr>

     <th width="30%">学号</th>

     <td width="70%"><input name="id" type="text"></td>

   </tr>

   <tr>

     <th>姓名</th>

     <td><input name="name" type="text"></td>

   </tr>

   <tr>

     <th>性别</th>

     <td><input name="sex" type="text"></td>

   </tr>

   <tr>

     <th>生日</th>

     <td><input name="birthday" type="text"></td>

   </tr>

   <tr>

     <td colspan="2"><input type="submit" name="submit" value="添加"> <input type="reset" value="重置"></td>

   </tr>

 </table>

</form>

 

</body>

</html>

9)Addsave.jsp

<%@ page contentType="text/html; charset=utf-8" import="java.sql.*" errorPage="error.jsp"%>

<html>

<head>

 <title>添加学生信息</title>

 <link rel="stylesheet" type="text/css" href="css/style.css">

</head>

<body>

<%

 request.setCharacterEncoding("utf-8");

 String id = request.getParameter("id");

 String name = request.getParameter("name");

 String sex = request.getParameter("sex");

 String birthday = request.getParameter("birthday");

 Class.forName("com.mysql.jdbc.Driver");

 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");

 PreparedStatement stmt = con.prepareStatement("insert into student(id,name,sex,birthday) values(?, ?,?,?)");

 stmt.setString(1, id);

 stmt.setString(2, name);

 stmt.setString(3, sex);

 stmt.setString(4, birthday);

 int i = stmt.executeUpdate();

 

 

 if (i == 1) {

   out.println("<h2>添加成功!</h2><br/>");

   out.println("<a href='index.jsp'>返回首页</a>");

 } else {

   out.println("<h2>添加失败!</h2><br/>");

   out.println("<a href='add.jsp'>重新添加</a>");

 }

 stmt.close();

 con.close();

 

%>

</body>

</html>

10)Del.jsp

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" pageEncoding="utf-8"%>

<html>

<head>

 <title>删除学生信息</title>

 <link rel="stylesheet" type="text/css" href="css/style.css">

</head>

<body>

<%

 request.setCharacterEncoding("utf-8");

 Class.forName("com.mysql.jdbc.Driver");

 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");

 Statement stmt=con.createStatement();

 String id=request.getParameter("id");

 int i=stmt.executeUpdate("delete from student where id="+id);

 if(i==1)

 {

   out.println("<h2>删除成功!</h2><br/>");

 }

 else

 {

   out.println("<h2>删除失败!</h2><br/>");

 }

 out.println("<a href='index.jsp'>返回首页</a>");

 stmt.close();

 con.close();

 

%>

</body>

</html>

11)Edit.jsp

<%@ page import="java.sql.*" pageEncoding="utf-8" errorPage="error.jsp"%><html><head>

   <title>修改学生信息</title>

   <link rel="stylesheet" type="text/css" href="css/style.css"></head><body>

<%

   request.setCharacterEncoding("utf-8");

   String id = request.getParameter("id");

   Class.forName("com.mysql.jdbc.Driver");

 

   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123546");

 

   PreparedStatement stmt = con.prepareStatement("select * from student where id=?");

   stmt.setString(1, id);

   ResultSet rs = stmt.executeQuery();

 

   rs.next();

%><form action="editsave.jsp" method="post">

   <h2>修改学生信息</h2>

   <table style="width:50%">

       <tr>

           <th width="30%">学号:</th>

           <td width="70%"><input name="id" type="text"

                                  value="<%=rs.getString(1)%>"></td>

       </tr>

       <tr>

           <th>姓名:</th>

           <td><input name="name" type="text"

                      value="<%=rs.getString(2)%>"></td>

       </tr>

       <tr>

           <th>性别:</th>

           <td><input name="sex" type="text"

                      value="<%=rs.getString(3)%>"></td>

       </tr>

       <tr>

           <th>生日:</th>

           <td><input name="birthday" type="text"

                      value="<%=rs.getString(4)%>"></td>

       </tr>

       <tr>

           <td colspan="2"><input type="hidden" name="id" value="<%=id%>">

               <input type="submit" value="修改"> <input type="reset"

                                                         value="重置"></td>

       </tr>

   </table></form>

<%

   rs.close();

   stmt.close();

   con.close();

%></body></html>

12)Editsave.jsp

<%@ page import="java.sql.*" pageEncoding="utf-8" errorPage="error.jsp"%>

<html>

<head>

   <title>修改完成</title>

   <link rel="stylesheet" type="text/css" href="css/style.css">

</head>

<body>

<%

   request.setCharacterEncoding("utf-8");

   String id = request.getParameter("id");

   String name = request.getParameter("name");

   String sex = request.getParameter("sex");

   String birthday = request.getParameter("birthday");

  

   Class.forName("com.mysql.jdbc.Driver");

   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");

   Statement stmt = con.createStatement();

   String sql = "update info set id='"+id+"',name='" + name  + "',sex='" + sex+ "',birthday='" + birthday+ "'

           + "'where id=" + id;

   int i = stmt.executeUpdate(sql);

   if (i == 1) {

       out.println("<h2 >修改成功!</h2><br/>");

       out.println("<a href='index.jsp'>返回首页</a>");

   } else {

       out.println("<h2>修改失败!</h2><br/>");

       out.println("<a href='edit.jsp?id='" + id + ">重新添加</a>");

   }

   stmt.close();

   con.close();

%>

</body>

</html>

13)Error.jsp

<%@ page language="java" isErrorPage="true" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>

   <title>error page</title></head><body>

错误信息为:<br/>

<%=exception.getMessage()%><br>

<%=exception.toString()%></body></html>

标签:数据库,request,stmt,web3,jsp,id,con
From: https://www.cnblogs.com/fuchuchu/p/17472574.html

相关文章

  • 数字孪生 - 智慧化工厂数字孪生Web3D可视化物联网系统
    前言作为全球化学品第一生产大国,我国危险化学品规模总量大、涉及品种多、应用范围广、管理链条长、安全风险高,历来是防范化解重大安全风险的重点领域。危险化学品领域频繁发生的典型事故,暴露出传统安全风险管控手段问题突出。建设背景石油石化行业是国家重要的支柱行业,具有生......
  • 算网融合也是Web3.0
    Web3.0被视为互联网的下一代,强调用户主权和数据拥有权的重要性。在传统的Web2.0中,用户的个人数据常常由大型中心化平台收集、存储和控制。这种模式导致了数据滥用、隐私侵犯和权力集中等问题。然而,Web3.0通过算网融合的力量,正在为用户提供一个全新的互联网体系结构,使他们能够拥有并......
  • [4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事
    事情起因:https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a之前没接触过区块链这块,这次随即报名NFT这块。下面谈我的学习过程:第一阶段资料搜索(简单看看就行)什么是NFT?NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT......
  • web3j操作和以太坊基础知识
    web3j操作和以太坊基础知识以太坊中的基本单位单位很多,主要需要关注的是下面3种。最小单位是wei其中ether就是常说的1个ETH。1个ETH是1e18wei。1个Gwei就是常说的gas,一个gas即一个Gwei=1e9wei。单位wei值Weiwei11weiGwei(shannon)1e9wei1,000,00......
  • web3 产品介绍:Mirror.xyz是一个创新的去中心化出版平台
    Mirror.xyz是一个创新的去中心化出版平台,它使作者能够创建、发布和管理自己的内容,并与读者建立直接的经济联系。在本文中,我们将介绍Mirror.xyz的主要特点、功能以及如何使用它来发布和消费内容。一、Mirror.xyz的特点去中心化出版:Mirror.xyz采用去中心化的方式,将权力还给作者......
  • 普通人如何参与Web3.0?去中心化抖音TokTok或是一个机会!
    Web3.0时代Web3.0的到来,为普通人带来了前所未有的机遇。这个新时代不再是中心化平台主导一切,而是由去中心化应用和区块链技术驱动的开放生态系统。在这个生态系统中,每个人都有机会参与和受益,而去中心化抖音TOKTOK成为了这一浪潮中的领跑者。TOKTOK是什么TOKTOK是基于区块链的社交媒......
  • web3 产品介绍 etherscan 区块链浏览器 将抽象的数据和理论可视化,小白也能看懂区块链
    Etherscan是一个广泛使用的以太坊区块链浏览器和分析平台,它为用户提供了全面的区块链数据查询和交易分析功能。在本文中,我们将介绍Etherscan的主要特点和功能,以及如何使用它来浏览以太坊区块链。一、Etherscan的特点区块链浏览器:Etherscan提供了完整的以太坊区块链浏览器,用户......
  • 暗藏的比特币白皮书已删除!苹果其实与Web3“格格不入”?
       据悉,Apple已从其最新的MacOSVenturabeta中删除了比特币白皮书,虽然该公司从未对白皮书的存在提供任何官方解释,但许多人猜测这是对加密货币日益增长的重要性的认可。   4月上旬,科技专家AndyBaio偶然发现,自己的Mac电脑上隐藏着比特币白皮书文件。众多网友纷纷猜测,究竟是......
  • web3 产品介绍 MyEtherWallet 方便和智能合约交互的钱包
    MyEtherWallet(简称MEW)是一款流行的去中心化以太坊钱包,它允许用户在安全且简单的界面中管理自己的以太坊资产。在本文中,我们将介绍MyEtherWallet的主要特点、功能以及如何使用它来管理以太坊资产。一、MyEtherWallet的特点安全性:MyEtherWallet是一款去中心化的钱包,用户可以保存......
  • web3 产品介绍: walletconnect 连接Web3 DApps与用户的移动加密钱包
    WalletConnect是一种去中心化的开源协议,旨在连接Web3DApps与用户的移动加密钱包,提供更安全、更便捷的加密货币交易体验。在本文中,我们将介绍WalletConnect的主要特点、工作原理以及如何使用它来连接DApps和移动钱包。一、WalletConnect的特点去中心化:WalletConnect不依赖于任......