JavaWeb作品(steam)

news/2024/10/24 7:21:58/

思路

配合数据库,利用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();}}}


http://www.ppmy.cn/news/752618.html

相关文章

【Bug】steam双方都是国区 礼物无法入库问题

写在前面: 记得原来有个朋友问我最贵的车是什么 我说我不知道 他说是女生的购物车 我觉得steam的购物车才是最贵的 报错:这件物品不能被添加至您的库中,因为它在您所在的地区不可用 和霜霜姐姐互送了游戏 收到了《超凡双生》 但是一直处…

JavaScript游戏购物车项目

编辑软件:HBuilderX 项目展示 登陆界面 注册界面 主界面 文件链接 项目展示 登陆界面 登陆界面html和js <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthde…

项目——仿Steam商城

项目介绍 这个项目是主要设计缓存的一个练手项目&#xff0c;目前后台还没有实现&#xff0c;还在开发&#xff08;现在已上传后台&#xff09;&#xff0c;但是前台流程是通了的&#xff0c;从登陆到购买以及秒杀。目前主要模块有五个&#xff1a;用户模块&#xff0c;游戏模…

wps白色背景设置为淡绿色保护眼睛预防眼疲劳

能把wps背景变成浅绿色吗&#xff1f;可以保护眼睛的&#xff0c;当然可以&#xff0c;其实很简单只有把系统的窗口颜色改成淡绿色即可&#xff0c;下面以Windows 7&#xff0c;winxp为大家详细介绍下具体的设置过程&#xff0c;由此需求的朋友可以借此机会学习下&#xff0c;希…

wps 2003 给WPS设置保护眼睛的淡绿色呢?

转载请说明来源于"厦门SEO" 本文地址&#xff1a;http://www.96096.cc/Article/169688.html wps 2003 很多工具软件都有“护眼配色”功能&#xff0c;其实原理很简单&#xff0c;就是将系统的窗口颜色改成淡绿色&#xff0c;我们自己改也可以&#xff0c;方法如下&…

wps打开word是绿色的怎么解决?

WPS是常用的办公软件&#xff0c;功能齐全&#xff0c;但是有用户打开WPS中的Word时&#xff0c;发现背景变成绿色&#xff0c;用起来非常不习惯&#xff0c;有什么办法可以恢复原先的背景颜色&#xff1f;今天小编就给大家介绍一下WPS打开Word绿底的解决方法。 WPS文档页面变成…

Sphinx进行精确查询及模糊查询排除关键词

上篇有讲解使用Redis处理大批次查询&#xff0c;来预防内存耗尽方案&#xff0c;如果只是关键词查询没有其它筛选条件的话还好&#xff0c;如果加上筛选条件和其它问题的话&#xff0c;就不能满足查询了&#xff0c;所以就想使用sphinx来实现。 主要是设置sphinx的匹配模式&…

【导数 偏微分 梯度】之间的关系

导数、偏微分和梯度是数学中常用的概念&#xff0c;它们之间存在着密切的关系。以下是它们之间的关系解释&#xff1a; 1. 导数&#xff1a;导数用于描述函数在某一点上的变化率。对于函数f(x)&#xff0c;导数可以表示为f(x)或df(x)/dx。导数告诉我们函数在某一点上的斜率&…