栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb之Servlet小项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb之Servlet小项目

目录

前言:

项目简介:

1.登陆界面

2.主界面

3.购物车界面

代码详解:

com.zking.biz包

IGoodsBiz.java:

IUserBiz.java:

com.zking.biz.impl包

GoodsBizImpl.java:

UserBizImpl.java:

com.zking.dao包

IGoodsDao.java:

IUserDao.java:

com.zking.dao.impl包

GoodsDaoImpl.java:

UserDaoImpl.java:

com.zking.filter包

LoginFilter.java:

com.zking.pojo包

Goods.java:

OrderItem.java:

User.java:

com.zking.servlet包

AddServlet.java:

ClearServlet.java:

DelServlet.java:

IndexServlet.java:

LoginServlet.java:

UpdServlet.java:

com.zking.util包

DBHelper:

Web部分:

car.jsp:

index.jsp:

login.jsp:

今天的分享就到此为止啦,精彩下期继续。


前言:

上篇给大家介绍了一下关于Servlet的一些知识及用法,今天就来给大家分享一下运用Servlet知识来创作的一个小项目吧。

https://blog.csdn.net/weixin_65474399/article/details/124442385?spm=1001.2014.3001.5502http://Servlet的介绍及使用


项目简介:

1.登陆界面

做了简单的登陆验证处理,当账号和密码错误时就完成不了界面的跳转

2.主界面

主界面会显示登陆进来的用户名,购物车里会显示商品,点击上方的蓝色按钮,就可以跳转到购物车界面,点击加入购物车的按钮就可以把主页的商品添加至购物车中。

3.购物车界面

购物车界面会根据商品的价格计算总价,右边的按钮可以对商品的数量进行操作,增加或者减少,当商品数量小于1时,数量会默认为1,每种商品限定5件。点击删除按钮可以直接删除该商品。

代码详解:

先在项目中建立如下的包:

com.zking.biz包

IGoodsBiz.java:
package com.zking.biz;

import com.zking.pojo.Goods;

import java.util.List;


public interface IGoodsBiz {

    List list();

    Goods one(int id);

}

IUserBiz.java:
package com.zking.biz;

import com.zking.pojo.User;

public interface IUserBiz {

    User login(User user);

}

com.zking.biz.impl包

GoodsBizImpl.java:
package com.zking.biz.impl;

import com.zking.biz.IGoodsBiz;
import com.zking.dao.IGoodsDao;
import com.zking.dao.impl.GoodsDaoImpl;
import com.zking.pojo.Goods;

import java.util.List;


public class GoodsBizImpl implements IGoodsBiz {

    private IGoodsDao goodsDao=new GoodsDaoImpl();

    @Override
    public List list() {
        return goodsDao.list();
    }

    @Override
    public Goods one(int id) {
        return goodsDao.one(id);
    }
}

UserBizImpl.java:
package com.zking.biz.impl;

import com.zking.biz.IUserBiz;
import com.zking.dao.IUserDao;
import com.zking.dao.impl.UserDaoImpl;
import com.zking.pojo.User;
import org.apache.commons.codec.digest.DigestUtils;


public class UserBizImpl implements IUserBiz {

    private IUserDao userDao=new UserDaoImpl();

    @Override
    public User login(User user) {
        User u = userDao.login(user);
        if(u==null){
            return null;
        }
        String pwd= DigestUtils.md5Hex(user.getPassword());
        if(!u.getPassword().equals(pwd)){
            return null;
        }
        return u;
    }

}

com.zking.dao包

IGoodsDao.java:
package com.zking.dao;

import com.zking.pojo.Goods;

import java.util.List;


public interface IGoodsDao {

    List list();

    Goods one(int id);

}

IUserDao.java:
package com.zking.dao;

import com.zking.pojo.User;


public interface IUserDao {

    User login(User user);

}

com.zking.dao.impl包

GoodsDaoImpl.java:
package com.zking.dao.impl;

import com.zking.dao.IGoodsDao;
import com.zking.pojo.Goods;
import com.zking.util.DBHelper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class GoodsDaoImpl implements IGoodsDao {

   
    private Connection con;
    private PreparedStatement ps;
    private ResultSet rs;

    @Override
    public List list() {
        List list = new ArrayList();
        try {
            con = DBHelper.getCon();
            ps = con.prepareStatement("select * from car_goods");
            rs = ps.executeQuery();
            while (rs.next()) {
                Goods goods = new Goods();
                goods.setId(rs.getInt(1));
                goods.setName(rs.getString(2));
                goods.setDescribe(rs.getString(3));
                goods.setPrice(rs.getInt(4));
                list.add(goods);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBHelper.close(con, ps, rs);
        }
        return list;
    }

    @Override
    public Goods one(int id) {
        List list = new ArrayList();
        try {
            con = DBHelper.getCon();
            ps = con.prepareStatement("select * from car_goods where id=?");
            ps.setInt(1,id);
            rs = ps.executeQuery();
            if (rs.next()) {
                Goods goods = new Goods();
                goods.setId(rs.getInt(1));
                goods.setName(rs.getString(2));
                goods.setDescribe(rs.getString(3));
                goods.setPrice(rs.getInt(4));
                return goods;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBHelper.close(con, ps, rs);
        }
        return null;
    }

}

UserDaoImpl.java:
package com.zking.dao.impl;

import com.zking.dao.IUserDao;
import com.zking.pojo.User;
import com.zking.util.DBHelper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class UserDaoImpl implements IUserDao {

  
    private Connection con;
    private PreparedStatement ps;
    private ResultSet rs;

    @Override
    public User login(User user) {
        try {
            con = DBHelper.getCon();
            ps=con.prepareStatement("select * from car_user where account=?");
            ps.setString(1, user.getAccount());
            rs=ps.executeQuery();
            if(rs.next()){
                User u=new User();
                u.setId(rs.getInt(1));
                u.setAccount(rs.getString(2));
                u.setPassword(rs.getString(3));
                return u;
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBHelper.close(con,ps,rs);
        }
        return null;
    }

}

com.zking.filter包

LoginFilter.java:
package com.zking.dao.impl;

import com.zking.dao.IUserDao;
import com.zking.pojo.User;
import com.zking.util.DBHelper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class UserDaoImpl implements IUserDao {

  
    private Connection con;
    private PreparedStatement ps;
    private ResultSet rs;

    @Override
    public User login(User user) {
        try {
            con = DBHelper.getCon();
            ps=con.prepareStatement("select * from car_user where account=?");
            ps.setString(1, user.getAccount());
            rs=ps.executeQuery();
            if(rs.next()){
                User u=new User();
                u.setId(rs.getInt(1));
                u.setAccount(rs.getString(2));
                u.setPassword(rs.getString(3));
                return u;
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBHelper.close(con,ps,rs);
        }
        return null;
    }

}

com.zking.pojo包

Goods.java:
package com.zking.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;


public class Goods {

    private Integer id;
    private String name;
    private String describe;
    private Integer price;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDescribe() {
		return describe;
	}
	public void setDescribe(String describe) {
		this.describe = describe;
	}
	public Integer getPrice() {
		return price;
	}
	public void setPrice(Integer price) {
		this.price = price;
	}
    
     public Goods() {
		// TODO Auto-generated constructor stub
	}
	public Goods(Integer id, String name, String describe, Integer price) {
		super();
		this.id = id;
		this.name = name;
		this.describe = describe;
		this.price = price;
	}
     

}

OrderItem.java:
package com.zking.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


public class OrderItem {

    private Integer id;
    private Integer orderId;
    private Goods goods;
    private Integer quantity;
    private Integer total;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getOrderId() {
		return orderId;
	}
	public void setOrderId(Integer orderId) {
		this.orderId = orderId;
	}
	public Goods getGoods() {
		return goods;
	}
	public void setGoods(Goods goods) {
		this.goods = goods;
	}
	public Integer getQuantity() {
		return quantity;
	}
	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
	}
	public Integer getTotal() {
		return total;
	}
	public void setTotal(Integer total) {
		this.total = total;
	}
	public OrderItem() {
		// TODO Auto-generated constructor stub
	}
	public OrderItem(Integer id, Integer orderId, Goods goods, Integer quantity, Integer total) {
		super();
		this.id = id;
		this.orderId = orderId;
		this.goods = goods;
		this.quantity = quantity;
		this.total = total;
	}
}

User.java:
package com.zking.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;


public class User {

    private Integer id;
    private String account;
    private String password;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
    
    public User() {
		// TODO Auto-generated constructor stub
	}
	public User(Integer id, String account, String password) {
		super();
		this.id = id;
		this.account = account;
		this.password = password;
	}
    
}

com.zking.servlet包

AddServlet.java:
package com.zking.servlet;

import com.zking.biz.IGoodsBiz;
import com.zking.biz.impl.GoodsBizImpl;
import com.zking.pojo.Goods;
import com.zking.pojo.OrderItem;

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.util.List;


@WebServlet("/add.do")//配置路径
public class AddServlet extends HttpServlet {

    private IGoodsBiz GoodsBiz = new GoodsBizImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List car = (List) req.getSession().getAttribute("car");
        int id = Integer.parseInt(req.getParameter("id"));
        boolean f = true;
        for (OrderItem item : car) {
            if (item.getGoods().getId().equals(id)) {
                item.setQuantity(item.getQuantity() + 1);
                item.setTotal(item.getQuantity() * item.getGoods().getPrice());
                f = false;
                break;
            }
        }
        if (f) {
            OrderItem item = new OrderItem();
            Goods one = GoodsBiz.one(id);
            item.setGoods(one);
            item.setQuantity(1);
            item.setTotal(one.getPrice());
            car.add(item);
        }
        req.getSession().setAttribute("total", car.stream()
                .mapToInt(OrderItem::getTotal)
                .sum());
        resp.sendRedirect("index.do");
    }

}

ClearServlet.java:
package com.zking.servlet;

import com.zking.pojo.OrderItem;

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.util.List;


@WebServlet("/clear.do")
public class ClearServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List car = (List)req.getSession().getAttribute("car");
        car.clear();
        resp.sendRedirect("car.jsp");
    }

}

DelServlet.java:
package com.zking.servlet;

import com.zking.pojo.Goods;
import com.zking.pojo.OrderItem;

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.util.List;


@WebServlet("/del.do")
public class DelServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List car = (List)req.getSession().getAttribute("car");
        int id = Integer.parseInt(req.getParameter("id"));
        OrderItem i=null;
        for (OrderItem item : car) {
            if(item.getGoods().getId().equals(id)){
                i=item;
                break;
            }
        }
        car.remove(i);
        req.getSession().setAttribute("total",car.stream()
                .mapToInt(OrderItem::getTotal)
                .sum());
        resp.sendRedirect("car.jsp");
    }

}

IndexServlet.java:
package com.zking.servlet;

import com.zking.biz.IGoodsBiz;
import com.zking.biz.impl.GoodsBizImpl;
import com.zking.pojo.Goods;

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.util.List;


@WebServlet("/index.do")
public class IndexServlet extends HttpServlet {

    private IGoodsBiz goodsBiz=new GoodsBizImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List list = goodsBiz.list();
        req.setAttribute("list",list);
        req.getRequestDispatcher("index.jsp").forward(req,resp);
    }

}

LoginServlet.java:
package com.zking.servlet;

import com.zking.biz.IUserBiz;
import com.zking.biz.impl.UserBizImpl;
import com.zking.pojo.Goods;
import com.zking.pojo.OrderItem;
import com.zking.pojo.User;

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.util.ArrayList;
import java.util.List;


@WebServlet("/login.do")
public class LoginServlet extends HttpServlet {

    private IUserBiz userBiz=new UserBizImpl();


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String account = req.getParameter("account");
        String password = req.getParameter("password");
        User user = new User();
        user.setAccount(account);
        user.setPassword(password);
        User u = userBiz.login(user);
        if(u==null){
            resp.sendRedirect("login.jsp");
        }else{
            req.getSession().setAttribute("user",u);
            List car=new ArrayList<>();
            req.getSession().setAttribute("car",car);
            req.getSession().setAttribute("total",0);
            resp.sendRedirect("index.do");
        }
    }

}

UpdServlet.java:
package com.zking.servlet;

import com.zking.pojo.Goods;
import com.zking.pojo.OrderItem;

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.util.List;

@WebServlet("/upd.do")
public class UpdServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List car = (List)req.getSession().getAttribute("car");
        int id = Integer.parseInt(req.getParameter("id"));
        int type = Integer.parseInt(req.getParameter("type"));
        for (OrderItem item : car) {
            if(item.getGoods().getId().equals(id)){
                int count = item.getQuantity() + type;
                if(count<1)count=1;
                if(count>5)count=5;
                item.setQuantity(count);
              item.setTotal(item.getQuantity()*item.getGoods().getPrice());
                req.getSession().setAttribute("total",car.stream()
                        .mapToInt(OrderItem::getTotal)
                        .sum());
                break;
            }
        }
        resp.sendRedirect("car.jsp");
    }

}

com.zking.util包

DBHelper:
package com.zking.util;

import java.sql.*;


@SuppressWarnings("all")
public class DBHelper {

    private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";

    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getCon() {
        try {
            return DriverManager.getConnection(URL, "scott", "tiger");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
        try {
            if (con != null && !con.isClosed()) {
                con.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (rs != null) {
                rs.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

Web部分:

car.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



    
    
    
    
    
    购物车界面



    
        ${user.account},您好, 这是购物车
    
    
        继续购买
        订单结算
        查看订单
        清空
    
    
            
商品编号 商品名字 商品数量 商品总价 商品操作
${item.goods.id} ${item.goods.name} ${item.quantity} ${item.total} 删除 +1 -1
total: ${total}

index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



    
    
    
    
    
    主界面
    


    



    ${user.account},您好, 这是首页


    点我去购物车


    
商品编号 商品名称 商品描述 商品价格 商品操作
${goods.id} ${goods.name} ${goods.describe} ${goods.price} 加入
<%-- login.jsp-(表单)->login.do-(登录验证)->index.do-(拿到首页需要的数据)->index.jsp 显示数据 --%>

login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>




    
    
    
    
    
    登录界面
    


登录

今天的分享就到此为止啦,精彩下期继续。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号