基于javaweb+mysql的jsp+servlet二手交易商城系统(java+jsp+javascript+servlet+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的JSP+Servlet二手交易商城系统(java+jsp+javascript+servlet+mysql)
项目介绍
本项目分为前台与后台,前台为普通用户登录,后台为管理员登录;
管理员角色包含以下功能:
管理员登录,用户管理,商品分类管理,商品管理,订单管理,留言管理,新闻公告管理等功能。
用户角色包含以下功能: 查看首页,查看商品,用户登录和注册,加入购物车,查看订单,留言等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈
JSP+CSS+JavaScript+servlet+mysql
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中src/com/hr/dao/Basedao.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/ 登录 管理员账号密码:admin/admin 普通用户账号密码:user/123456
public class IndexSelectServlet extends HttpServlet {
@SuppressWarnings("unchecked")
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//查询分类数据
ArrayList<EASYBUY_PRODUCT_CATEGORY> flist = EASYBUY_PRODUCT_CATEGORYDao.selectFather();
req.setAttribute("flist", flist);
ArrayList<EASYBUY_PRODUCT_CATEGORY> clist = EASYBUY_PRODUCT_CATEGORYDao.selectChild();
req.setAttribute("clist", clist);
ArrayList<EASYBUY_PRODUCT> tlist = EASYBUY_PRODUCTDao.selectAllByT();
req.setAttribute("tlist", tlist);
ArrayList<EASYBUY_PRODUCT> hlist = EASYBUY_PRODUCTDao.selectAllByHot();
req.setAttribute("hlist", hlist);
ArrayList<EASYBUY_NEWS> nlist = EASYBUY_NEWSDao.selectAll();
req.setAttribute("nlist", nlist);
HttpSession session = req.getSession();
//查询最近浏览的商品
ArrayList<Integer> ids = (ArrayList<Integer>)session.getAttribute("ids");
if(ids!=null){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("userName");
String passWord=req.getParameter("passWord");
String veryCode=req.getParameter("veryCode");
resp.setContentType("text/html;charset=utf-8");
HttpSession session = req.getSession();
//获得系统生成的验证码
String sysCode = (String)session.getAttribute("syscode");
int count=EASYBUY_USERDao.selectByNM(username, passWord);
EASYBUY_USER user=EASYBUY_USERDao.selectAdmin(username, passWord);
if(sysCode.equals(veryCode)){
if(count>0){
session.setAttribute("name", user);
if(user.getEU_STATUS()==2){
//System.out.println(user.getEU_STATUS());
//resp.sendRedirect("manage/index.jsp");
resp.sendRedirect("manage/index.jsp");
}else{
resp.sendRedirect("indexSelect");
}
}else{
PrintWriter out = resp.getWriter();
out.print("<script>");
out.print("alert('用户名或密码错误');");
out.print("location.href='login.jsp';");
out.print("</script>");
req.setAttribute("search_words", name);
//父分类
req.setAttribute("selected_fid", fid);
req.getRequestDispatcher("product-list.jsp").forward(req, resp);
}
}
public class gmServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
arg1.setContentType("text/html;charset=utf-8");
PrintWriter out=arg1.getWriter();
EncodeUtil.encode(arg0);
HttpSession session=arg0.getSession();
EASYBUY_USER list=(EASYBUY_USER)session.getAttribute("name");
//用户id
String id=list.getEU_USER_ID();
//用户姓名
String name=list.getEU_USER_NAME();
//用户地址
String address=list.getEU_ADDRESS();
//总价钱
String price=arg0.getParameter("jstext");
//商品id
String [] EP_ID=arg0.getParameterValues("spID");
//购买数量
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("userName");
String name=req.getParameter("name");
String rePassWord=req.getParameter("rePassWord");
String sex=req.getParameter("sex");
String year=req.getParameter("birthday");
String email=req.getParameter("email");
String mobile=req.getParameter("mobile");
String address=req.getParameter("address");
String veryCode=req.getParameter("veryCode");
HttpSession session = req.getSession();
//获得系统生成的验证码
String sysCode = (String)session.getAttribute("syscode");
EASYBUY_USER u=new EASYBUY_USER(username, name, rePassWord, sex, year, null, email, mobile, address, 1);
int count=EASYBUY_USERDao.insert(u);
PrintWriter out=resp.getWriter();
if(sysCode.equals(veryCode)){
if(count>0){
resp.sendRedirect("reg-result.jsp");
}else{
out.write("<script>");
out.write("alert('register error');");
out.write("location.href='register.jsp'");
out.write("</script>");
out.close();
}
}
}
}
public class UserDoupdate extends HttpServlet {
@Override
String price=arg0.getParameter("jstext");
//商品id
String [] EP_ID=arg0.getParameterValues("spID");
//购买数量
String [] quantity=arg0.getParameterValues("number");
//商品单价
String [] sPPrice=arg0.getParameterValues("sPPrice");
//购买后对商品表的库存进行修改
for(int i=0;i<EP_ID.length;i++){
int count5=ESDao.updateStock(Integer.parseInt(quantity[i]),Integer.parseInt(EP_ID[i]));
}
//商品单个总价
int [] pprice=new int[EP_ID.length];
for(int i=0;i<EP_ID.length;i++){
pprice[i]=Integer.parseInt(quantity[i])*Integer.parseInt(sPPrice[i]);
}
/得到序列
//往订单表里添加数据
int count=ESDao.insertDD(id, name, address,Integer.parseInt(price));
int getSequenceId=ESDao.getSequenceId();
//循环往订单详情添加
for(int i=0;i<EP_ID.length;i++){
EASYBUY_ORDER_DETAIL eod=new EASYBUY_ORDER_DETAIL(1,getSequenceId,Integer.parseInt(EP_ID[i]),Integer.parseInt(quantity[i]),pprice[i]);
int count2=ESDao.eodInsert(eod);
}
// 开单后,修改购物车
String [] esID=arg0.getParameterValues("esID");
for(int i=0;i<esID.length;i++){
int count3 =ESDao.esdelete(Integer.parseInt(esID[i]));
}
/
if(count>0){
out.print("<script>");
out.print("alert('购物成功');");
out.print("location.href='shopping-result.jsp';");
out.print("</script>");
out.close();
}else{
out.write("</script>");
out.close();
}
}
}
}
public class UserDoupdate extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
EncodeUtil.encode(req);
resp.setContentType("text/html;charset=utf-8");
String username=req.getParameter("userName");
String name=req.getParameter("name");
String pwd=req.getParameter("passWord");
String sex=req.getParameter("sex");
String birthday=req.getParameter("birthday");
String email=req.getParameter("email");
String mobile=req.getParameter("mobile");
String address=req.getParameter("address");
String userStatus=req.getParameter("userStatus");
int status = 1;
if(userStatus != null && !"".equals(userStatus)){
status = Integer.parseInt(userStatus);
}
EASYBUY_USER user=new EASYBUY_USER(username, name, pwd, sex, birthday, null, email, mobile, address, status);
int count=EASYBUY_USERDao.update(user);
if(count>0){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
EncodeUtil.encode(req);
String dd=req.getParameter("dd");
ArrayList<EASYBUY_Ddan> dan=EASYBUY_DdanDao.selectById(dd);
req.setAttribute("dan", dan);
req.getRequestDispatcher("Dan.jsp").forward(req, resp);
}
}
public class DoProductUpdateServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
SmartUpload su = new SmartUpload();
su.initialize(this.getServletConfig(), req, resp);
try {
su.upload();
} catch (SmartUploadException e) {
e.printStackTrace();
}
Files fs = su.getFiles();//获得所有文件
File f = fs.getFile(0);//获得上传的文件
String fname = f.getFileName();//获得文件名
try {
su.save("images/product");//保存图片到指定位置
} catch (SmartUploadException e) {
}
String uid = user.getEU_USER_ID();
int valid = 1;
eb_shop sp = new eb_shop(0, p.getEP_FILE_NAME(), p.getEP_NAME(), p.getEP_PRICE(), Integer.parseInt(count), p.getEP_STOCK(), p.getEP_ID(), uid, valid);
ESDao.insert(sp);
resp.sendRedirect("ShopSelect");
//req.getRequestDispatcher("ShopSelect").forward(req, resp);
}
}
public class SelallServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
int page=1; //当前页数
int pagesize=6;//每页行数
String spage=req.getParameter("page");
ArrayList<EASYBUY_PRODUCT_CATEGORY> flist = EASYBUY_PRODUCT_CATEGORYDao.selectFather();
req.setAttribute("flist", flist);
ArrayList<EASYBUY_PRODUCT_CATEGORY> clist = EASYBUY_PRODUCT_CATEGORYDao.selectChild();
req.setAttribute("clist", clist);
if(spage!=null){ //如果页面上传递了页数,将当前页数改变掉
page=Integer.parseInt(spage);
}
//查出总页数
ids.add(Integer.parseInt(id));
}
session.setAttribute("ids", ids);
ids = (ArrayList<Integer>) session.getAttribute("ids");
if(ids!=null){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
//查询商品
EASYBUY_PRODUCT p = null;
if(id!=null){
p = EASYBUY_PRODUCTDao.selectById(Integer.parseInt(id));
}
req.setAttribute("p", p);
req.getRequestDispatcher("product-view.jsp").forward(req, resp);
}
}
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("userName");
String passWord=req.getParameter("passWord");
String veryCode=req.getParameter("veryCode");
resp.setContentType("text/html;charset=utf-8");
HttpSession session = req.getSession();
//获得系统生成的验证码
String sysCode = (String)session.getAttribute("syscode");
int count=EASYBUY_USERDao.selectByNM(username, passWord);
EASYBUY_USER user=EASYBUY_USERDao.selectAdmin(username, passWord);
if(sysCode.equals(veryCode)){
if(count>0){
session.setAttribute("name", user);
if(user.getEU_STATUS()==2){
//System.out.println(user.getEU_STATUS());
//resp.sendRedirect("manage/index.jsp");
resp.sendRedirect("manage/index.jsp");
}else{
page=Integer.parseInt(spage);
}
//查出总页数
ArrayList<EASYBUY_COMMENT> list=EASYBUY_COMMENTDao.selPage(page, pagesize);
int max_page=EASYBUY_COMMENTDao.getMax(pagesize);
if(list.size()>0&&max_page>0){
req.setAttribute("list", list);
//把总页数传递给guestbook.jsp 使用
req.setAttribute("max_page", max_page);
//把当前页数传递给guestbook.jsp使用
req.setAttribute("page", page);
// 跳
req.getRequestDispatcher("guestbook.jsp").forward(req,resp);
}else{
req.setAttribute("list", list);
//把总页数传递给guestbook.jsp 使用
req.setAttribute("max_page", max_page);
//把当前页数传递给guestbook.jsp使用
req.setAttribute("page", page);
// 跳
req.getRequestDispatcher("guestbook.jsp").forward(req,resp);
}
}
}
public class SelectProductViewServlet extends HttpServlet {
@SuppressWarnings("unchecked")
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ArrayList<EASYBUY_PRODUCT_CATEGORY> flist = EASYBUY_PRODUCT_CATEGORYDao.selectFather();
req.setAttribute("flist", flist);
ArrayList<EASYBUY_PRODUCT_CATEGORY> clist = EASYBUY_PRODUCT_CATEGORYDao.selectChild();
req.setAttribute("clist", clist);
String id = req.getParameter("id");
HttpSession session = req.getSession();
//查询最近浏览的商品
ArrayList<Integer> ids = (ArrayList<Integer>)session.getAttribute("ids");
if(ids==null){
ids = new ArrayList<Integer>();
}
if(ids.size()>=5){
ids.remove(0);
}
//System.out.println(!ids.contains(Integer.parseInt(id)));
if(id!=null&&(!ids.contains(Integer.parseInt(id)))){
ids.add(Integer.parseInt(id));
}
session.setAttribute("ids", ids);
ids = (ArrayList<Integer>) session.getAttribute("ids");
if(ids!=null){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
//查询商品
EASYBUY_PRODUCT p = null;
if(id!=null){
p = EASYBUY_PRODUCTDao.selectById(Integer.parseInt(id));
}
req.setAttribute("p", p);
req.getRequestDispatcher("product-view.jsp").forward(req, resp);
}
}
Color c=new Color(red,green,blue);
g.setColor(c);
int num=rand.nextInt(10);
code+=num;
g.drawString(num+"", i*20+20, 49);
}
HttpSession session=req.getSession();
session.setAttribute("syscode", code);
ServletOutputStream out=resp.getOutputStream();
ImageIO.write(img, "jpg", out);
}
}
public class RegisterInServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("userName");
String name=req.getParameter("name");
String rePassWord=req.getParameter("rePassWord");
String sex=req.getParameter("sex");
String year=req.getParameter("birthday");
String email=req.getParameter("email");
String mobile=req.getParameter("mobile");
String address=req.getParameter("address");
String veryCode=req.getParameter("veryCode");
HttpSession session = req.getSession();
//获得系统生成的验证码
String sysCode = (String)session.getAttribute("syscode");
EASYBUY_USER u=new EASYBUY_USER(username, name, rePassWord, sex, year, null, email, mobile, address, 1);
int count=EASYBUY_USERDao.insert(u);
PrintWriter out=resp.getWriter();
String [] EP_ID=arg0.getParameterValues("spID");
//购买数量
String [] quantity=arg0.getParameterValues("number");
//商品单价
String [] sPPrice=arg0.getParameterValues("sPPrice");
//购买后对商品表的库存进行修改
for(int i=0;i<EP_ID.length;i++){
int count5=ESDao.updateStock(Integer.parseInt(quantity[i]),Integer.parseInt(EP_ID[i]));
}
//商品单个总价
int [] pprice=new int[EP_ID.length];
for(int i=0;i<EP_ID.length;i++){
pprice[i]=Integer.parseInt(quantity[i])*Integer.parseInt(sPPrice[i]);
}
/得到序列
//往订单表里添加数据
int count=ESDao.insertDD(id, name, address,Integer.parseInt(price));
int getSequenceId=ESDao.getSequenceId();
//循环往订单详情添加
for(int i=0;i<EP_ID.length;i++){
EASYBUY_ORDER_DETAIL eod=new EASYBUY_ORDER_DETAIL(1,getSequenceId,Integer.parseInt(EP_ID[i]),Integer.parseInt(quantity[i]),pprice[i]);
int count2=ESDao.eodInsert(eod);
}
// 开单后,修改购物车
String [] esID=arg0.getParameterValues("esID");
for(int i=0;i<esID.length;i++){
int count3 =ESDao.esdelete(Integer.parseInt(esID[i]));
}
/
if(count>0){
out.print("<script>");
out.print("alert('购物成功');");
out.print("location.href='shopping-result.jsp';");
out.print("</script>");
out.close();
}else{
out.print("<script>");
out.print("alert('购物失败,请重新选择商品');");
out.print("location.href='ShopSelect';");
out.print("</script>");
out.close();
}
}
}
if(user!=null){
// System.out.println("登录好了");
EASYBUY_USER eu=(EASYBUY_USER)session.getAttribute("name");
String id=(String)eu.getEU_USER_ID();
ArrayList<eb_shop> list=ESDao.getShop(id);
req.setAttribute("shoplist",list);
//req.getRequestDispatcher("shopping.jsp").forward(req, resp);
}else{
out.print("<script>");
out.print("alert('请先登录');");
out.print("location.href='login.jsp';");
out.print("</script>");
out.close();
return;
}
String uid = user.getEU_USER_ID();
int valid = 1;
eb_shop sp = new eb_shop(0, p.getEP_FILE_NAME(), p.getEP_NAME(), p.getEP_PRICE(), Integer.parseInt(count), p.getEP_STOCK(), p.getEP_ID(), uid, valid);
int epid=p.getEP_ID();
ESDao.insert(sp);
resp.sendRedirect("selectProductView?id="+epid);
//req.getRequestDispatcher("selectProductView?id=").forward(req, resp);
}
}
public class ShopAddServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// es_id NUMBER primary key not null,--id
// es_ep_file_name NVARCHAR2(30),--图片名称
// es_ep_name NVARCHAR2(30),--商品名
public class SelectDD extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
//查询分类数据
ArrayList<EASYBUY_PRODUCT_CATEGORY> flist = EASYBUY_PRODUCT_CATEGORYDao.selectFather();
req.setAttribute("flist", flist);
ArrayList<EASYBUY_PRODUCT_CATEGORY> clist = EASYBUY_PRODUCT_CATEGORYDao.selectChild();
req.setAttribute("clist", clist);
ArrayList<EASYBUY_PRODUCT> tlist = EASYBUY_PRODUCTDao.selectAllByT();
req.setAttribute("tlist", tlist);
ArrayList<EASYBUY_PRODUCT> hlist = EASYBUY_PRODUCTDao.selectAllByHot();
req.setAttribute("hlist", hlist);
ArrayList<EASYBUY_NEWS> nlist = EASYBUY_NEWSDao.selectAll();
req.setAttribute("nlist", nlist);
HttpSession session = req.getSession();
//查询最近浏览的商品
ArrayList<Integer> ids = (ArrayList<Integer>)session.getAttribute("ids");
if(ids!=null){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
EncodeUtil.encode(req);
String dd=req.getParameter("dd");
ArrayList<EASYBUY_Ddan> dan=EASYBUY_DdanDao.selectById(dd);
public class SelectProductListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
EncodeUtil.encode(req);
ArrayList<EASYBUY_PRODUCT_CATEGORY> flist = EASYBUY_PRODUCT_CATEGORYDao.selectFather();
req.setAttribute("flist", flist);
ArrayList<EASYBUY_PRODUCT_CATEGORY> clist = EASYBUY_PRODUCT_CATEGORYDao.selectChild();
req.setAttribute("clist", clist);
HttpSession session = req.getSession();
//查询最近浏览的二手车
ArrayList<Integer> ids = (ArrayList<Integer>)session.getAttribute("ids");
if(ids!=null){
ArrayList<EASYBUY_PRODUCT> lastlylist = EASYBUY_PRODUCTDao.selectById(ids);
req.setAttribute("lastlylist", lastlylist);
}
int cpage = 1;//当前页数
int count = 8;//每页行数
String cp = req.getParameter("cp");
if(cp!=null){//如果页面上传递了页数,将当前页数改变掉
cpage = Integer.parseInt(cp);
}
//查出总页数
int tpage = 0;
String fid = req.getParameter("fid");
String cid = req.getParameter("cid");
String name = req.getParameter("name");
ArrayList<EASYBUY_PRODUCT> list = null;
if(fid==null&&cid==null){
list = EASYBUY_PRODUCTDao.selectAll(cpage, count);
req.setAttribute("title", "全部二手车");
tpage = EASYBUY_PRODUCTDao.totalPage(count);
}
if(fid!=null){
int id = Integer.parseInt(fid);
list = EASYBUY_PRODUCTDao.selectAllByFid(cpage, count, id);
tpage = EASYBUY_PRODUCTDao.totalPageByFid(count, id);
req.setAttribute("title", EASYBUY_PRODUCT_CATEGORYDao.selectById(id).getEPC_NAME());
req.setAttribute("fid", fid);
}
if(cid!=null){
int id = Integer.parseInt(cid);
public class UseraddServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
EncodeUtil.encode(req);
resp.setContentType("text/html;charset=utf-8");
String username=req.getParameter("userName");
String name=req.getParameter("name");
String pwd=req.getParameter("passWord");
String sex=req.getParameter("sex");
// String birthyear=request.getParameter("birthyear");
// String birthmonth=request.getParameter("birthmonth");
// String birthday=request.getParameter("birthday");
// String year=birthyear+"-"+birthmonth+"-"+birthday;
String year=req.getParameter("birthday");
String email=req.getParameter("email");
String mobile=req.getParameter("mobile");
String address=req.getParameter("address");
EASYBUY_USER u=new EASYBUY_USER(username, name, pwd, sex, year, null, email, mobile, address, 1);
int count=EASYBUY_USERDao.insert(u);
PrintWriter out=resp.getWriter();
if(count>0){
resp.sendRedirect("manage-result.jsp");
}else{