本文地址:http://www.cnblogs.com/maplefighting/p/8206863.html html
一、Http协议位于应用层,创建在TCP/IP协议上,端口为80java
二、HTTP请求由(1)请求方法,URI和HTTP协议的版本 (2)请求头 (3)请求正文构成web
HTTP响应由(1)HTTP协议版本,状态代码和描述 (2)响应头 (3)响应正文spring
三、GET请求参数在HTTP请求第一行URI后面sql
POST请求参数将做为HTTP请求的正文部分数据库
四、ServletContext和web应用具备一样的生命周期编程
五、重定向sendRedirect:用户请求-->服务器返回302状态码-->浏览器收到响应后,自动请求另外一个web设计模式
六、JSP生命周期:(1)解析阶段:Servlet解析JSP (2)翻译阶段:Servlet容器把JSP文件翻译成Servlet源文件 浏览器
(3)编译阶段:编译Servlet源文件生成类缓存
(4)初始化阶段:加载JSP文件对应的Servlet类,建立实例,调用初始化方法 (5)运行时阶段 (6)销毁阶段
七、 SendRedirect重定向 Forward服务器内部转发
地址有变化 地址栏没变化
不能共享 能共享request里面数据
URL能跳转到其余站点 只能在同一个web内
效率较低 较高
浏览器跳转 服务器跳转
HttpServletResponse RequestDispatcher
八、Servlet生命周期
a、若是请求时静态页面,服务器直接返回
b、若是是动态,交给Web容器,若是没有找到Servlet (第一次访问没有),则读取xml配置文件,把相应的Servlet放进Web容器,接着建立Servlet实例,
调用init()-->判断service() -->doget(),dopost(),而后返回给浏览器 -->destory()
九、cookie和session
cookie:一开始客户端没有cookie,访问服务器时会建立
Session:session一开始也没有,服务器建立session,而后返回并保存SessionId在客户端
十、Spring可以包装Hibernate异常,把他们从CheckedException变成RuntimeException
十一、Spring提供编程式事务(嵌在业务代码)和声明式事务(xml)
SessionFactory只有使用Hibernate才须要注入,注入事务管理器
十二、Spring核心控制器,DispatcherServlet负责接收Http请求,加载配置文件,初始化上下文ApplicationContext,文件上传解析
1三、Spring和struts2区别
(1)springmvc是基于方法设计,struts2基于类
(2)struts有本身的interceptor,springmvc用的是独立的Aop方式
(3)springmvc方法之间基本是独立,独享request,response数据。struts2全部Action变量共享的
(4)springmvc的入口是servlet,struts2是filter
1四、spring用到的设计模式
(1)工厂模式:BeanFactory
(2)单例模式,依赖注入用双重判断加锁
(3)适配器
(4)代理
1五、spring两种代理方式:jdk和cglib
(1) 若目标对象实现了若干接口,则用jdk的Proxy代理
(2) 若没有实现任何接口,则用cglib库生成子类
jdk代理是由java内部的反射机制实现的。
cglib是借助asm来实现的,用到第三方类库,需引入cglib.jar,asm.jar
jdk代理要为目标类同一接口类
cglib代理须要生成加强过的目标类
具体使用能够查看:https://www.2cto.com/kf/201701/590030.html
1六、网站负载太大:使用缓存,集群,CDN加速,分布式
1七、消息队列:把消息按照产生的次序加入队列。短信,电子邮件,订阅等
1八、struts1和struts2的区别
struts1与Servlet严重耦合,Action->Execute
(1)Action必须实现Struts的Action类,Struts2能够不实现任何类或接口
(2)Struts1的Action是单例模式,必须实现线程安全。Struts2是每一请求一个实例
1九、Hibernate与Mybatis区别
(1)基本没有复杂语句可选Hibernate,sql封装好了,开发快。负责语句多的选Mybatis
(2)Mybatis须要手写sql
(3)Hibernatw移植性好,Mybatis需不一样数据库不一样sql
20、过滤器filter和拦截器interceptor的区别
a、filter是基于函数回调的,interceptor基于java反射机制
b、filter依赖Servlet容器,interceptor不依赖
c、filter对几乎全部请求起做用,interceptor只能对action起做用
d、interceptor能够访问action上下文,值栈里的对象。而过滤器不能
e、在action中interceptor能够屡次被调用,而filter只在容器初始化时调用一次
f、执行顺序:过滤前->拦截前->action->拦截后->过滤后
2一、Hibernate二级缓存
一级缓存是Session级别。二级缓存是SessionFactory基本
一级缓存是事务级别的缓存,必须同一个Session。二级缓存是进程范围的缓存。相同操做就能够用缓存
一级缓存不会出现并发问题。二级缓存会
应用场景:二级缓存:(1)不多被修改数据 (2)不重要的 (3)不会被并发的
2二、Maven snapshot表明版本不稳定,处于开发中
Release表明稳定版本,发行版本
2三、aop只是对oop的补充。aop是一种设计模式,Spring提供一种实现
2四、Spring中,bean的scope默认是singleton
2五、a、Java Servlet API引用Session机制来追踪客户状态,定义了HttpSession接口,Servlet容器必须实现该接口
b、当一个Session开始时,Servlet容器将建立一个HttpSession,分配SessionID,,存在客户端浏览器,若是禁用了Cookie,Servlet能够重写客户请求的URL,把SessionID放入URL中
c、HttpServletResponse接口提供重写String.encodeURL(url)
2六、IOC注入方式:属性注入,构造注入
没有设值注入的状况下,会根据配置文件构造注入,有的话,构造注入失效
2七、在Spring框架中获取链接池的方法
a、DBCP数据源
b、C3P0数据源
c、Spring的DriverManagerDataSourse
d、获取JNDI数据源
2八、Spring能够配置文件中配置Bean初始化和消亡函数
2九、doget和dopost是HttpServlet的方法
Servlet:init(),service(),destory()
RequestDispatcher:forward()
30、spring的优势
(1)下降耦合性 (2)容器提供单例模式支持 (3)提供aop技术,权限拦截,运行期监控 (4)低侵入式设计
(5)spring的DI机制下降业务对象替换的复杂性
IOC 工厂模式 AOP代理模式
3一、IOC是指控制权由应用代码转到外部容器
Servlet接口定义了Servlet的生命周期
IOC由Spring负责控制对象的生命周期和对象间的关系
ApplicationContext创建在BeanFactory之上,提供系统架构服务
3二、BeanFactory和ApplicationContext
相同:同过xml配置文件加载Bean,ApplicationContext由BeanFactory接口派生
不一样:Beanfactory是延迟加载,直到第一次调用getBean才会报错。ApplicationContext则在初始化时检验
3三、SSH struts控制器 spring管理各层 hibernate持久层
SSM springmvc spring Mybatis
3四、Struts2和Springmvc原理 (自行google或baidu,两个流程图)
参考书籍:Tomcat与java web 开发技术详解(第二版)孙卫琴,大型网站技术架构:核心原理与案例分析-李智慧,spring实战,spring技术内幕
--------------------------------------------------------------------------------------------------------------
以上为maplefighting我的笔记整理,若有出错,欢迎指正