——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明





基于javaweb的JSP+Servlet仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)
一、项目简述
功能:
前台:
用户模块
分类模块
商品模块
购物车模块
订单模块
后台:
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try{ int start = 0; int count = 5; try{ start = Integer.parseInt(req.getParameter("page.start")); count = Integer.parseInt(req.getParameter("page.count")); } catch(Exception e) {
}
Page page = new Page(start, count);
String method = (String)req.getAttribute("method"); Method m = this.getClass().getMethod(method, HttpServletRequest.class, HttpServletResponse.class, Page.class); String redirect = m.invoke(this, req, resp, page).toString();
if(redirect.startsWith("@")){ resp.sendRedirect(redirect.substring(1)); } else if(redirect.startsWith("%")){ resp.getWriter().print(redirect.substring(1)); } else { req.getRequestDispatcher(redirect).forward(req, resp); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } }
public InputStream parseUpload(HttpServletRequest request, Map<String, String> params){ InputStream is = null; try{ DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); factory.setSizeThreshold(1024 * 1024);
List items = upload.parseRequest(request); Iterator iter = items.iterator();
while(iter.hasNext()){
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class CategoryServlet extends BaseBackServlet {
@Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了category add方法");
Map<String,String> params = new HashMap<>(); InputStream is = super.parseUpload(request, params);
System.out.println(params); String name = params.get("name"); Category c = new Category(); c.setName(name); categoryDAO.add(c);
File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category")); File file = new File(imageFolder, c.getId() + ".jpg");
try{ if(null != is && 0 != is.available()){ try( FileOutputStream fos = new FileOutputStream(file); ){ byte[] b = new byte[1024 * 1024]; int length = 0; while(-1 != (length = is.read(b))){ fos.write(b, 0, length); } fos.flush(); BufferedImage img = ImageUtil.change2jpg(file); ImageIO.write(img, "jpg", file); } } } catch (IOException e) { e.printStackTrace(); } return "@admin_category_list"; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| */ public String checkLogin(HttpServletRequest request, HttpServletResponse response, Page page) { User user = (User) request.getSession().getAttribute("user"); if (user != null) { return "%success"; } return "%fail"; }
public String loginAjax(HttpServletRequest request, HttpServletResponse response, Page page) { String name = request.getParameter("name"); String password = request.getParameter("password");
User user = userDAO.get(name, password); if (user == null) return "%fail";
request.getSession().setAttribute("user", user); return "%success"; }
public String product(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet product方法");
int pid = Integer.parseInt(request.getParameter("pid")); Product p = productDAO.get(pid);
List<ProductImage> productSingleImages = productImageDAO.list(p, ProductImageDAO.type_single); List<ProductImage> productDetailImages = productImageDAO.list(p, ProductImageDAO.type_detail); p.setProductSingleImages(productSingleImages); p.setProductDetailImages(productDetailImages);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class ForeAuthFilter implements Filter {
@Override public void init(FilterConfig filterConfig) throws ServletException {
}
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse;
String contextPath = request.getSession().getServletContext().getContextPath();
String[] noNeedAuthPage = new String[]{ "home", "homepage", "checkLogin", "register", "loginAjax", "login", "product", "category", "search"};
String uri = request.getRequestURI(); uri = StringUtils.remove(uri, contextPath); if (uri.startsWith("/fore") && !uri.startsWith("/foreServlet")) { String method = StringUtils.substringAfterLast(uri, "/fore"); if (!Arrays.asList(noNeedAuthPage).contains(method)) { User user = (User) request.getSession().getAttribute("user"); if (null == user) { response.sendRedirect("login.jsp"); return; } } }
filterChain.doFilter(request, response); }
@Override
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| } catch (InvocationTargetException e) { e.printStackTrace(); } }
public InputStream parseUpload(HttpServletRequest request, Map<String, String> params){ InputStream is = null; try{ DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); factory.setSizeThreshold(1024 * 1024);
List items = upload.parseRequest(request); Iterator iter = items.iterator();
while(iter.hasNext()){ FileItem item = (FileItem) iter.next(); if(!item.isFormField()){ is = item.getInputStream(); } else { String paramName = item.getFieldName(); String paramValue = item.getString(); paramValue = new String(paramValue.getBytes("ISO-8859-1"), "UTF-8"); params.put(paramName, paramValue); } }
} catch (FileUploadException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return is; } } package servlet;
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=391422302105200gq
https://javayms.pages.dev?id=391422302105200gq