package com.mp.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mp.entity.Product;
import com.mp.utils.IdUtils;
import com.mp.utils.UploadUtils;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
import com.mp.service.ProductService;
public class AdminProductServlet extends BaseServlet {
public String findAllProductsWithPage(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 获取页数
Integer curNum = Integer.parseInt(request.getParameter("page"));
// 创建业务对象
ProductService product = new ProductService();
// 调用业务层
List<Product> pageBean = product.findAllProductsWithPage(curNum);
// 将pageBean放入request中
request.setAttribute("page", pageBean);
return "/admin/product/list.jsp";
}
public String editProductsByPid(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 获取商品Pid
String pid = request.getParameter("pid");
// 创建业务对象
ProductService product = new ProductService();
// 调用业务层
Product Product = product.findProductByPid(pid);
// 放入request
request.setAttribute("Product", Product);
return "/admin/product/edit.jsp";
}
public String addProductUI(HttpServletRequest request, HttpServletResponse response) throws Exception {
return "/admin/product/add.jsp";
}
public String addProduct(HttpServletRequest req, HttpServletResponse response) throws Exception {
//存储表单中数据
Map<String,String> map=new HashMap<String,String>();
//携带表单中的数据向servcie,dao
Product product=new Product();
try {
//利用req.getInputStream();获取到请求体中全部数据,进行拆分和封装
DiskFileItemFactory fac=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(fac);
List<FileItem> list=upload.parseRequest(req);
//4_遍历集合
for (FileItem item : list) {
if(item.isFormField()){
//5_如果当前的FileItem对象是普通项
//将普通项上name属性的值作为键,将获取到的内容作为值,放入MAP中
// {username<==>tom,password<==>1234}
map.put(item.getFieldName(), item.getString("utf-8"));
}else{
//6_如果当前的FileItem对象是上传项
//获取到原始的文件名称
String oldFileName=item.getName();
//获取到要保存文件的名称 1222.doc 123421342143214.doc
String newFileName= UploadUtils.getUUIDName(oldFileName);
//通过FileItem获取到输入流对象,通过输入流可以获取到图片二进制数据
InputStream is=item.getInputStream();
//获取到当前项目下products/3下的真实路径
//D:\tomcat\tomcat71_sz07\webapps\store_v5\products\3
String realPath=getServletContext().getRealPath("/products/3/");
String dir=UploadUtils.getDir(newFileName); // /f/e/d/c/4/9/8/4
String path=realPath+dir; //D:\tomcat\tomcat71_sz07\webapps\store_v5\products\3/f/e/d/c/4/9/8/4
//内存中声明一个目录
File newDir=new File(path);
if(!newDir.exists()){
newDir.mkdirs();
}
//在服务端创建一个空文件(后缀必须和上传到服务端的文件名后缀一致)
File finalFile=new File(newDir,newFileName);
if(!finalFile.exists()){
finalFile.createNewFile();
}
//建立和空文件对应的输出流
OutputStream os=new FileOutputStream(finalFile);
//将输入流中的数据刷到输出流中
IOUtils.copy(is, os);
//释放资源
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
//向map中存入一个键值对的数据 userhead<===> /image/11.bmp
// {username<==>tom,password<==>1234,userhead<===>image/11.bmp}
map.put("pimage", "/products/3/"+dir+"/"+newFileName);
}
}
//7_利用BeanUtils将MAP中的数据填充到Product对象上
BeanUtils.populate(product, map);
product.setPid(IdUtils.getId());
product.setPdate(new Date());
product.setPflag(0);
//8_调用servcie_dao将user上携带的数据存入数据仓库,重定向到查询全部商品信息路径
ProductService ProductService=new ProductService();
ProductService.saveProduct(product);
response.sendRedirect("/shopping/AdminProductServlet?method=findAllProductsWithPage&page=1");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public String editProduct(HttpServletRequest req, HttpServletResponse response) throws Exception {
//存储表单中数据
Map<String,String> map=new HashMap<String,String>();
//携带表单中的数据向servcie,dao
Product product=new Product();
try {
//利用req.getInputStream();获取到请求体中全部数据,进行拆分和封装
DiskFileItemFactory fac=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(fac);
List<FileItem> list=upload.parseRequest(req);
//4_遍历集合
for (FileItem item : list) {
if(item.isFormField()){
//5_如果当前的FileItem对象是普通项
//将普通项上name属性的值作为键,将获取到的内容作为值,放入MAP中
// {username<==>tom,password<==>1234}
map.put(item.getFieldName(), item.getString("utf-8"));
}else{
//6_如果当前的FileItem对象是上传项
//获取到原始的文件名称
String oldFileName=item.getName();
//获取到要保存文件的名称 1222.doc 123421342143214.doc
String newFileName=UploadUtils.getUUIDName(oldFileName);
//通过FileItem获取到输入流对象,通过输入流可以获取到图片二进制数据
InputStream is=item.getInputStream();
//获取到当前项目下products/3下的真实路径
//D:\tomcat\tomcat71_sz07\webapps\store_v5\products\3
String realPath=getServletContext().getRealPath("/products/");
String dir=UploadUtils.getDir(newFileName); // /f/e/d/c/4/9/8/4
String path=realPath+dir; //D:\tomcat\tomcat71_sz07\webapps\store_v5\products\3/f/e/d/c/4/9/8/4
//内存中声明一个目录
File newDir=new File(path);
if(!newDir.exists()){
newDir.mkdirs();
}
//在服务端创建一个空文件(后缀必须和上传到服务端的文件名后缀一致)
File finalFile=new File(newDir,newFileName);
if(!finalFile.exists()){
finalFile.createNewFile();
}
//建立和空文件对应的输出流
OutputStream os=new FileOutputStream(finalFile);
//将输入流中的数据刷到输出流中
IOUtils.copy(is, os);
//释放资源
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
//向map中存入一个键值对的数据 userhead<===> /image/11.bmp
// {username<==>tom,password<==>1234,userhead<===>image/11.bmp}
if(oldFileName.length()>=1) {
map.put("pimage", "/products/"+dir+"/"+newFileName);
}
}
}
//7_利用BeanUtils将MAP中的数据填充到Product对象上
BeanUtils.populate(product, map);
//8_调用servcie_dao将user上携带的数据存入数据仓库,重定向到查询全部商品信息路径
ProductService ProductService=new ProductService();
ProductService.editProduct(product);
response.sendRedirect("/shopping/AdminProductServlet?method=findAllProductsWithPage&page=1");
} catch (Exception e) {
e.printStackTrace();
}
retur
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
原创制作,无框架,功能界面美观大气,这个Java Web项目是一个基于servlet、c3p0和dbutils的网上商城系统,使用MySQL数据库作为后端存储。它采用了极简风格的设计,没有使用任何框架,所有代码都是手写的。 该项目的后端代码主要包括以下几个部分: Servlets:使用Java Servlet技术处理HTTP请求和响应。这些Servlets负责处理用户的登录、注册、浏览商品、购买商品等操作。 数据库连接池(c3p0):使用c3p0库来管理数据库连接。连接池可以提高数据库的性能和可扩展性,避免频繁创建和销毁连接。 数据库操作(dbutils):使用dbutils库来执行数据库操作,如查询、插入、更新和删除。dbutils提供了简单且易于使用的API,可以减少编写繁琐的JDBC代码的工作量。 数据库模型:定义了与商城相关的数据库表结构,如用户表、商品表、订单表等。这些模型类通常包含属性和对应的getter和setter方法。 前端代码部分涉及到Jsp、HTML、CSS和JavaScript,用于构建用户界面和实现一些交互功能。
资源推荐
资源详情
资源评论
收起资源包目录
java web项目源码基于servlet+c3p0+dbutils+jsp网上商城+mysql数据库文件.zip (625个子文件)
AdminProductServlet.class 7KB
AdminProductServlet.class 7KB
OrderDao.class 6KB
OrderDao.class 6KB
ProductDao.class 5KB
ProductDao.class 5KB
OrderServlet.class 4KB
OrderServlet.class 4KB
UserServlet.class 4KB
UserServlet.class 4KB
OrderService.class 3KB
OrderService.class 3KB
AdminOrderServlet.class 3KB
AdminOrderServlet.class 3KB
Product.class 3KB
Product.class 3KB
UserDao.class 3KB
UserDao.class 3KB
Cart.class 3KB
Cart.class 3KB
CartServlet.class 3KB
CartServlet.class 3KB
JDBCUtils.class 3KB
JDBCUtils.class 3KB
User.class 3KB
User.class 3KB
MyRequest.class 3KB
MyRequest.class 3KB
Order.class 2KB
Order.class 2KB
ProductService.class 2KB
ProductService.class 2KB
ProductServlet.class 2KB
ProductServlet.class 2KB
BaseServlet.class 2KB
BaseServlet.class 2KB
UploadUtils.class 2KB
UploadUtils.class 2KB
MyBeanUtils.class 2KB
MyBeanUtils.class 2KB
IdUtils.class 1KB
IdUtils.class 1KB
OrderItem.class 1KB
OrderItem.class 1KB
UserService.class 1KB
UserService.class 1KB
EncodingFilter.class 1KB
EncodingFilter.class 1KB
IndexServlet.class 1KB
IndexServlet.class 1KB
Cartlterm.class 1023B
Cartlterm.class 1023B
Admin.class 873B
Admin.class 873B
Style1.css 12KB
Style1.css 12KB
style.css 713B
style.css 713B
shopping.iml 7KB
mysql-connector-java-5.1.39-bin.jar 966KB
mysql-connector-java-5.1.39-bin.jar 966KB
commons-collections-3.2.1.jar 562KB
commons-collections-3.2.1.jar 562KB
mchange-commons-java-0.2.3.jar 556KB
mchange-commons-java-0.2.3.jar 556KB
mail.jar 483KB
mail.jar 483KB
c3p0-0.9.2-pre5.jar 405KB
c3p0-0.9.2-pre5.jar 405KB
standard.jar 384KB
standard.jar 384KB
jedis-2.7.0.jar 331KB
jedis-2.7.0.jar 331KB
dom4j-1.6.1.jar 307KB
dom4j-1.6.1.jar 307KB
commons-lang-2.5.jar 273KB
commons-lang-2.5.jar 273KB
commons-beanutils-1.8.3.jar 227KB
commons-beanutils-1.8.3.jar 227KB
json-lib-2.4-jdk15.jar 155KB
json-lib-2.4-jdk15.jar 155KB
commons-pool2-2.3.jar 107KB
commons-pool2-2.3.jar 107KB
commons-io-1.4.jar 106KB
commons-io-1.4.jar 106KB
javax.servlet-api-4.0.1.jar 93KB
javax.servlet-api-4.0.1.jar 93KB
ezmorph-1.0.6.jar 84KB
ezmorph-1.0.6.jar 84KB
commons-logging-1.1.1.jar 59KB
commons-logging-1.1.1.jar 59KB
commons-fileupload-1.2.1.jar 56KB
commons-fileupload-1.2.1.jar 56KB
commons-dbutils-1.4.jar 48KB
commons-dbutils-1.4.jar 48KB
jstl.jar 20KB
jstl.jar 20KB
AdminProductServlet.java 9KB
OrderDao.java 6KB
ProductDao.java 5KB
共 625 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
竹山全栈
- 粉丝: 2133
- 资源: 257
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功