package cn.zzk.servlet;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
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 org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import cn.zzk.dao.ProductDao;
import cn.zzk.po.Page;
import cn.zzk.po.Product;
/**
* Servlet implementation class ProductServlet
*/
@WebServlet("/ProductServlet")
public class ProductServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
ProductDao productDao = new ProductDao();
public ProductServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String method = request.getParameter("method");
switch (method) {
case "all":
queryAllProduct(request, response);
break;
case "add":
addProduct(request, response);
break;
case "del":
delProduct(request, response);
break;
case "update":
updateProduct(request, response);
break;
case "byid":
queryProductById(request, response);
break;
case "batchDel":
batchDelProduct(request, response);
break;
case "byPage":
queryProductByPage(request,response);
break;
}
}
private void queryProductByPage(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//得到当前页数
String currPage=request.getParameter("currentPage");
int currentPage=1;
if(currPage!=null)
{
System.out.println(currPage);
currentPage=Integer.parseInt(currPage);
}
//得到总记录数量
int totalCount=0;
List<Product> products=productDao.queryAllProducts();
if(products!=null)
{
totalCount=products.size();
}
//页面大小——每页显示几条记录
int pageSize=5;
//创建页处理对象
Page page=new Page(currentPage,pageSize,totalCount);
//得到当前页显示的记录索引(从0开始)
int beginIndex=page.getBeginIndex();
//得到当前页的商品列表
List<Product> productByPage = productDao.queryProductByPage(beginIndex, pageSize);
//将商品信息和页对象放入request作用域,供页面展示使用
request.setAttribute("productList", productByPage);
request.setAttribute("page", page);
//转向页面
request.getRequestDispatcher("/product/m_productMain.jsp").forward(request, response);
}
private void queryAllProduct(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
List<Product> products = productDao.queryAllProducts();
request.setAttribute("productList", products);
request.getRequestDispatcher("/ProductServlet?method=byPage").forward(request, response);
}
// 增加商品(涉及上传图片文件)
private void addProduct(HttpServletRequest request,
HttpServletResponse response) throws IOException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// 判断是带文件上传的表单?还是普通表单
boolean isuploadSuccess = false; // 设置上传成功的标志
File imageFile = null; // 图片文件对象
String proname = null; // 商品名称
String pronumber = null; // 商品数量
String proprice = null; // 商品价格
String prosupplier = null; // 商品供应商
String propic = null; // 商品的图片文件名
String destFileName = null; // 重新组织的商品文件名
try {
String uploaddir = request.getServletContext().getRealPath(
"/images");
// 设置上传路径字符串
File upFile = new File(uploaddir); // 创建路径对应的文件对象
if (!upFile.exists()) { // 如果路径不存在,就逐级创建
upFile.mkdirs();
}
if (isMultipart == true) { // 若是带文件上传的表单,继续
FileItemFactory factory = new DiskFileItemFactory(); // 创建文件项工厂
ServletFileUpload upload = new ServletFileUpload(factory); // 创建文件上传对象
List<FileItem> items; // 表单项列表
items = upload.parseRequest(request); // 解析请求对象,得到各个表单项
// 对表单里的各个项目进行分析:
// 如果是普通文本框,则取得其字段名称,根据名称获得其值
// 如果是文件上传项,则取得文件名,对文件名进行处理,然后上传
Iterator<FileItem> it = items.iterator();
while (it.hasNext()) { // 单文件上传
FileItem item = (FileItem) it.next();
// 处理普通文本
String fileldName = item.getFieldName(); // 得到域名称
switch (fileldName) // 根据名称取得其数据,由二进制数据转换成UTF-8编码
{
case "proname":
proname = new String(item.getString().getBytes(
"iso-8859-1"), "utf-8");
break;
case "proprice":
proprice = new String(item.getString().getBytes("iso-8859-1"), "utf-8");
没有合适的资源?快使用搜索试试~ 我知道了~
Java课程设计-java web 网上商城,后台商品管理(前后端源码+数据库+文档) .zip
共76个文件
java:14个
class:14个
jsp:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2024-05-12
23:33:02
上传
评论
收藏 1.81MB ZIP 举报
温馨提示
项目规划与设计: 确定系统需求,包括商品管理的功能(如添加商品、编辑商品、删除商品、查看商品列表等)。 设计数据库模型,包括商品表、类别表、库存表等。 确定系统的技术栈,如使用Spring MVC作为MVC框架、Hibernate或MyBatis作为ORM框架、Spring Security进行权限控制等。 环境搭建: 搭建开发环境,包括安装JDK、配置Servlet容器(如Tomcat)、配置数据库(如MySQL)等。 创建一个Maven项目,添加所需的依赖库。 数据库设计与创建: 根据设计好的数据库模型,在数据库中创建相应的表结构。 后端开发: 创建Java实体类,对应数据库中的表结构。 编写数据访问层(DAO)代码,实现对商品信息的增删改查操作。 编写服务层(Service)代码,实现业务逻辑,如商品管理的各种操作。 开发控制器层(Controller),实现与前端页面的交互,接收请求并调用相应的服务进行处理。 前端开发: 使用HTML、CSS和JavaScript等前端技术,设计并实现商品管理页面的界面。 通过Ajax技术,实现前后端的数据交互,如异步加载商品列表、实
资源推荐
资源详情
资源评论
收起资源包目录
SYS.zip (76个子文件)
java网上商城
ps.sql 2KB
demo.jpg 161KB
ps
.classpath 1KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 364B
org.eclipse.core.resources.prefs 89B
.jsdtscope 522B
org.eclipse.wst.common.component 465B
org.eclipse.wst.common.project.facet.core.xml 398B
org.eclipse.wst.jsdt.ui.superType.container 49B
src
cn
zzk
servlet
QueryProductById.java 2KB
UserServlet.java 13KB
QueryAllProduct.java 934B
CartServlet.java 2KB
ProductServlet.java 22KB
dao
UserDao.java 3KB
ProductDao.java 4KB
DBUtilsBaseDao.java 4KB
BaseDao.java 1KB
filter
CartFilter.java 2KB
po
Cart.java 2KB
Product.java 2KB
Page.java 1KB
User.java 2KB
WebRoot
WEB-INF
classes
cn
zzk
servlet
ProductServlet.class 11KB
QueryProductById.class 3KB
QueryAllProduct.class 1KB
UserServlet.class 9KB
CartServlet.class 3KB
dao
UserDao.class 4KB
ProductDao.class 4KB
DBUtilsBaseDao.class 3KB
BaseDao.class 1KB
filter
CartFilter.class 2KB
po
User.class 2KB
Cart.class 2KB
Page.class 1KB
Product.class 2KB
lib
mysql-connector-java-5.1.18-bin.jar 771KB
jstl-1.2.jar 405KB
commons-dbutils-1.6 .jar 76KB
commons-fileupload-1.2.2.jar 58KB
commons-io-2.1.jar 159KB
c.tld 16KB
fn.tld 7KB
web.xml 2KB
prouser
m_updateUser.jsp 3KB
m_addUser.jsp 3KB
userRegist.jsp 3KB
userLogin.jsp 2KB
m_userMain.jsp 3KB
js
calendar.js 14KB
images
009.jpg 22KB
buyNow.png 1KB
005.jpg 22KB
003.jpg 20KB
010.jpg 24KB
showCart.png 2KB
addToCart.png 1KB
008.jpg 19KB
006.jpg 21KB
002.jpg 22KB
004.jpg 28KB
007.jpg 22KB
001.jpg 37KB
product
m_updateProduct.jsp 2KB
m_addProduct.jsp 2KB
showProductDetails.jsp 3KB
showAllProduct.jsp 2KB
m_productMain.jsp 4KB
procart
showCart.jsp 4KB
addCartSuccess.jsp 1KB
promanager
main.jsp 2KB
userLogin.jsp 2KB
META-INF
MANIFEST.MF 39B
.project 1KB
共 76 条
- 1
资源评论
荒野大飞
- 粉丝: 9359
- 资源: 416
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- densenet模型-python语言pytorch框架的图像分类宠物行为分类识别-不含数据集图片-含逐行注释和说明文档.zip
- alexnet模型-基于深度学习识别水果种类-不含数据集图片-含逐行注释和说明文档.zip
- earsertrweeqewrr
- alexnet模型-基于深度学习对草莓品级果识别-不含数据集图片-含逐行注释和说明文档.zip
- 微信小程序五子棋游戏,有悔棋,清屏等功能
- alexnet模型-python语言pytorch框架训练识别餐桌美食-不含数据集图片-含逐行注释和说明文档.zip
- proteus下载安装 具体步骤
- proteus下载安装 具体步骤
- proteus下载安装 具体步骤
- proteus下载安装 具体步骤
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功