.1.什么是Servlet?
在web容器中运行的服务器端java程序,主要用于响应HTTP请求。Servlet一般用于mvc中的控制器部分。
2.Servlet的生命周期是什么?
Servlet生命周期分为实例化、初始化、响应请求调用service()方法、消亡阶段调用destroy()方法。
执行过程如下:
1)当浏览器发送一个请求地址,tomcat会接收这个请求
2)tomcat会读取项目中的web.xml中的配置
3)当请求地址符合servlet-mapping标签映射的地址,会进入这个servlet
4)servlet首先会实例化(构造),然后初始化执行init()方法,init()方法至始至终执行一次,servlet对象是单实例
5)根据请求的方式是get或post,在service()方法中调用doget()或dopost()方法,完成此次请求
6)当服务器停止,会调用destroy()方法,销毁实例
3.Servlet应该如何开发。他做了哪些事。
1)新建一个java类,继承HttpServlet。
2)重写Servlet生命周期的方法。一般重doGet(),doPost(),destroy()和service()方法。
3)在生命周期中编写业务功能代码。
4)修改web.xml配置servlet(此步骤不成功,则步骤三报错404)。
5)发布到服务器并启动服务器。
6)在浏览器输入网址调用服务器的Servlet程序
4.请求转发和相应重定向的区别。
本质区别:请求转发在转发的过程中始终是一个请求对象,而响应重定向则发出了两个请求
具体:
① 请求转发:地址栏是初次发出请求的地址
响应重定向:地址栏不再是初次发送请求的地址,地址栏变成了最后一次发送请求的地址
② 请求转发:在整个页面跳转过程中,始终是一个请求对象
响应重定向:在整个跳转过程中,使用的是两个不同的对象
③ 请求转发只能访问当前web应用的资源
响应重定向可以访问所有外部资源
5.Get() 请求和post请求的区别。
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1)Get是用来从服务器上获得数据,而Post是用来向服务器上传数据;
2)Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;
3)Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的;
4)Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;
5)Get限制Form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集;
6)Get是Form的默认方法。
6.http响应码有哪些
200(成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
404(未找到) 服务器找不到请求的网页。
500(服务器内部错误) 服务器遇到错误,无法完成请求。
7.http, 跟踪会话状态? Session, Cookie.
1)cookie数据存放在客户的浏览器上,session数据放在服务器上。
2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
8.过滤器是什么。
可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日志等等。
9.http协议的格式。 请求 响应。
HTTP请求
HTTP请求信息由4部分组成:
- 请求行:请求方法(GET/POST)、URI、协议/版本
- 请求消息头:(Request Header)
- 空行
4、请求正文(请求体):
请求行中的GET称之为请求方式,请求方式有 POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
HTTP响应
HTTP应答与HTTP请求相似,HTTP响应也由3个部分构成,分别是:
2.状态行
3.响应头(Response Header)
4.响应正文(响应体)