简单电商系统 IDEA JAVA

本文借助Git开源项目

链接: https://github.com/zhanglei-workspace/shopping-management-system

我将所遇到的问题按其知识方面来记录
  • 一、sql
  • 1.1 oracle与mysql数据库关于自增长的差异
        oracle 需要通过设置独特的序列来实现自增长,而mysql只需在主键设置上AUTO_INCREMENT来实现。
  • 1.2 mysql常用数据类型
        MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

sql-菜鸟教程 http://www.runoob.com/mysql/mysql-data-types.html

  • 1.3 CachedRowSetImpl类
        之前没有学习到过这类,比较好奇这个类会实现什么功能,搜索了很多博客,得出了以下较为中肯易理解的结论:
        我们知道每个数据库同一时刻连接的最大线程是规定的,而要操作数据库就必须保持程序与数据库的连接。Java中CachedRowSetlmpl类实现了CachedRowSet接口。CachedRowSetlmpl对象可以保存ResulSet对象中的数据。CachedRowSetlmpl对象不依赖Connnection对象,一旦ResulSet对象中的数据保存到CachedRowSetlmpl对象,就可以关闭和数据库的连接。CachedRowSetlmpl继承了ResulSet的所有方法,说以可以和ResulSet的对象一样操作数据。(相当于断开连接后还能操作数据库所查询得到的数据集

    • 二、Java基础
    • 2.1 cookie
          Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
      在这里插入图片描述
      我们在调试过程中可以在浏览器控制台里查看已有的cookie字段
      Cookies与Session的区别
    • 三、JSP/Servlet
    • 3.1 关于web.xml中的welcome-file-list
          < welcome-file-list >起到配置在web.xml中的一个欢迎页的作用,用于输入web容器url(如http://localhost:8080/)时直接跳转的页面。
         welcome-file-list的工作原理是,按照welcome-file的.list一个一个去检查是否web目录下面存在这个文件,如果存在,继续下面的工作(或者跳转到index.html页面).如上例,先去web/jsp(这里是IDEA的工程下级目录)下是否真的存在login.jsp这个文件。
      在这里插入图片描述
  • 3.2 <jsp:useBean />
    在这里插入图片描述
       其中id表示定义的JavaBean的唯一标识,class表示定义的JavaBean的类,id表示此javaBean对象的“引用代号”,可以直接用此id调用方法。定义了一个JavaBean就可以为其属性赋值了,可以使用jsp:setProperty动作为JavaBean的属性赋值,也可以使用jsp:getProperty动作来获取属性的值。
    scope="page | request | session | application" 四种作用域
    JSP动作元素useBean执行步骤:

jsp:useBean元素用来定位或初始化一个JavaBeans组件。jsp:useBean
先会尝试定位Bean实例,如果其不存在,则会依据class名称(class属性指定)或序列化模板(beanName属性指定)进行实例化。
进行定位或初始化Bean对象时,jsp:useBean按照以下步骤执行。
步骤1: 尝试在scope属性指定的作用域使用你指定的名称(id属性值)定位Bean对象;
步骤2: 使用你指定的名称(id属性值)定义一个引用类型变量;
步骤3: 假如找到Bean对象,将其引用给步骤2定义的变量。假如你指定类型(type属性),赋予该Bean对象该类型;
步骤4: 假如没找到,则实例化一个新的Bean对象,并将其引用给步骤2定义的变量。假如该类名(由beanName属性指定的类名)代表的是一个序列化模板(serialized template),该Bean对象由java.beans.Beans.instantiate初始化;
步骤5: 假如jsp:useBean此次是实例化Bean对象而不是定位Bean对象,且它有体标记(body tags)或元素(位于jsp:useBean和</jsp:useBean>之间的内容,则执行该体标记。
引用于:https://www.cnblogs.com/nearor/p/4525415.html

  • 3.2 访问路径问题
    1、 项目访问的href是以src文件为根目录(即java文件夹)
    2、servlet访问的路径是以web文件根目录(含jsp文件夹、css文件夹、WEB-INF配置文件)

request.getSchema() 可以返回当前页面使用的协议,http 或是 https;

request.getServerName() 可以返回当前页面所在的服务器的名字;

request.getServerPort() 可以返回当前页面所在的服务器使用的端口,就是80;

request.getContextPath() 可以返回当前页面所在的应用的名字;
							来自:https://bo-hai.iteye.com/blog/939255

请求重定向与请求转发的区别

1、请求重定向
使用responce.sendRedirect(“xxx.jsp”)来进行重定向。sendRedirect属于客户端的行为。客户端会访问两次:第一次访问后会立即跳转到第二个重定向页面上,从本质上是两次请求,一次重定向操作使用不同的request对象,地址栏的URL地址会改变。
2、请求转发
使用request.getRequestDispatcher(“xxx.jsp”).forward(request,response)请求转发。forward(request,response)用于保存内置对象request和response。forward属于服务器层次的行为:服务器会代替客户端去访问转发页面(客户端不会感觉到跳转),本质上是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。

  • 四、整体调试与总结

markdowm首行缩进方法
一个汉字占两个空格大小,所以使用四个空格就可以达到首行缩进两个汉字的效果。有如下几种方法:
1、一个空格大小的表示: 。
2、两个空格的大小表示: 使用2个即可缩进2个汉字,推荐使用该方式。
作者:码飞_CC
链接:https://www.jianshu.com/p/31eade263e7a

猜你喜欢

转载自blog.csdn.net/weixin_44111477/article/details/86498063