测试开发之面试宝典
目录
session和cookie的区别
1.session和cookie都是鍵值对应的
2.session和cookie都是服务器生成的,session的ID,即服各器用来识别读取session对象的一把钥匙
3.session是保存在服各器端,而cookie是返回給客戶端的, 服务器生成session对象后,将sessionID以cookie键值的形式返回给客户端, 而cookie是通过header的Set-Cookie返回给客户端,并存储在浏览器默认的文件目录下
4.session和cookie都是有其生命周期的
cookie的生命周期
1.cookie本身的存活周期,由服务器生成cookie时指定(浏览器在发送请求时,会自动将存活的cookie装在请求头中向服务器发送,JMeter这类工具通过HTTP Cookie管理器实现)
2.客户端是否保存cookie,若默认目录下的cookie文件被清理,则cookie消亡
session的生命周期
1.服务器对于session对象的存活周期的设定
2.客户端连接是否关闭
5.为什么Session比Cookie安全?因为Cookie是返回给客户端,用户可见,可以被伪造(类似人民币);Session是存在服务端,只有sessionID暴露(类似银行卡)
一般而言,cookie被破解影响到的是整个系统中的所有用户,而session则不存在被破解的风险,只影响个人
6.状态维持的原理:无论session、cookie、token或者通过表单数据来实现的状态位置,从代码的角度来说,我们要做的事情是一样的。
- 服务器什么时候以何种方式返回状态
- 客户端在发送请求的时候,是如何使用状态值
Spring基础(51CTO课程)
spring应用开发包:
aopaliance-1.0.jar
apspectjweaver-1.9.5.jar
common-logging-1.2.jar
spring-aop-5.2.3.RELEASE.jar
spring-aspects-5.2.3.RELEASE.jar
spring-beans-5.2.3.RELEASE.jar
spring-context-5.2.3.RELEASE.jar
spring-context-support-5.2.3.RELEASE.jar
spring-core-5.2.3.RELEASE.jar
spring-expression-5.2.3.RELEASE.jar
spring-instrument-5.2.3.RELEASE.jar
spring-jdbc-5.2.3.RELEASE.jar
spring-jms-5.2.3.RELEASE.jar
spring-messaging-5.2.3.RELEASE.jar
spring-orm-5.2.3.RELEASE.jar
spring-oxm-5.2.3.RELEASE.jar
spring-test-5.2.3.RELEASE.jar
spring-tx-5.2.3.RELEASE.jarIDEA上创建spring工程,并选择好project JDK:
1.创建lib目录,复制以上文件到该目录
2.从File->Project Structure进入Project Settings窗口,Libraries tab中可以选择依赖包导入,使以上jar包成为工程的依赖
3.右键点击src目录,New->XML Configuration File->Spring Config,命名为applicationContext.xml
4.包目录下可以创建子配置文件,此时applicationContext.xml可以通过以下引入子配置文件
IoC控制反转:对象的创建、销毁和初始化等与生命周期相关的操作交给Spring容器来处理,降低代码耦合度。
1.将类放在applicationContext.xml中声明,赋予一个beanId2.调用时构建ApplicationContext对象,把类构造出来,并通过getBean方法得到实例化的对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Daoshi daoshi = (Daoshi) applicationContext.getBean("daoshi");scope属性:
1.默认单例模式,scope="singleton"(每次getBean得到的是相同的对象实例)
2.设置多例模式, scope="prototype"(每次getBean得到的是不同的对象实例)init-method属性和destroy-method属性:
1.配置文件中需要添加这两个属性
init-method="init"
destroy-method="destroy"
2.class中需要定义init方法和destroy方法
3.调用getBean时,创建对象会自动触发init方法
3.调用时关闭容器后,会自动触发destroy方法(多例模式下,不会执行销毁方法)
((ClassPathXmlApplicationContext)applicationContext).close();lazy-init属性:
1.默认懒加载,lazy-init=true,在真正需要使用对象的时候才会创建对象
2.非懒加载,lazy-init=false,在容器启动后立即加载对象