JavaWeb作品(steam)

思路

配合数据库,利用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 {
    @Override
    protected 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="";
            //将地址赋给adress
            while(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属性hv
                String dltsql = "DELETE FROM shoppingcart WHERE game='"+gamename+"'";
                int resultset = statement.executeUpdate(dltsql);
                resp.sendRedirect("/JavaWebPro_war_exploded/game?adress="+adress+"&flag=none");
            }else {
                //如果没有,则添加该游戏到购物车,并且发送flag属性nn
                String 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 {
    @Override
    protected 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{
    @Override
    protected 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();
        }
    }

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值