电商网站搭建(三)

news/2024/5/15 12:34:58/文章来源:https://blog.csdn.net/weixin_46674818/article/details/117716850

电商网站搭建(三)

3 后台页面设计

3.1 准备工作

首先为了实现登陆成功跳转到商城界面/后台,因为只有管理员可以上架商品,因此我们先搭建后台,后台搭建好、上传好商品后再搭建商城页面,对以下语句进行修改:

// 修改前
// response.sendRedirect("shoplist.jsp");
// 修改后
if(usrtestok.equals("admin")){response.sendRedirect("shopadmin.jsp");
}
else{response.sendRedirect("shoplist.jsp");
}

此时输入管理员用户名和密码可以进入后台页面。

  • 用户名:admin
  • 密码:lqcadmin

3.2 初始设计

要求通过表单能添加商品信息,相关信息包括:商品名称、价格、商品信息,相关信息添加到数据库表中,添加成功后在该页面能显示所有已添加商品信息。

首先我们需要创建一张表,该表存储了有关商品的记录,商品图片没有使用文件上传的相关知识,之后的商品图片全部是事先对图片命名为 X.jpg ,其中 X 为商品的序号,然后通过相对路径引用。

创建表如下,并插入一条记录:

use shopping;
create table shopProducts(proid int PRIMARY KEY AUTO_INCREMENT,proname varchar(100) character SET GB2312 NOT NULL,proprice float NOT NULL,stoname varchar(100) character SET GB2312 NOT NULL,proinfo varchar(200) character SET GB2312);insert into shopProducts(proname,proprice,stoname) values('韩国原装进口 拿嘟 不添加盐无调味海苔 儿童零食食品即食海苔盒装','34.60', '中南民族大学管理学院自营店');
select * from shopProducts;

3.3 实现显示商品信息

结合表格和数据库连接,比较简单,这里放上代码。

out.print("<table border=1 style=\"text-align:center;font-size:15px;line-height:24px;width:1200px;\">");
out.print("<tr style=\"font-weight:bold;color:#333333\">");
out.print("<td width=80>"+"商品编号");
out.print("<td width=200>"+"商品名称");
out.print("<td width=100>"+"价格");
out.print("<td width=200>"+"店铺");
out.print("<td width=90>"+"详细信息");
out.print("<td width=90>"+"图片信息");
out.print("</tr>"); Connection con = null;
Statement sql;
ResultSet rs;String url = "jdbc:mysql://localhost:3306/shopping?"+
"useSSL=false&serverTimezone=CST&characterEncoding=utf-8";
String user ="root";
String password = "123456";//加载JDBC-MySQL8.0连接器
try{Class.forName("com.mysql.cj.jdbc.Driver"); 
}
catch(Exception e){out.print("<h1>"+e);
}// 查询结果
try{con = DriverManager.getConnection(url, user, password);sql = con.createStatement();String SQL = "SELECT * FROM shopProducts";	// 查询语句rs = sql.executeQuery(SQL);while(rs.next()) {out.print("<tr style=\"color:#333333\">");out.print("<td>" + rs.getString(1) + "</td>"); out.print("<td>" + rs.getString(2) + "</td>"); out.print("<td>" + rs.getString(3) + "元</td>");out.print("<td>" + rs.getString(4) + "</td>");if(rs.getString(5) == null){out.print("<td>暂无</td>");}else{out.print("<td>" + rs.getString(5) + "</td>");}out.print("<td><a href=\"images/" + rs.getString(1) + ".jpg\" target=\"_blank\">显示图片</a></td>");out.print("</tr>"); }con.close();
}
catch(SQLException e) { out.print("<h1>"+e);
}

显示结果如下:

在这里插入图片描述

3.4 实现增删改商品信息

3.4.1 实现增加商品信息

因为仅仅使用 jsp 部分基础内容进行设计,所以这里没有那么巧妙或者完善,三个按钮分别对应三个表单,每个表单中并不是所有项都必填,不需要填写的项之后会通过引入 disabled 属性禁用。

添加表单如下:

<form action="">商品编号:<input type="text" name="proid" />商品名称:<input type="text" name="proname" />价格:<input type="text" name="proprice" />店铺:<input type="text" name="stoname" />详细信息:<input type="text" name="proinfo" /><input type="hidden" name="tp" value="0" /><input type="submit" value="添加" />
</form>

再 Java 程序片中接收值时,所有值虽然都接收,但是只使用其中的一部分结合 SQL 语句实现插入功能,这里开始是想使用结果集进行插入,但是后来因为该表主键自增,使用结果集不是很方便,因此还是使用编写 SQL 语句的方法(时间仓促,希望之后可以优化)。

在设计表单时,创建了一个名为 tp 的隐藏域,该隐藏域用来区别是用来添加还是删除或更新,之后通过 if 语句很好实现,核心代码如下:

if(tpget.equals("0")){if(proinfoget.equals("")){String insertSQL = "insert into shopProducts(proname,proprice,stoname)" + "values('" + pronameget + "','" + propriceget + "','" + stonameget + "');";int ok = sql.executeUpdate(insertSQL);}else{String insertSQL = "insert into shopProducts(proname,proprice,stoname,proinfo)" + "values('" + pronameget + "','" + propriceget + "','" + stonameget + "','" + proinfoget + "');";int ok = sql.executeUpdate(insertSQL);}
}

由于这个也会因为字符乱码导致数据插入不进去,所以在连接数据库之前将转换编码格式:

// 防止字符编码问题导致无法插入数据
pronameget = new String(pronameget.getBytes("ISO-8859-1"), "utf-8");
stonameget = new String(stonameget.getBytes("ISO-8859-1"), "utf-8");
proinfoget = new String(proinfoget.getBytes("ISO-8859-1"), "utf-8");

此时插入数据结果如下:

在这里插入图片描述

虽然成功插入数据,但是一旦刷新页面就会再次插入相同的数据,这是因为使用 post 方法提交表单,虽然不显示提交的数据,但其实数据一直被保存,一旦刷新就会将同样的数据再次插入。

这里我想了一个解决办法,当每次插入/删除/更新操作时,重定向到本页面即可。

修改后的代码如下:

if(tpget.equals("0")){if(proinfoget.equals("")){String insertSQL = "insert into shopProducts(proname,proprice,stoname)" + "values('" + pronameget + "','" + propriceget + "','" + stonameget + "');";int ok = sql.executeUpdate(insertSQL);response.sendRedirect("shopadmin.jsp");}else{String insertSQL = "insert into shopProducts(proname,proprice,stoname,proinfo)" + "values('" + pronameget + "','" + propriceget + "','" + stonameget + "','" + proinfoget + "');";int ok = sql.executeUpdate(insertSQL);response.sendRedirect("shopadmin.jsp");}
}

3.4.2 实现删除商品信息

在设计表单时,创建了一个名为 tp 的隐藏域,该隐藏域用来区别是用来添加还是删除或更新,之后通过 else 语句很好实现,核心代码如下:

else if(tpget.equals("1")){String deleteSQL = "delete from shopProducts where proid = '" + proidget + "'";int ok = sql.executeUpdate(deleteSQL);}

3.4.3 实现更新商品信息

在设计表单时,创建了一个名为 tp 的隐藏域,该隐藏域用来区别是用来添加还是删除或更新,之后通过 else 语句很好实现,核心代码如下:

else if(tpget.equals("2")){if(!proidget.equals("")){if(!pronameget.equals("")){String updateSQL = "update shopProducts set proname='" + pronameget + "' where proid='" + proidget + "'";int ok = sql.executeUpdate(updateSQL);	// 更新}if(!propriceget.equals("")){String updateSQL = "update shopProducts set proprice='" + propriceget + "' where proid='" + proidget + "'";int ok = sql.executeUpdate(updateSQL);	// 更新}if(!stonameget.equals("")){String updateSQL = "update shopProducts set stoname='" + stonameget + "' where proid='" + proidget + "'";int ok = sql.executeUpdate(updateSQL);	// 更新}if(!proinfoget.equals("")){String updateSQL = "update shopProducts set proinfo='" + proinfoget + "' where proid='" + proidget + "'";int ok = sql.executeUpdate(updateSQL);	// 更新}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901915.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商网站搭建(四)

电商网站搭建&#xff08;四&#xff09; 4 商城页面和商品详情页面设计 4.1 超链接传值 由于商城页面也是为了显示数据库中保存的商品信息&#xff0c;因此和之前的后台查询代码基本相似&#xff0c;但是这里要实现一个特殊功能就是商品名称是一个超链接。 由于每个商品详…

用burp对网站进行简单的漏洞扫描

用burp对网站进行简单的漏洞扫描

建站宝盒——最适合中小企业的免费建站工具

作为一个中小型企业&#xff0c;在如今互联网早已深入人们生活的时代里&#xff0c;无论我们提供的是何种服务亦或某种产品&#xff0c;最先想到的应该就是通过网络进行曝光、宣传&#xff0c;让更多的用户能够在搜索引擎上找到我们的商品。如果我们的预算充足&#xff0c;可以…

找资源烦恼犯难,不如自己做个资源网站

闲话少说&#xff0c;直接放链接 银河系XYGALAXY导航 网址&#xff1a;www.xygalaxy.com 做个推广&#xff0c;好用请支持一下&#xff0c;运营网站不易&#xff0c;头发要没了&#xff0c;春天头顶也很冷

推荐一个堪称神器的资源导航网站

当今互联网时代&#xff0c;网站数量不断爆炸式增长&#xff0c;如何迅速找到自己需要的网站成为了每个人都面对的难题之一。于是&#xff0c;一批网站导航网站应运而生&#xff0c;我也用过不少的导航网站&#xff0c;甚至很多导航链接的插件&#xff0c;有些也挺不错的&#…

取精华、去糟粕!适合iOS开发者的15大网站推荐

iOS开发者若想使技艺达到炉火纯青的地步&#xff0c;就要不断借鉴他人的有益经验&#xff0c;紧跟新兴科技和工具的步伐。除了 Apple的开发者中心&#xff0c;其他网站上的文章和资源也具备参考价值&#xff0c;若能学得一二&#xff0c;必能锦上添花。不过&#xff0c;时间宝…

Asp.Net构建安全网站

摘 要 Asp.Net技术被广泛应用&#xff0c;该技术的安全性越来越受到人们重视。本文介绍黑客对Asp.Net系统的攻击手段以及如何采用Asp.Net技术来避免这些安全漏洞&#xff0c;从而构建安全性的网站系统。 关键字 Asp.Net&#xff1b;安全漏洞&#xff1b;对策 1 引言 Asp.…

安全网站从小做起

我是做asp.net网站开发的&#xff0c;QQ群里一个网友的站被挂马了。他说让我写点安全方面的文章。我就介绍下我的经验吧&#xff0c;各位大牛不要拿砖头砸我。。。以下都以ASP.NET开发网站为例。 1、sql注入漏洞。 解决办法&#xff1a;使用存储过程&#xff0c;参数不要用字…

每分钟访问10万+,11种策略教你保持亿级流量网站稳定性!

稳定性在大型网站运行中至关重要&#xff0c;面对每分钟 10 万次的网络访问&#xff0c;稍有不慎就会引起重大故障。今天这篇文章一起讨论下亿级流量网站在稳定性方面的一些做法&#xff0c;希望对您有帮助。本文已发布在公众号和网站。 基础策略 配置化 配置化就是把很多业务流…

微网站、手机站和APP的区别

因为之前写了一篇微网站的文章&#xff0c;有人问我微网站和手机站之间的区别&#xff0c;那我就在这里总体说一下吧。 首先&#xff0c;手机站和微网站都是移动互联网发展下的产物。这样一天24小时&#xff0c;商家就可以多点机会出现在人们的生活中。由于这样的特性&#xf…

微网站、手机站和APP的区别

因为之前写了一篇微网站的文章&#xff0c;有人问我微网站和手机站之间的区别&#xff0c;那我就在这里总体说一下吧。 首先&#xff0c;手机站和微网站都是移动互联网发展下的产物。这样一天24小时&#xff0c;商家就可以多点机会出现在人们的生活中。由于这样的特性&#xf…

ThinkPHP中使用网页模板快速搭建网站

ThinkPHP中使用网页模板快速搭建网站 公司要建一个网站&#xff0c;我刚接触PHP&#xff0c;还不是很熟悉&#xff0c;了解了一下ThinkPHP框架之后&#xff0c;简单的搭建了一个网站&#xff0c;网站内容目前还是写死的&#xff0c;还没有做具体的功能&#xff0c;想先分享一下…

Linux网站服务-搭建一个论坛

概念 前言 UI的转变&#xff1a;B/S架构 名词 HTMLHyperText Markup Language 超级 文本 标记 语言网页使用HTML,PHP,JAVA语言格式书写的文件。主页网页中呈现用户的第一个页面。网站多个网页组合而成的一台网站服务器URLhttp://www.baidu.com/1.htmlUniform Resource Locator…

Linux网站服务-用云服务器搭建论坛网站

前言 互联网的访问依靠IP地址。但IP地址不好记。 所以使用域名服务&#xff08;DNS&#xff0c;好记名&#xff09;&#xff0c;来替代访问的地址。 基本概念 hosts文件&#xff08;老的&#xff09; 一、hosts文件 作用&#xff1a; 实现名字解析&#xff0c;主要为本地主…

新手搭建网站后视频资源在网站上是如何存储的?

前言 本文的起因是一个学员搭建好了一个视频文章&#xff0c;主要做视频的录制&#xff0c;每个视频在10-20M左右&#xff0c;每月产生10G左右的视频素材&#xff0c;想看看怎么存储。 问题解析 作为个人站&#xff0c;没必要花太多钱&#xff0c; 有几种方案可以实施 免费方式…

网站维护业务

您当前的位置&#xff1a;>>>首页-->网站建设-->网站维护业务 网站维护业务 发布日期&#xff1a;2007年10月1日 来源&#xff1a;中亚网络服务部 网站维护   互联网技术的瞬息万变&#xff0c;决定了网站必须时时更新。一个好的网站&#xff0c;是…

网站部署之--- 起始页错误

An error occurred while starting the application. 1在IIS中找到应用程序池 2点进去找到对应的网站 3有点有个高级设置 4找到加载用户配置文件 设置成TRUE 转载于:https://www.cnblogs.com/mamiyiya777/p/9364752.html

3GPP网站查找协议的使用方法

1.首先打开3GPP网页&#xff0c;选择Specifications>>Specification Numbering 2.可以看到种通信技术的发行版本的序号&#xff0c;4G是36&#xff0c;5G在38里面 3.点开你要查找的协议版本号&#xff0c;就能看到协议下的各个分支的具体内容&#xff0c;有关物理信道的在…

Day04 使用PolarDB和ECS搭建门户网站

一.准备工作 本场景将提供一台基础环境为CentOS的ECS&#xff08;云服务器&#xff09;实例和已经创建好的PolarDB数据库实例。我们将会在这台服务器上安装WordPress&#xff0c;帮助您快速搭建自己的云上博客。 参考&#xff1a;https://developer.aliyun.com/article/773856…

如何才能做到网站高并发访问

文章架构简图&#xff1a; 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。 如果把来访用户比作来犯的"敌人"&#xff0c;我们一定要把他们挡在800里地以外&#xff0c;即不能让他们的请求一下打到我们的指挥部&#xff08;指挥部就是数据…