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