本文借助Git开源项目
链接: https://github.com/zhanglei-workspace/shopping-management-system
我将所遇到的问题按其知识方面来记录
- 一、sql
- 1.1 oracle与mysql数据库关于自增长的差异
oracle 需要通过设置独特的序列来实现自增长,而mysql只需在主键设置上AUTO_INCREMENT
来实现。 - 1.2 mysql常用数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
-
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