思路

配合数据库,利用JavaWeb所学知识实现用户购买,加入购物车,充值,注册,完善个人信息,管理员对用户增删,修改用户密码,对游戏分类修改,价格调整。

数据库表

管理员权限表:

游戏分类表:

游戏库表:

购物车表:

用户表:

页面内容:

代码实现

将游戏添加到购物车

package com.example.javawebpro;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;@WebServlet(name = "AddCart",value = "/addcart")
public class AddCart extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username= (String) req.getSession().getAttribute("username");String gamename=req.getParameter("gamename");String url="jdbc:mysql://localhost:3306/steam?useUnicode=true&characterEncoding=utf8&useSSL=true";String user="root";String password="123456";try {Class.forName("com.mysql.cj.jdbc.Driver");Connection connection= DriverManager.getConnection(url,user,password);Statement statement=connection.createStatement();String chasql="SELECT * FROM shoppingcart WHERE `user`='"+username+"' and game='"+gamename+"'";String adresssql="SELECT address FROM games WHERE gamename='"+gamename+"'";//查询加入购物车的该游戏的图片地址ResultSet adressrs=statement.executeQuery(adresssql);String adress="";//将地址赋给adresswhile(adressrs.next()){adress=adressrs.getString(1);}//查询购物车中是否有这个游戏ResultSet resultSet = statement.executeQuery(chasql);if(username==null){resp.sendRedirect("http://localhost:8080/JavaWebPro_war_exploded/signin.jsp");}else if(resultSet.next()){//如果有,则直接重定向到游戏页面,发送flag属性hvString dltsql = "DELETE FROM shoppingcart WHERE game='"+gamename+"'";int resultset = statement.executeUpdate(dltsql);resp.sendRedirect("/JavaWebPro_war_exploded/game?adress="+adress+"&flag=none");}else {//如果没有,则添加该游戏到购物车,并且发送flag属性nnString addsql = "INSERT INTO shoppingcart VALUES('" + username + "','" + gamename + "')";int resultset = statement.executeUpdate(addsql);resp.sendRedirect("/JavaWebPro_war_exploded/game?adress="+adress+"&flag=have");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}
}

购买游戏

package com.example.javawebpro;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;@WebServlet(name = "PurchaseSuccessful",value = "/purchasesuccessful")
public class PurchaseSuccessful extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String gamename=req.getParameter("gamename");String price=req.getParameter("price");String username= (String) req.getSession().getAttribute("username");String cart=req.getParameter("cart");String balance="";String address="";boolean flag=true;Date date=new Date();String url="jdbc:mysql://localhost:3306/steam?useUnicode=true&characterEncoding=utf8&useSSL=true";String user="root";String password="123456";SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");String riqi=dateFormat.format(date);if(username==null){req.getRequestDispatcher("/signin.jsp").forward(req, resp);}else {Connection connection = null;try {connection = DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}Statement statement = null;try {statement = connection.createStatement();} catch (SQLException e) {e.printStackTrace();}try {Class.forName("com.mysql.cj.jdbc.Driver");String sql = "select balance from user where username='" + username + "'";System.out.print(username);connection.setAutoCommit(false);ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()) {balance = resultSet.getString(1);}String bsql = "select address from games where gamename='" + gamename + "'";ResultSet rs = statement.executeQuery(bsql);while (rs.next()) {address = rs.getString(1);}String csql = "select username from library where game='" + gamename + "' and username='" + username + "'";ResultSet rst = statement.executeQuery(csql);while (rst.next()) {flag = false;}int a = Integer.parseInt(balance) - Integer.parseInt(price);if (a > 0 && flag) {balance = String.valueOf(a);String usql = "update user set balance=" + balance + " where username='" + username + "'";String asql = "insert into library(username, game) values ('" + username + "','" + gamename + "')";int resultset = statement.executeUpdate(usql);int rslt = statement.executeUpdate(asql);req.getSession().setAttribute("username", username);req.getSession().setAttribute("riqi", riqi);req.getSession().setAttribute("price", price);req.getSession().setAttribute("gamename", gamename);req.getSession().setAttribute("address", address);connection.commit();resp.sendRedirect("http://localhost:8080/JavaWebPro_war_exploded/purchasesuccessful.jsp");} else {connection.commit();if (flag) {resp.sendRedirect("http://localhost:8080/JavaWebPro_war_exploded/purchasefail.jsp");} else {resp.sendRedirect("http://localhost:8080/JavaWebPro_war_exploded/purchasefail.jsp?flag=false");}}} catch (ClassNotFoundException | SQLException e) {try {connection.rollback();} catch (SQLException ex) {ex.printStackTrace();}e.printStackTrace();}}}
}

登录

package com.example.javawebpro;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;@WebServlet(name = "signin",value = "/Signin")
public class Signin extends HelloServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String username=req.getParameter("username");String pswd= req.getParameter("pswd");try {Class.forName("com.mysql.cj.jdbc.Driver");String url="jdbc:mysql://localhost:3306/steam?useUnicode=true&characterEncoding=utf8&useSSL=true";String user="root";String password="123456";Connection connection = DriverManager.getConnection(url,user,password);Statement statement=connection.createStatement();String usersql="select * from user where username='"+username+"'&&user.pswd='"+pswd+"';";ResultSet resultSet=statement.executeQuery(usersql);if(resultSet.next()){req.getSession().setAttribute("error",null);req.getSession().setAttribute("username",username);String chasql="SELECT administrators FROM `user` WHERE username='"+username+"'";int a=2;ResultSet resultSet1=statement.executeQuery(chasql);if(resultSet1.next()){a=resultSet1.getInt(1);}if(a==1){String isadmin="yes";req.getSession().setAttribute("isadmin",isadmin);resp.sendRedirect("/JavaWebPro_war_exploded/administratorpage");}else {String isadmin="no";req.getSession().setAttribute("isadmin",isadmin);resp.sendRedirect("/JavaWebPro_war_exploded/homepage.jsp");}}else {req.getSession().setAttribute("error","true");resp.sendRedirect("/JavaWebPro_war_exploded/signin.jsp");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}

JavaWeb作品(steam)相关推荐

  1. springboot vue婚纱摄影师作品展示网站系统javaweb项目

    摄影师爱好者交流平台是一个为摄影师爱好者提供帮助和交流的一个平台,这个平台协助摄影师互相交流,很多摄影师爱好者可以互相交流意见,平台里的每个人可以互相展示优秀的摄影作品,还可以在线讨论,可以让摄影爱好 ...

  2. java毕业设计Steam游戏平台系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计Steam游戏平台系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计Steam游戏平台系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目 ...

  3. steam你所在的国家不允许看到此内容_Steam德国屏蔽“仅限成人”标签 众多3A大作可能被禁...

    斑马网12月24日消息,据外媒报道,有不少德国Steam用户表示,德国玩家现在已经无法在Steam上购买(浏览)成年人的游戏. 近日有不少德国玩家在Reddit论坛吐槽其无法在Steam上选择&quo ...

  4. 1333和1600能双通道吗_80后童年神作《光环致远星》steam解锁 ?你的电脑还OK吗?...

    原本Xbox平台独占的<光环>系列,在本月5日以<光环士官长合集>的形式正式登陆Steam,这是<光环>系列在10多年前登陆Xbox 360之后,全面登陆PC平台. ...

  5. 贫穷中透着零基础的单人制作游戏手册之三:独立游戏怎么评估Steam市场

    (一)幸存者偏差 "看得到的都是已经活下来的." 没有什么比这句话更符合开放了直接发行后的Steam市场了. 每天十几.二十款新游戏涌入,能进入普通玩家视线中的,一天都未必有一个. ...

  6. 《消逝的光芒》为何能成为Steam热销榜常客 ?

    如果你是一位丧尸游戏爱好者,那么你一定听说过<消逝的光芒>的大名:跑酷.昼夜生存.拯救哈兰-虽然是2015年初发售的游戏,但放在今天仍然称得上优秀. 尽管发售已经过去五年时间,<消逝 ...

  7. STEAM 97%好评,体验堪比《杀戮尖塔》,为什么玩家说这是2020年上半年最超值的游戏?

    当我们感叹<怪物火车>优秀地继承并创新了类<杀戮尖塔>的Roguelike DBG(卡牌构筑游戏,Deck Building Game)玩法时,或许不会想到在短短一个月后,又有 ...

  8. 驱动精灵2007_畅玩Steam的Win10游戏掌机发布! |莱莎2新战斗动画,肉腿致命驱动~...

    点击蓝字 关注我们 01 <察言观色3>确认制作!今冬登陆NS 今日(11月9日),G-MODE宣布:情景模拟<察言观色>系列新作<察言观色3>已经确认制作,预计将 ...

  9. epic转移游戏_Epic游戏商城更改退款政策 和steam一模一样

    游侠网关注我们,获得最快的游戏资讯 Epic正在打造自己的数字游戏商城,一方面对开发者提供更慷慨的销售分成,另一方面对玩家提供每两个月更新一次的免费游戏.虽然Epic游戏商城中的作品数量还在起步阶段, ...

最新文章

  1. FireFox IE Opera Safari 都可以正常播放WMV和MOV的网页播放器代码
  2. 数据结构(二)算法基础与复杂度
  3. 初试牛刀---css中的小细节
  4. 牛客网-数据结构笔试题目(二)-万万没想到之抓捕孔连顺思路解析(附源码)
  5. C++primer 第 3 章 字符串、向量和数组 3.1 命名空间的using声明 3.2标准库类型string
  6. webstorm tsx语法中,使用注释后,发现由红色error
  7. 怎么删除flash弹出的广告_电脑桌面老是弹出广告怎么办?一个无需下载软件即可屏蔽的方法...
  8. Mysql得隔离级别
  9. oracle dba_tables degree default,oracle中如何将表的并行度设定为DEFAULT?如下:
  10. LightBurn(激光切割排版软件)官方中文版V1.0.04 | 激光切割排版软件哪个好
  11. java web实现markdown_editormd实现Markdown编辑器写文章功能
  12. 为什么Python中万物皆对象
  13. 边缘计算开源项目概述
  14. 为了看Google IO 2019大会使用的工具
  15. 手机IP和内网外网IP的访问
  16. ftp 工具 绿色,这6款ftp 工具 绿色是站长们不可或缺的必备工具
  17. html 在线测试 鱼缸,五大浏览器功耗(电量消耗)测试:IE9领先
  18. IP地址中的A、B、C类地址详解
  19. Java应用在docker环境配置容器健康检查,如何保证消息队列的高可用
  20. 笔记本硬盘读取测试软件,电脑硬盘怎样检测 电脑硬盘故障检测软件【详解】...

热门文章

  1. ecshop模板smarty foreach详解
  2. 【Windows】win10系统“关闭\开启讲述人”
  3. Android自定义View之圆弧形进度条,支持背景图片设置
  4. 2016计算机价格,2016年2月中国电脑整机行业价格指数走势
  5. 修改文件夹名称隐藏文件夹_电脑中的上帝模式
  6. GeoServer:WFS(网络要素服务)
  7. 治愈脸盲的秘籍在这里!
  8. 别怕变老吉他谱(完美还原艾热个人直播版本)
  9. 软件测试文档结课论文,软件测试课程论文设计报告.docx
  10. php集成微信支付后台app端