首页 > 编程语言 >Javaweb学习-书城项目相关

Javaweb学习-书城项目相关

时间:2023-03-21 10:12:27浏览次数:56  
标签:Javaweb request 购物车 学习 订单 import servlet page 书城

资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战) ,本人才疏学浅,记录笔记以供日后回顾
由于是多个视频内容混合在一起,因此只放了第一个链接
本文参考价值不高,随便写写罢了
视频链接

讲师的大致思考逻辑及需要实现的功能

昨日内容:
1. 需求分析
2. 数据库设计
 1) 实体分析
    - 图书                Book
    - 用户                User
    - 订单                OrderBean
    - 订单详情             OrderItem
    - 购物车项             CartItem
 2) 实体属性分析
    - 图书 : 书名、作者、价格、销量、库存、封面、状态
    - 用户 : 用户名、密码、邮箱
    - 订单 : 订单编号、订单日期、订单金额、订单数量、订单状态、用户
    - 订单详情 : 图书、数量、所属订单
    - 购物车项 : 图书、数量、所属用户

今日内容:
1. 显示主页面(index页面)
  - 新建BookDAO 、 BookDAOImpl : getBookList()
  - 新建BookService 、 BookServiceImpl : getBookList()
  - 新建BookController : index()
  - 编辑index.html
2. 首页上登录成功之后显示欢迎语和购物车数量
3. 点击具体图书的添加到购物车按钮
4. 购物车详情
5. 结账
   1) 订单表添加一条记录
   2) 订单详情表添加7条记录
   3) 购物车项表中需要删除对应的7条记录
6. 关于订单信息中的订单数量问题
7. 编辑购物车
8. 关于金额的精度问题
9. 过滤器判断是否是合法用户:
   - 解决方法:新建SessionFilter , 用来判断session中是否保存了currUser
   - 如果没有currUser,表明当前不是一个登录合法的用户,应该跳转到登录页面让其登录

   - 现在添加了过滤器之后,出现了如下错误:
   localhost 将您重定向的次数过多。
   尝试清除 Cookie.
   ERR_TOO_MANY_REDIRECTS

SessionFilter.java

过滤器判断是否是合法用户

点击查看代码
package com.ypf.z_book.filters;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

@WebFilter(urlPatterns = {"*.do","*.html"},
        initParams = {
            @WebInitParam(name = "bai",
                    value = "/pro25/page.do?operate=page&page=user/login,/pro25/user.do?null")
        })
public class SessionFilter implements Filter {

    //白名单列表
    List<String> baiList = null ;

    @Override
    public void init(FilterConfig config) throws ServletException {
        String bai = config.getInitParameter("bai");
        String[] baiArr = bai.split(",");
        baiList = Arrays.asList(baiArr);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest ;
        HttpServletResponse response = (HttpServletResponse)servletResponse;

        //http://localhost:8080/pro25/page.do?operate=page&page=user/login
        System.out.println("request.getRequestURI() = " + request.getRequestURI());
        System.out.println("request.getQueryString() = " + request.getQueryString());

        String uri = request.getRequestURI() ;
        String queryString = request.getQueryString() ;
        String str = uri + "?" + queryString ;
        if(baiList.contains(str)){
            filterChain.doFilter(request,response);
        }else{
            HttpSession session = request.getSession() ;
            Object currUserObj = session.getAttribute("currUser");

            if(currUserObj==null){
                response.sendRedirect("page.do?operate=page&page=user/login");
            }else{
                filterChain.doFilter(request,response);
            }
        }
    }

    @Override
    public void destroy() {

    }
}

标签:Javaweb,request,购物车,学习,订单,import,servlet,page,书城
From: https://www.cnblogs.com/fgcs111/p/17238926.html

相关文章

  • Linux学习第二课-Linux常用命令
    1.远程连接Linux工具:putty(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)、xshell(https://www.xshellcn.com/xshell.html)等​ 个人喜欢使用putty......
  • min-max 容斥学习笔记
    定义设\(\max(S)\)为集合S中的最大值,\(\min(S)\)为集合\(S\)中的最小值,\(|S|\)为集合S的元素数量,那么有以下两个等式:\[\max(S)=\sum_{T\subseteqS}(-1)^{|......
  • Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口
    环境安装:(新手向)在Linux中使用VScode编写"Hello,world"程序,并编写测试-Ubuntu20.4上一篇相关随笔:Go语言:利用TDD测试驱动开发帮助理解数组与动态数组(切片)的区别......
  • javascript 学习笔记
     JavaScript是区分大小写的,并使用Unicode字符集在JavaScript中,指令被称为语句(Statement),并用分号(;)进行分隔如果一条语句独占一行的话,那么分号是可以省略的。(译者......
  • 230321 语法学习的重要性与昂克
    前段时间,你一直被what的问句所困扰.同时,困扰你的还有what构成的名词性从句,以及从句的简化原则.你对从句简化的原理性理解,对于你正确的理解从句,正确的理解非谓语动词......
  • 创建学习环境
    IT技术很现实的学习方式就是实操,很多时候记忆知识意义不大,能够动手做到很重要。所以学习Linux和shell编程最好的前提就是拥有一台linux服务器。随着iaas的盛行,没必要自己......
  • 深度学习入门9787115485588 Chapter3
    explaintheactivationfunctioninneuralnetworkwithanactualcaseanddemonstrateitinpythoncode Inaneuralnetwork,anactivationfunctionisusedt......
  • python基础语法学习
    这里主要记录主要的python语法。1.编码python3默认时UTF-8编码,也可以为源文件指定不同的编码(使用Windows-1252字符集中的字符编码):#-*-coding:cp-1252-*-2.注......
  • PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SV
    全文下载链接:http://tecdat.cn/?p=26219最近我们被客户要求撰写关于银行机器学习的研究报告,包括一些图形和统计输出。该数据与银行机构的直接营销活动相关,营销活动基于电......
  • 机器学习模型的性能评估方法
    动动发财的小手,点个赞吧!部署模型后,监控其性能对于确保ML系统的质量起着至关重要的作用。要计算准确度、精确度、召回率或f1分数等指标,需要标签。但是,在许多情况下,标签......