package com.atguigu.web_bookstore.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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.fileupload.util.Streams;
import com.atguigu.web_bookstore.bean.Book;
import com.atguigu.web_bookstore.bean.Cart;
import com.atguigu.web_bookstore.bean.User;
/*
* Web层处理的工具类
*/
public class WebUtils {
/**
* 将请求中的请求参数数据封装到指定类型的对象中, 并返回
*
* @param request
* @param beanClass
* @return
*/
public static <T> T request2Bean(HttpServletRequest request, Class<T> beanClass) {
T t = null;
try {
t = beanClass.newInstance();
// 从request中取出所有请求参数(名和值),设置到t对象的对应属性中
Map<String, Object> map = request.getParameterMap();
for (String name : map.keySet()) {
Object value = map.get(name);
BeanUtils.copyProperty(t, name, value);
}
if (request.getParameter("id") == null) {// 如果请求参数没有携带id
// 给对象设置一个UUID工具类产生的一个36位随机值
BeanUtils.copyProperty(t, "id", UUID.randomUUID().toString());
}
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
/**
* 转发请求到/result.jsp页面, 显示指定的提示信息
*
* @param request
* @param response
* @param message
* @throws ServletException
* @throws IOException
*/
public static void forwordMessageUI(HttpServletRequest request, HttpServletResponse response,
String message) throws ServletException, IOException {
request.setAttribute("message", message);
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
/**
* 转发请求到指定路径, 并保存指定的请求域属性
*
* @param request
* @param response
* @param path
* @param name
* @param value
* @throws ServletException
* @throws IOException
*/
public static void forword(HttpServletRequest request, HttpServletResponse response, String path,
String name, Object value) throws ServletException, IOException {
request.setAttribute(name, value);
request.getRequestDispatcher(path).forward(request, response);
}
/**
* 检查用户是否登陆
* @param request
* @param response
* @return
*/
public static User checkUser(HttpServletRequest request, HttpServletResponse response) {
User user = null;
user = (User) request.getSession().getAttribute("user");
if (user == null) {
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie c : cookies) {
String name = c.getName();
if ("user".equals(name)) {
String value = c.getValue();
String[] namePassword = value.split(",");
user = new User(namePassword[0], namePassword[1], namePassword[2], null);
request.getSession().setAttribute("user", user);
break;
}
}
}
}
return user;
}
/**
* 登陆
* @param request
* @param response
* @param user
* @param auto
*/
public static void login(HttpServletRequest request, HttpServletResponse response, User user, boolean auto) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
if (auto) {
Cookie c = new Cookie("user", user.getId() + "," + user.getUsername() + "," + user.getPassword());
c.setMaxAge(60 * 60 * 24 * 30);
c.setPath("/");
response.addCookie(c);
}
}
/**
* 登出
* @param request
* @param response
*/
public static void logout(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
session.removeAttribute("user");
Cookie c = new Cookie("user", "");
c.setMaxAge(0);
c.setPath("/");
response.addCookie(c);
}
/**
* 添加到浏览历史
* @param request
* @param response
* @param book
*/
public static void addToHistory(HttpServletRequest request, HttpServletResponse response, Book book) {
// cookie的key是由bookName_currentTime
// book.jsp?book=JavaWeb
// 获取cookie
Cookie[] cs = request.getCookies();
int count = 0;
Cookie deleteCookie = null;
// 删除其中的一个cookie
if (cs != null && cs.length > 0) {
for (int i = 0; i < cs.length; i++) {
String name = cs[i].getName();
if(name.startsWith("book_")) {
if (name.startsWith("book_" + book.getId())) {
cs[i].setMaxAge(0);
response.addCookie(cs[i]);
break;
} else {
count++;
if(deleteCookie==null) {
deleteCookie = cs[i];
}
}
}
}
if (count == 4) {
// 将cookie数组中的第一个删除
deleteCookie.setMaxAge(0);
response.addCookie(deleteCookie);
}
}
try {
Cookie c = new Cookie("book_" + book.getId(), URLEncoder.encode(book.getName(), "utf-8"));
c.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(c);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 得到浏览过的所有图书
* @param request
* @return
*/
public static List<Map<String, String>> getHistoryBooks(HttpServletRequest request) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Cookie[] cs = request.getCookies();
if(cs!=null && cs.length>0) {
for(int i=cs.length-1;i>=0;i--) {
Cookie c = cs[i];
String cName = c.getName();
if(cName.startsWith("book_")) {
String id = cName.substring(cName.indexOf("_")+1);
String name = URLDecoder.decode(c.getValue());
Map<String, String> map = new HashMap<>();
map.put("id", id);
map.put("name", name);
list.add(map);
}
}
}
return list;
}
/**
* 清空浏览历史
* @param request
* @param resp
*/
public static void clearHistory(HttpServletRequest request, HttpServletResponse resp) {
Cookie[] cs = request.getCookies();
if(cs!=null && cs.length>0) {
for(int i=cs.length-1;i>=0;i--) {
Cookie c = cs[i];
String cName = c.getName();
if(cName.startsWith("book_")) {
c.setMaxAge(0);
resp.addCookie(c);
}
}
}
}
public static Cart getCart(HttpServletRequest request) {
HttpSession session = request.getSession();
Cart cart = (Cart) session.getAttribute("CART");
if(cart==null) {
cart = new Cart();
session.setAttribute("CART", cart);
}
return cart;
}
/*
* 生成订单号,订单号的组成 两位年+两位月+两位日+两位小时+当天的订单总数 如:11071012100
*
* @param count
*
* @return
*/
public static String buildOrderid(long count) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMddHH");// 2011-07-10
StringBuilder out = new StringBuilder(dateFormat.format(new Date()));
int length = 15;
int countLength = String.valueOf(out).length();
int zeroLength = length - countLength;
for (int i = 0; i < zeroLength; i++) {
out.append(0);
}
out.append(count);
return out.toString();
}
/**
* 上传图书图片
* @param request
* @return
*/
public static Book uploadBook(HttpServletRequest request) {
Book book = new Book();
String id = UUID.randomUUID().toString();
book.
没有合适的资源?快使用搜索试试~ 我知道了~
图书销售系统
共183个文件
class:61个
java:61个
jsp:25个
需积分: 12 17 下载量 31 浏览量
2017-09-18
23:27:15
上传
评论 4
收藏 2.24MB RAR 举报
温馨提示
网上书店项目概述网上购书系统3 部分组成:用户管理、购书网站和订单处理中心。其中...掌握需求分析和绘制用
资源推荐
资源详情
资源评论
收起资源包目录
图书销售系统 (183个子文件)
WebUtils.class 11KB
OrderServiceImpl.class 5KB
OrderServlet.class 5KB
UserServlet.class 5KB
BookServlet.class 4KB
BookServlet.class 4KB
OrderServlet.class 4KB
CartServlet.class 4KB
ValidateColorServlet.class 4KB
BaseDao.class 4KB
BookDaoImpl.class 4KB
BookServiceImpl.class 3KB
CategoryServlet.class 3KB
OnLineListener.class 3KB
Book.class 3KB
CartServiceImpl.class 3KB
BeanFactory.class 3KB
Order.class 3KB
TransacationProxyUtils.class 3KB
PasswordEncodeUtils.class 2KB
OrderDaoImpl.class 2KB
OrderItem.class 2KB
LoginFilter.class 2KB
CategoryDaoImpl.class 2KB
User.class 2KB
Page.class 2KB
Address.class 2KB
TransacationFilter.class 2KB
BaseServlet.class 2KB
OnLineBean.class 2KB
CharacterEncodingFilter.class 2KB
CategoryServiceImpl.class 2KB
AddressDaoImpl.class 2KB
ClientServlet.class 2KB
UserDaoImpl.class 2KB
ConditionBook.class 2KB
CheckCategoryTag.class 2KB
UserServiceImpl.class 2KB
CartItem.class 1KB
JDBCUtils.class 1KB
Cart.class 1KB
OrderItemDaoImpl.class 1KB
Category.class 1KB
OrderService.class 1KB
DBException.class 984B
URLEncodingTest.class 859B
BookDao.class 760B
BookService.class 714B
JDBCUtilsTest.class 646B
UUIDTest.class 644B
InitServlet.class 595B
CategoryService.class 556B
JsonUtils.class 549B
OrderDao.class 547B
CartService.class 493B
CategoryDao.class 483B
AddressDao.class 441B
UserService.class 422B
Transacation.class 408B
UserDao.class 387B
OrderItemDao.class 352B
.classpath 1KB
org.eclipse.wst.common.component 489B
org.eclipse.wst.jsdt.ui.superType.container 49B
common.css 277B
c3p0-0.9.1.2.jar 596KB
mysql-connector-java-5.0.8-bin.jar 528KB
standard.jar 384KB
commons-beanutils-1.8.0.jar 226KB
gson-2.2.4.jar 186KB
commons-io-1.4.jar 161KB
commons-logging.jar 59KB
commons-fileupload-1.2.1.jar 56KB
commons-dbutils-1.3.jar 40KB
jstl.jar 20KB
WebUtils.java 9KB
UserServlet.java 4KB
OrderServlet.java 4KB
ValidateColorServlet.java 3KB
BookServlet.java 3KB
CartServlet.java 3KB
OrderServiceImpl.java 3KB
BookServlet.java 3KB
OrderServlet.java 3KB
BaseDao.java 3KB
Book.java 2KB
CategoryServlet.java 2KB
BookServiceImpl.java 2KB
Order.java 2KB
BookDaoImpl.java 2KB
OnLineListener.java 2KB
PasswordEncodeUtils.java 2KB
OrderItem.java 2KB
Page.java 2KB
CartServiceImpl.java 2KB
Address.java 2KB
TransacationFilter.java 2KB
LoginFilter.java 2KB
BaseServlet.java 1KB
CharacterEncodingFilter.java 1KB
共 183 条
- 1
- 2
资源评论
sun_857...
- 粉丝: 18
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功