实验感受:

本次实验最大的感受,就是不要改代码,自己写,代码改起来真的没完没了,不知道会出现什么问题。还有就是一定要清楚自己要怎么去写,流程很重要,一个个功能去实现。

主界面

数据库

主页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<title>库存物资信息录入 </title> <%--页面标题--%>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<script type="text/javascript" language="JavaScript"> //JS
function validate()
{
var name = document.forms[0].name.value; //创建变量name
var factory = document.forms[0].factory.value; //创建变量teacher
var id = document.forms[0].id.value;
var standard = document.forms[0].standard.value; //创建变量address
if(name.length <= 0){ //判断姓名位数,必填
alert("名称不能为空,请输入名称!");
return false;
}
else if(factory.length <= 0){ //判断年龄,必填
alert("请输入合法生产工厂!");
return false;
}
else if(id.length <= 0){ //判断学号位数,必填
alert("型号不能为空,请输入型号!");
return false;
} else if(standard.length <= 0){ //专业为必填
alert("规格不能为空,请输入商品规格!");
return false;
}
else{
return true;
}
//document.getElementById("form").submit();
}
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<br><%--换行--%>
<center>
<h2>库存商品信息录入</h2><hr size="1" noshade color="#000000"><%--横线--%>
<form action="insert.jsp" method="post" id="form" onSubmit="return validate()" ><%--跳转到insert.jsp文件,方法为post--%>
<table width="800" border="0" align="center"> <%--表格的宽为800,居中对齐--%>
<tr>
<td>库存商品名称:
<input type="text" name="name"></td>
</tr>
<tr>
<td>生产工厂:
<input type="text" name="factory"></td>
</tr>
<tr>
<td>型号: <input type="text" name="id"> </td>
</tr>
<tr>
<td>规格: <input type="text" name="standard"> </td>
</tr>
<tr>
<td>                          <input name="submit" type="submit" value="保存"/></td>
</tr>
</table>
<p> </p>
</form>
<a href="show.jsp">查询所有库存商品信息</a> <%--链接到学生信息查询页面--%>
</center>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<base href="<%=basePath%>"> <%--设置基础路径--%>
<title>库存商品信息删除界面</title> <%--页面标题--%>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name = request.getParameter("name");
Connection conn = null; //定义静态数据库连接 //定义静态数据库连接
Statement stat = null;
ResultSet rs = null; //将rs滞空。
conn = DBUtil.getConnection();
stat = conn.createStatement();
stat.executeUpdate("delete from good where name = '" + name + "'"); //删除data表中的name字段
rs = stat.executeQuery("select * from good"); //查找data表
if(rs.next()) //判断结果集
{
out.print("<center><br><br><h3>删除成功!</h3></center>");
}
else{
out.print("<center><h3>删除失败!</h3></center>");
}
%>
<br>
<br>
<center><a href=add.jsp>返回添加库存商品信息页面</a><br/><br/><a href=show.jsp>返回库存商品信息查询页面</a></center> <%--设置居中--%>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<title>库存商品信息</title> <%--页面标题--%>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%--JS--%>
<script type="text/javascript"">
function validate()
{
var name = document.forms[0].name.value;
var factory = document.forms[0].factory.value;
var id = document.forms[0].id.value;
var standard = document.forms[0].standard.value;
if(name.length <= 0){ //判断姓名位数,必填
alert("名称不能为空,请输入名称!");
return false;
}
else if(factory.length <= 0){ //判断年龄,必填
alert("请输入合法生产工厂!");
return false;
}
else if(id <= 0){ //判断学号位数,必填
alert("型号不能为空,请输入型号!");
return false;
} else if(standard.length <= 0){ //专业为必填
alert("规格不能为空,请输入商品规格!");
return false;
}
else{
return true;
}
//document.getElementById("form").submit();
}
</script>
</head>
<body background="img/background.jpg">
<%
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name = request.getParameter("name");
String factory = request.getParameter("factory");
String id = request.getParameter("id");
String standard = request.getParameter("standard");
Connection conn = null; //定义静态数据库连接
Statement stat = null; //滞空stat。
ResultSet rs = null; //将rs滞空。
conn = DBUtil.getConnection();
stat = conn.createStatement();
rs = stat.executeQuery("select * from good where name='" + name + "'"); //查找data表id字段
%>
<br>
<h2>库存商品信息</h2>
<hr noshade>
<br>
<h3>要修改的库存商品信息如下</h3>
<table width="450" border="0" cellpadding="1" cellSpacing=1 style="font-size:15pt;border:dashed 1pt">
<tr align="center">
<td>库存商品名称</td>
<td>库存商品生产工厂</td>
<td>库存商品型号</td>
<td>库存商品规格</td>
</tr>
<%
while(rs.next())
{
out.print("<tr>");
out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
out.print("<td>" + rs.getString("id") + "</td>");
out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
out.print("</tr>");
%>
</table>
<br>
<br>
<h3>将库存商品信息更改为:</h3>
<form action="updateShow.jsp" method="post" onSubmit="return validate()">
<h4>库存商品名称:<input type="text" name="name" value="<%=rs.getString("name") %>" title="库存商品名称不能改变" onClick="return checkName(name)"readonly="readonly"></input><br></h4>
<h4>库存商品生产工厂:<input type="text" name="factory" title="库存商品生产工厂不能为空"></input><br></h4>
<h4>库存商品型号:<input type="text" name="id" title="库存商品型号不能为空"></input><br></h4>
<h4>库存商品规格:<input type="text" name="standard" title="库存商品规格不能为空"></input><br></h4>
<input type="submit" value="修改"/>
</form>
<a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
<%
}
%>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<base href="<%=basePath%>">
<title>修改界面</title>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name1 = request.getParameter("name");
String factory1 = request.getParameter("factory");
String id1 = request.getParameter("id");
String standard1 = request.getParameter("standard");
Connection conn = null; //定义静态数据库连接
Statement stat = null;
conn = DBUtil.getConnection();
stat = conn.createStatement();
stat.execute("update good set name='" + name1 + "' ,factory='" + factory1 + "' ,id='" + id1 + "' ,standard='" + standard1+"' where name='" + name1 + "'");
ResultSet rs = stat.executeQuery("select * from good where name='" + name1 + "'"); //查找data表id字段
%>
<br>
<h3>修改成功!</h3> <%--标题样式3--%>
<br>
<h3>修改后的库存商品信息为:</h3> <%--标题样式3--%>
<hr noshade>
<br>
<br>
<table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <%--表格宽度450--%>
<tr>
<td>库存商品名称</td>
<td>库存商品生产工厂</td>
<td>库存商品型号</td>
<td>库存商品规格</td>
</tr>
<%
while(rs.next())
{
out.print("<tr>");
out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
out.print("<td>" + rs.getString("id") + "</td>");
out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
out.print("</tr>");
}
%>
</table>
<br>
<br>
<a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

package com.javao.msg;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil { public static Connection getConnection() {
try {
//1 鍔犺浇椹卞姩
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/inventory?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
Connection connection = null;
try {
//2 鍒涘缓閾炬帴瀵硅薄connection
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
} //鍏抽棴璧勬簮鐨勬柟娉�
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

  

一个Java系统测试的更多相关文章

  1. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  2. 一个java源文件中为什么只能有一个public类。

    我们都遇到过一个源文件中有多个java类,但当第一个类使用public修饰时,如果下面还有类使用public修饰,会报错.也就是是说一个java源文件最多只能有一个public类. 当有一个publi ...

  3. webmagic的设计机制及原理-如何开发一个Java爬虫

    之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...

  4. Java基础-一个java文件多个类的问题

    一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.

  5. 在Eclipse中,如何把一个java项目变成web项目

    经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目.解决步骤:1.进入项目目录,可看到.project文件,打开.2.找到<natures>... ...

  6. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

  7. 分享:写了一个 java 调用 C语言 开发的动态库的范例

    分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h   代码#pragma once#ifdef __cplusplusextern "C" {#e ...

  8. java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器

    java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器 下载地址:http://yunpan.cn/QXhEcGNYLgwTD 运行方式:java -jar Encryp ...

  9. 自己写一个java.lang.reflect.Proxy代理的实现

    前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...

随机推荐

  1. windows系统redmine安装总结

    今天在公司服务器上安装了redmine,主要用于项目管理和缺陷跟踪.安装过程比较简单,总结如下: 1.网上下载redmine安装包(bitnami-redmine-3.3.1-0-windows-in ...

  2. Linux命令实例功能笔记

    ls命令 ls对文件mtime时间进行排序 降序: ls -lt |  grep '^-'    升序:   ls -ltr  |  grep '^-' seq命令 求1000以内所有偶数的和 ech ...

  3. 编辑文件 vi,vim的基本操作

    vim   文件名字进入文件后   按i  进行编辑编辑确认后   按 Esc  停止编辑然后              按:   输入  wq     (是root权限时才行:若是强制修改 需要  ...

  4. JAVA生成六位随机数

    public static String getSixNum() { String str = "0123456789"; StringBuilder sb = new Strin ...

  5. 配置opensips经验总结

    主要参考https://www.cnblogs.com/Forever-Kenlen-Ja/p/7741776.html (ubuntu),还有https://blog.csdn.net/sunyun ...

  6. Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

    使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set' 调用服务接口代码: ...

  7. servlet的请求转发与重定向

    重定向: Spring的重定向 spring的请求转发:

  8. 源码解读 Laravel PHP artisan config:cache

    来源 https://laravel-china.org/articles/5101/source-code-reading-laravel-php-artisan-configcache 源码在哪 ...

  9. Php 通过curl提交post内容为 Json的请求

    <?php $data = array("cNos" => array("1064917432615","1064917432615&qu ...

  10. efcore从数据库快速生成实体及context

    有些项目开发时先建立数据库,再用codefirst来书写entity和EntityConfiguration,比较耗费功夫. 1.在vs2017中新建个asp.net core的web项目,或者其他项 ...