什么是http协议?
http协议是一种超文本传输协议,规范了浏览器与服务器的交互。
http协议的特点
1.无连接:每次只处理一个请求,服务器处理完客户的请求后把结果响应给客户端,收到客户端的应答后就断开连接。
2.无状态:对于事务处理没有记忆能力,如果后面的处理需要前面的信息就需要重新传。
http的交互流程
1.客户端与服务端建立连接
2.客户发送请求到服务端
3.服务端把请求处理结果响应给客户端
4.关闭客户端与服务端的连接(HTTP1.1版本以后不会立即关闭)
什么是请求?什么是响应?
1.请求:客户端把请求数据发送给服务器的过程。
2.响应:服务器把请求结果发送给客户端的过程。
get方式和post方式请求的区别?
1.get方式请求:没有请求实体请求数据拼接以?号的形式拼接在地址栏url后面,不适合大量数据的传输,不安全,相对在效率上比较快。
2.post方式请求:适合大量数据的传输,相对效率较低。
什么是servlet?
实现了特定接口的类,其实也就是一个java类。
怎么创建servlet?
1.编写java类继承HttpServlet类,并配置web.xml
2.在web3.0之后直接使用@注解方式进行配置,可以不用配置web.xml
Servlet的生命周期?
从第一次被调用到服务器关闭,如果在web.xml中配置了load-on-startup时Servlet的生命周期为从服务器启动到服务器关闭。
多个servlet配置同一个url-pattern会报什么错误?
服务器不允许多个servlet配置通一个url-patten,启动时就会报错,因为服务器在启动时就会把项目内的web.xml文件加载到内存中。
为什么Servlet只会创建一个?
因为servlet是单例的,在并发访问的情况下会开启子线程调用其service方法,资源是共享的,如果创建多个servlet会占用大量的内存。
service方法调用的本质?
在接收到浏览器向客户端发送的请求时,服务器会调用对应servlet中的service方法,进行请求的处理,在没有重写service方法时会去调用其父类的service方法,如果请求方式是get或post方式时,根据请求方式去找对应的doPost和doGet方法,找到的情况下进行调用,找不到的情况下会去调用父类的方法,执行结束后会报一个405错误。
init方法,service方法,destory方法的调用时机?
在servlet创建时会先调用 init方法进行初始化操作,在接收到浏览器的请求时会调用service方法进行请求处理,处理结束后结果响应给客户端,在服务器关闭时会调用destory方法销毁
servlet。
Servlet常见异常总结
404错误:虚拟项目名或路径书写错误
405错误:Servlet中没用提供可以处理请求的方法
500错误:①Servlet节点中servlet-class配置错误
② 服务器内部代码发生异常