package cn.itcast.store.web.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 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 cn.itcast.store.domain.Category;
import cn.itcast.store.domain.PageModel;
import cn.itcast.store.domain.Product;
import cn.itcast.store.service.CategoryService;
import cn.itcast.store.service.ProductService;
import cn.itcast.store.service.serviceImp.CategoryServiceImp;
import cn.itcast.store.service.serviceImp.ProductServiceImp;
import cn.itcast.store.utils.UUIDUtils;
import cn.itcast.store.utils.UploadUtils;
import cn.itcast.store.web.base.BaseServlet;
public class AdminProductServlet extends BaseServlet {
public String findAllProductsWithPage(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 获取页数
Integer curNum = Integer.parseInt(request.getParameter("page"));
// 创建业务对象
ProductService product = new ProductServiceImp();
// 调用业务层
PageModel pageBean = product.findAllProductsWithPage(curNum);
// 将pageBean放入request中
request.setAttribute("page", pageBean);
return "/admin/product/list.jsp";
}
public String findProductsWithPageAndPflag(HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 获取页数
Integer curNum = Integer.parseInt(request.getParameter("page"));
// 创建业务对象
ProductService product = new ProductServiceImp();
// 调用业务层
PageModel pageBean = product.findProductsWithPageAndPflag(curNum);
// 将pageBean放入request中
request.setAttribute("page", pageBean);
return "/admin/product/pushDown_list.jsp";
}
public String editProductsByPid(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 获取商品Pid
String pid = request.getParameter("pid");
// 创建业务对象
ProductService product = new ProductServiceImp();
// 调用业务层
Product Product = product.findProductByPid(pid);
// 放入request
CategoryService CategoryService = new CategoryServiceImp();
List<Category> list = CategoryService.findAllCats();
request.setAttribute("Product", Product);
request.setAttribute("list", list);
return "/admin/product/edit.jsp";
}
public String addProductUI(HttpServletRequest request, HttpServletResponse response) throws Exception {
CategoryService CategoryService = new CategoryServiceImp();
List<Category> list = CategoryService.findAllCats();
request.setAttribute("list", list);
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(UUIDUtils.getId());
product.setPdate(new Date());
product.setPflag(0);
//8_调用servcie_dao将user上携带的数据存入数据仓库,重定向到查询全部商品信息路径
ProductService ProductService=new ProductServiceImp();
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/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();
}
//在服务端创建一个空文件(后缀必须和上传�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
javaweb项目完整案例 这个基于Servlet的简易手机网上商城是一个完整的Java Web项目,适用于初学者或中级开发者。它包含了前端页面、后端逻辑和数据库设计。 前端页面使用JSP、HTML、CSS和JavaScript技术,具有响应式设计,适应不同尺寸的移动设备。页面包括主页、商品列表、购物车、用户登录和注册等功能。 后端逻辑使用Java Servlet技术,处理用户请求并与数据库进行交互。它包括用户认证、商品展示、购物车管理、订单生成等功能。同时,还实现了基本的用户权限控制和数据校验功能。 数据库使用MySQL,包含了用户信息、商品信息、购物车信息和订单信息等表结构。可以通过导入提供的数据库文件来快速搭建项目所需的数据库环境。 此项目具备一定的商业化潜力,可以通过添加更多功能和改进用户体验来进一步提升价值。同时,提供详细的文档和技术支持,以帮助买家更好地理解和使用这个项目。 总体而言,这个基于Servlet的简易手机网上商城是一个功能齐全、易于定制和扩展的Java Web项目,适合个人学习
资源推荐
资源详情
资源评论
收起资源包目录
java web项目源码基于servlet简易手机网上商城+mysql数据库文件 (1252个子文件)
pingan.bmp 6KB
hx.bmp 6KB
gf.bmp 6KB
cmb.bmp 6KB
cmbc.bmp 6KB
ccb.bmp 6KB
dy.bmp 6KB
post.bmp 6KB
abc.bmp 6KB
zx.bmp 6KB
bj.bmp 6KB
sfz.bmp 6KB
beijingnongshang.bmp 6KB
cib.bmp 6KB
sh.bmp 6KB
icbc.bmp 6KB
ningbo.bmp 6KB
bcc.bmp 6KB
guangda.bmp 6KB
bh.bmp 6KB
bc.bmp 6KB
shpd.bmp 6KB
nanjing.bmp 6KB
zheshang.bmp 6KB
pingan.bmp 6KB
hx.bmp 6KB
gf.bmp 6KB
cmb.bmp 6KB
cmbc.bmp 6KB
ccb.bmp 6KB
dy.bmp 6KB
post.bmp 6KB
abc.bmp 6KB
zx.bmp 6KB
bj.bmp 6KB
sfz.bmp 6KB
beijingnongshang.bmp 6KB
cib.bmp 6KB
sh.bmp 6KB
icbc.bmp 6KB
ningbo.bmp 6KB
bcc.bmp 6KB
guangda.bmp 6KB
bh.bmp 6KB
bc.bmp 6KB
shpd.bmp 6KB
nanjing.bmp 6KB
zheshang.bmp 6KB
time.bmp 1KB
time.bmp 1KB
AdminProductServlet.class 8KB
AdminProductServlet.class 8KB
OrderDaoImp.class 7KB
OrderDaoImp.class 7KB
ProductDaoImp.class 6KB
ProductDaoImp.class 6KB
OrderServlet.class 5KB
OrderServlet.class 5KB
PaymentUtil.class 5KB
PaymentUtil.class 5KB
UserServlet.class 4KB
UserServlet.class 4KB
ProductServiceImp.class 4KB
ProductServiceImp.class 4KB
OrderServiceImp.class 4KB
OrderServiceImp.class 4KB
PageModel.class 4KB
PageModel.class 4KB
CategoryDaoImp.class 3KB
CategoryDaoImp.class 3KB
Product.class 3KB
Product.class 3KB
User.class 3KB
User.class 3KB
AdminCategoryServlet.class 3KB
AdminCategoryServlet.class 3KB
UserDaoImp.class 3KB
UserDaoImp.class 3KB
AdminOrderServlet.class 3KB
AdminOrderServlet.class 3KB
CartServlet.class 3KB
CartServlet.class 3KB
Cart.class 3KB
Cart.class 3KB
JDBCUtils.class 3KB
JDBCUtils.class 3KB
MyRequest.class 3KB
MyRequest.class 3KB
Order.class 3KB
Order.class 3KB
ProductServlet.class 2KB
ProductServlet.class 2KB
BaseServlet.class 2KB
BaseServlet.class 2KB
UploadUtils.class 2KB
UploadUtils.class 2KB
IndexServlet.class 2KB
IndexServlet.class 2KB
MyBeanUtils.class 2KB
MyBeanUtils.class 2KB
共 1252 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
竹山全栈
- 粉丝: 2134
- 资源: 257
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功